Решил не выбрасывать код для логирования данных о температуре и расходе теплоносителя в солнечной панели. Чуть-чуть модернизировал :-))
Никаких изысков, "быстрокод" на wiring(е):
http://pastebin.com/sVcN3w6V
Программа написана "на один раз", система управления потом будет реализована иначе, но всё равно закоментировал, как для студентов :-)))
Всё работает. Ночью проверил на нескольких сенсорах в доме, сейчас поставил на ночь на улицу. Утром проверю, что получилось.
Программа определяет освещённость и в зависимости от угла солнца над горизонтом включает или выключает циркуляционный насос. Ночью надо выключать, чтобы не охлаждать теплоаккумулятор, а с рассветом включать.
Без этого было никак :-))) обычно, когда я утром просыпаюсь, вода в панели уже вся выкипела и сорвало шланг, т.к. у меня пока нет расширительного бака.
Если поддерживать циркуляцию с рассвета, то такого не произойдет.
Данные об освещённости записываются в лог-файлы на SD-карту.
Статус реле насоса тоже пишется в каждый файл.
Можно подключить до 26 датчиков (из-за букв алфавита), прямо на ходу, файл с именем датчика создастся автоматически, все записи во всех файлах будут синхронизированы для дальнейшего построения графиков и вычислений. Если извлечь датчик, то запись в его файл прекратится до возвращения датчика.
Можно изменять интервал между измерениями в огромном диапазоне.
Расходомер дёргает прерывания INT1 , их количество подсчитывается нарастающим итогом, и в лог-файл пишется разница показаний между текущим и предыдущим измерением.
Если нужно просто визуально контролировать показания, то можно извлечь SD-карту, будет происходить цикл измерений и отображения информации на LCD экране и затем перезагрузка системы. Так будет, пока электричество не кончится.
SD-карту можно вынимать и вставлять во время работы, практически в любое время (кроме момента записи - когда отображается "+" на дисплее)
После возвращения карты отсчёт времени работы начнётся с нуля, но в файлах останется доступна вся прошлая информация, в том числе и о времени предыдущей работы.
На шилде есть кнопки, хочу ещё добавить возможность изменять интервал измерений без перепрошивки кода.

примерно в 2 часа ночи включил, посветил фонариком в фотосенсор, выключил свет, когда начало светать, дочка собиралась в школу - включала свет, потом рассвет продолжился пока я не проснулся :-)

Перед тем, как пойти спать, включил кондиционер в гостиной в "турбо" режим, далее кондиционер включался 3 раза, он 24000BTU, поэтому очень сильно греет.
Голубой график - температура на полу в гостиной, жёлтый - температура в коробке с ардуиной, фиолетовый - на диване в гостиной.
Утром открывали дверь для проветривания в соседней комнате.
В прихожей возле двери было 16 градусов, стабильно.
Никаких изысков, "быстрокод" на wiring(е):
http://pastebin.com/sVcN3w6V
Программа написана "на один раз", система управления потом будет реализована иначе, но всё равно закоментировал, как для студентов :-)))
Всё работает. Ночью проверил на нескольких сенсорах в доме, сейчас поставил на ночь на улицу. Утром проверю, что получилось.
Программа определяет освещённость и в зависимости от угла солнца над горизонтом включает или выключает циркуляционный насос. Ночью надо выключать, чтобы не охлаждать теплоаккумулятор, а с рассветом включать.
Без этого было никак :-))) обычно, когда я утром просыпаюсь, вода в панели уже вся выкипела и сорвало шланг, т.к. у меня пока нет расширительного бака.
Если поддерживать циркуляцию с рассвета, то такого не произойдет.
Данные об освещённости записываются в лог-файлы на SD-карту.
Статус реле насоса тоже пишется в каждый файл.
Можно подключить до 26 датчиков (из-за букв алфавита), прямо на ходу, файл с именем датчика создастся автоматически, все записи во всех файлах будут синхронизированы для дальнейшего построения графиков и вычислений. Если извлечь датчик, то запись в его файл прекратится до возвращения датчика.
Можно изменять интервал между измерениями в огромном диапазоне.
Расходомер дёргает прерывания INT1 , их количество подсчитывается нарастающим итогом, и в лог-файл пишется разница показаний между текущим и предыдущим измерением.
Если нужно просто визуально контролировать показания, то можно извлечь SD-карту, будет происходить цикл измерений и отображения информации на LCD экране и затем перезагрузка системы. Так будет, пока электричество не кончится.
SD-карту можно вынимать и вставлять во время работы, практически в любое время (кроме момента записи - когда отображается "+" на дисплее)
После возвращения карты отсчёт времени работы начнётся с нуля, но в файлах останется доступна вся прошлая информация, в том числе и о времени предыдущей работы.
На шилде есть кнопки, хочу ещё добавить возможность изменять интервал измерений без перепрошивки кода.

примерно в 2 часа ночи включил, посветил фонариком в фотосенсор, выключил свет, когда начало светать, дочка собиралась в школу - включала свет, потом рассвет продолжился пока я не проснулся :-)

Перед тем, как пойти спать, включил кондиционер в гостиной в "турбо" режим, далее кондиционер включался 3 раза, он 24000BTU, поэтому очень сильно греет.
Голубой график - температура на полу в гостиной, жёлтый - температура в коробке с ардуиной, фиолетовый - на диване в гостиной.
Утром открывали дверь для проветривания в соседней комнате.
В прихожей возле двери было 16 градусов, стабильно.
no subject
Date: 2017-02-21 07:21 pm (UTC)no subject
Date: 2017-02-21 09:57 pm (UTC)Уже кабель туда лежит.
no subject
Date: 2017-02-22 04:21 am (UTC)no subject
Date: 2017-02-22 08:21 am (UTC)Есть потенциальные последователи :-)))
no subject
Date: 2017-03-10 01:51 pm (UTC)мне кажется я уже всё о них знаю, и даже конденсатор припаял, хотя осциллограф не показывал его необходимость.
Голова скоро взорвётся, а они не коннектятся. Может быть модули бракованные. Когда считываю состояние их регистров, мне кажется, там случайный набор данных :-(... но одинаковый в паре модулей.
В интернете не нашёл ни одного нормального примера, где была бы первоначальная инициализация модулей перед использованием.
Самый лучший материал нашёл вот этот - http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/
Самый умный материал - http://aterlux.ru/index.php?page=article&art=nrf24l01p
но ничего не помогло :-(
no subject
Date: 2017-03-10 05:33 pm (UTC)что помню из своего опыта - сперва начал делать "вверх ногами" - на картинке пинаут был нарисован "насквозь".
я сразу делал батарейный вариант, поэтому у меня все заработало сходу. даже сам удивился немного. все пишут обычное ардуинное питания не годится, надо отдельный или просто усиленный источник. но у меня ардуины отродясь не было, поэтому меня эти глюки сами обошли.
no subject
Date: 2017-03-10 08:41 pm (UTC)Может быть у меня все шесть модулей поддельные :-(
no subject
Date: 2017-03-10 09:38 pm (UTC)китай все пиздит без разбору, а родные стоят по десятке не меньше
no subject
Date: 2017-03-10 09:03 pm (UTC)и с Ардуинским питанием 3.3В заработало и без конденсатора заработало.
Ну это просто жесть. Кругом в схемах и в библиотеках разное подключение :-( или ошибки нарисованы-написаны.
Всё хорошо в Ардуино, куча библиотек разных есть - всё плохо в Ардуино - есть куча библиотек разных.
то они не компилируются под "неправильную" версию IDE, то писатель примера выложит ссылку на библиотеку, а библиотеку уже несколько лет как заменили.
Работоспособность модулей проверена. Теперь буду готовиться к завтрашнему написанию большой программы.
С одной стороны, на Ардуино удобно быстро создать прототип и проверить идею, а с другой - кто там писал эти библиотеки, какой криворукий мастер, кто их проверял ?
под один свой проект я OneWire переписывал сам, основываясь на таймингах из даташита. Вышло не сложно и места сэкономил раза в три от стандартной библиотеки из комплекта Ардуино. Если уж ошибся где, то некого винить кроме себя :-)))
UPD: да, с батарейным питанием чуть лучше, но и с ардуинским питанием без конденсатора, с проводами "на пиздюльках" пульсации не превышают 20мВ в момент включения передатчика. Конденсаторы, наверное, лучше всё-таки припаять.
no subject
Date: 2017-03-10 09:40 pm (UTC)