Привет.
Извините за многабукав, по-другому не умею.
Как уже принято шутить в сообществе «Что не делай на Ардуинке, рано или поздно всё равно получатся часы», вот и я решил не идти против данных всевышних законов и решил реализовать свой проект. Хотя для меня важнее не результат и процесс. Ну и конечно, когда речь заходит про часы, то лично у меня всегда в голове фраза волка из мультика Жил-был пёс - "Шо, опять?"
Сейчас нахожусь в стадии самообучения и разработки и решил, что полезным было бы выложить свою идею в сообществе, чтобы умные люди подсказали, где я могу быть не прав или предложили дополнить проект интересными мыслями. Чтобы потом не было диких фейлов и пришлось сильно переделывать.
Так как я не любитель сидеть на форумах, а самоизоляция дала понять что я оказывается дикий интроверт, решил, что это должен быть какой-то один ресурс, а так как подписан на канал и активно пользуюсь библиотеками «Гайвера», то посчитал что тут мне как раз и помогут.
Сразу предупреждаю, что в плане ардуинки, схемотехники, электроники, программирования и разработки проектов я полный дилетант, поэтому прошу быть снисходительными и не удивляться глупым вопросам из серии «зачем подключать светодиод через резистор?», если вдруг начнётся активная переписка.
ИДЕЯ
На дачном участке установлен летний душ, сверху бочка. На летний душ установить часы на больших семисегментных индикаторах, чтобы аж с полей было время видно. Ардуинка (NodeMCU) будет брать с датчиков уровень и температуру воды в бочке, температуру воздуха, температуру в доме (по радиоканалу), давление и передавать это в вебморду и дублировать на малый 4 разрядный индикатор. + на участке есть освещение включаемое пультами 433 МГц. С вебморды так же иметь возможность включать и выключать свет.
ФЛЕШБЭКИ
Два года назад уже предпринималась попытка сделать что-то подобное, но подход был не правильный, всё делалось в попыхах и на коленке и долго не прожило. Но один видосик сохранился, который делал для друга -
ЖЕЛЕЗКИ
Сердцем всего будет NodeMCU V3
Шилд HW-389 – чисто для удобства использования пинов
Датчик температуры ds18b20 – герметичный для измерения температуры воды в бочке
Барометр BMP280 – Именно такой, так как влажность мне вообще не упёрлась, будет давать давление и температуру воздуха
Ультразвуковой датчик HC-SR04 для фиксации уровня воды в бочке
4 больших семисегментных индикатора по 5 диодов на сегмент и 1 на точку
Четырехразрядный индикатор времени на TM1637
DS3231 – RTC – Подстраховка если не придёт время с Инета
Передатчик на 433 МГц
Ардуинка Nano – для дополнительных подключений, так как пинов на NodeMCU по ходу нет
NRF24L01 – для взаимодействия с другими датчиками на 2,4 ГГц
ТЕКУЩАЯ ХОТЕЛКА
Большие часики устанавливаются наверх летнего душа.
Ульразвук и температурный датчик крепятся к бочке
Ниже, на уровне глаз крепится бокс где будут все железки, на крышку бокса выведется 1637, который будет попеременно показывать температуру в бочке и уровень воды, это если телефона с собой нет, а узнать информацию очень хочется.
Рядом кнопка включения выключения 220. И проводок идущий на розетку, заморачиваться с солнечными батареями и аккумулятор пока не хочется.
ПРОБЛЕМА БОЛЬШИХ ЧАСОВ
Когда делал черновой проект (см. флешбэки) понял, что сдвиговый регистр SN74HC595 не может тянуть большие токи и нужно использовать транзисторные ключи. Всё было реализовано на коленке ужасным паяльником, да и паять то не умею. По итогу сейчас принято решение для каждого разряда делать отдельную плату, на которой будет регистр с smd компонетны и разъёмы для подключения, т.е. можно будет задействовать для экспериментов большое количество разрядов если захочется. Всё будет спроектировано, разведено и заказано в Китае у известных поставщиков. Сейчас же планирую плотно засесть за изучение транзисторных ключей и понимание того как найти аналог в среде smd компонентов.
Для двоеточия часов планирую использовать RGB светодиоды, управление которыми будет реализовываться ещё одним регистром SN74HC595, так у меня было в черновом проекте. Разная световая индикация будет давать мне понимание о внутренних ошибках, если таковые есть, например, что часы не получили время именно из инета и прочее, ну просто если планируется ставить диоды отдельно, то почему бы не сделать RGB, мало ли пригодиться. В старом проекте через ник шло распознавание температуры воды от температуры воздуха.
ПРОБЛЕМА С ПИНАМИ NodeMCU
Как я понял у меня есть 9 пинов D0 – D8
2 - на шину I2C, на которой у меня будет ds18b20, BMP, RTC
2 - для TM1637
2 - на ультразвук
3 - на регистр
1 – на передатчик 433 МГц
NRF24L01 поедет на SPI но всё равно получается нехватка, и тут как раз буду подрубать Ардуинку и спаривать с NodeMCU через RX TX. На ардуинку как раз пойдёт передатчик и что-то ещё если захочется добавить
Пробовалось почитать как задействовать S3 но что-то как-то не пошло и решил лишний раз не мучать NodeMCU
СКЕТЧ
Тут пока всё ровно, но что-то выкладывать нет смысла, потому что основная часть связанная с часами не реализована.
Вся разработка идёт в Arduino IDE
По сути планируется что будет отображаться время, по заданному в конфигу в определённый момент будет отображаться дата, температура воздуха, давление и снова возвращение на часики.
В конфиге можно будет отключить какое либо из отображений, вплодь до того что оставить например отображение одной только температуры.
В вебморде планируется на основной странице отображение трёх кнопок:
В общем уже много всего понаписал, думаю пора завершать вопросами, по которым мне возможно сможете помочь.
ВОПРОСЫ И ПРОБЛЕМЫ
Всем спасибо кто дочитал до конца. Если поддержите меня добрыми советами, то буду крайне благодарен.
Извините за многабукав, по-другому не умею.
Как уже принято шутить в сообществе «Что не делай на Ардуинке, рано или поздно всё равно получатся часы», вот и я решил не идти против данных всевышних законов и решил реализовать свой проект. Хотя для меня важнее не результат и процесс. Ну и конечно, когда речь заходит про часы, то лично у меня всегда в голове фраза волка из мультика Жил-был пёс - "Шо, опять?"
Сейчас нахожусь в стадии самообучения и разработки и решил, что полезным было бы выложить свою идею в сообществе, чтобы умные люди подсказали, где я могу быть не прав или предложили дополнить проект интересными мыслями. Чтобы потом не было диких фейлов и пришлось сильно переделывать.
Так как я не любитель сидеть на форумах, а самоизоляция дала понять что я оказывается дикий интроверт, решил, что это должен быть какой-то один ресурс, а так как подписан на канал и активно пользуюсь библиотеками «Гайвера», то посчитал что тут мне как раз и помогут.
Сразу предупреждаю, что в плане ардуинки, схемотехники, электроники, программирования и разработки проектов я полный дилетант, поэтому прошу быть снисходительными и не удивляться глупым вопросам из серии «зачем подключать светодиод через резистор?», если вдруг начнётся активная переписка.
ИДЕЯ
На дачном участке установлен летний душ, сверху бочка. На летний душ установить часы на больших семисегментных индикаторах, чтобы аж с полей было время видно. Ардуинка (NodeMCU) будет брать с датчиков уровень и температуру воды в бочке, температуру воздуха, температуру в доме (по радиоканалу), давление и передавать это в вебморду и дублировать на малый 4 разрядный индикатор. + на участке есть освещение включаемое пультами 433 МГц. С вебморды так же иметь возможность включать и выключать свет.
ФЛЕШБЭКИ
Два года назад уже предпринималась попытка сделать что-то подобное, но подход был не правильный, всё делалось в попыхах и на коленке и долго не прожило. Но один видосик сохранился, который делал для друга -
ЖЕЛЕЗКИ
Сердцем всего будет NodeMCU V3
Шилд HW-389 – чисто для удобства использования пинов
Датчик температуры ds18b20 – герметичный для измерения температуры воды в бочке
Барометр BMP280 – Именно такой, так как влажность мне вообще не упёрлась, будет давать давление и температуру воздуха
Ультразвуковой датчик HC-SR04 для фиксации уровня воды в бочке
4 больших семисегментных индикатора по 5 диодов на сегмент и 1 на точку
Четырехразрядный индикатор времени на TM1637
DS3231 – RTC – Подстраховка если не придёт время с Инета
Передатчик на 433 МГц
Ардуинка Nano – для дополнительных подключений, так как пинов на NodeMCU по ходу нет
NRF24L01 – для взаимодействия с другими датчиками на 2,4 ГГц
ТЕКУЩАЯ ХОТЕЛКА
Большие часики устанавливаются наверх летнего душа.
Ульразвук и температурный датчик крепятся к бочке
Ниже, на уровне глаз крепится бокс где будут все железки, на крышку бокса выведется 1637, который будет попеременно показывать температуру в бочке и уровень воды, это если телефона с собой нет, а узнать информацию очень хочется.
Рядом кнопка включения выключения 220. И проводок идущий на розетку, заморачиваться с солнечными батареями и аккумулятор пока не хочется.
ПРОБЛЕМА БОЛЬШИХ ЧАСОВ
Когда делал черновой проект (см. флешбэки) понял, что сдвиговый регистр SN74HC595 не может тянуть большие токи и нужно использовать транзисторные ключи. Всё было реализовано на коленке ужасным паяльником, да и паять то не умею. По итогу сейчас принято решение для каждого разряда делать отдельную плату, на которой будет регистр с smd компонетны и разъёмы для подключения, т.е. можно будет задействовать для экспериментов большое количество разрядов если захочется. Всё будет спроектировано, разведено и заказано в Китае у известных поставщиков. Сейчас же планирую плотно засесть за изучение транзисторных ключей и понимание того как найти аналог в среде smd компонентов.
Для двоеточия часов планирую использовать RGB светодиоды, управление которыми будет реализовываться ещё одним регистром SN74HC595, так у меня было в черновом проекте. Разная световая индикация будет давать мне понимание о внутренних ошибках, если таковые есть, например, что часы не получили время именно из инета и прочее, ну просто если планируется ставить диоды отдельно, то почему бы не сделать RGB, мало ли пригодиться. В старом проекте через ник шло распознавание температуры воды от температуры воздуха.
ПРОБЛЕМА С ПИНАМИ NodeMCU
Как я понял у меня есть 9 пинов D0 – D8
2 - на шину I2C, на которой у меня будет ds18b20, BMP, RTC
2 - для TM1637
2 - на ультразвук
3 - на регистр
1 – на передатчик 433 МГц
NRF24L01 поедет на SPI но всё равно получается нехватка, и тут как раз буду подрубать Ардуинку и спаривать с NodeMCU через RX TX. На ардуинку как раз пойдёт передатчик и что-то ещё если захочется добавить
Пробовалось почитать как задействовать S3 но что-то как-то не пошло и решил лишний раз не мучать NodeMCU
СКЕТЧ
Тут пока всё ровно, но что-то выкладывать нет смысла, потому что основная часть связанная с часами не реализована.
Вся разработка идёт в Arduino IDE
По сути планируется что будет отображаться время, по заданному в конфигу в определённый момент будет отображаться дата, температура воздуха, давление и снова возвращение на часики.
В конфиге можно будет отключить какое либо из отображений, вплодь до того что оставить например отображение одной только температуры.
В вебморде планируется на основной странице отображение трёх кнопок:
- Мониторинг. Показатели со всех датчиков
- Пульт. Управление внешними 433 МГц релюхами включения освещения
- Настройки, то что будет попадать в конфиг, тут пока ещё всё под вопросом и сырое
В общем уже много всего понаписал, думаю пора завершать вопросами, по которым мне возможно сможете помочь.
ВОПРОСЫ И ПРОБЛЕМЫ
- Где лучше всего почитать или посмотреть про транзисторные ключи, их характеристики для банального управления большой нагрузкой.
- Определившись со значениями параметров транзисторного ключа где найти номер smd транзистора, чтобы включить его в схему разработки, тупо на Чип и Дип топать?
- Как реализовать мощность свечения на больших часах, есть ли какой-то регулятор напряжения, который управляется ардуинкой? Т.е. предположим на часики будут приходить 12 вольт и при них они будут безопасно светить практически на максимуме. А на 7 вольтах уже всё, диодный рубеж не будет реализовываться и часы не будут работать. И вот как сделать регулятор от 7 до 12 вольт, который можно управлять ардуинкой?
- Хочу хранить файл конфига на своём FTP Серваке, как организовать к нему подключения и с чем лучше работать txt или ini файл
- Можно ли как-то увеличить количество портов на NodeMCU
- Есть ли какая-то простая программка где можно было бы расписать задачи и отмечать что сделано и т.д. или лучше блокнота нет ничего?
- Как понять, что проект завершён и пора остановиться?
- Как перестать возбуждаться когда смотришь на семисегментные индикаторы?
Всем спасибо кто дочитал до конца. Если поддержите меня добрыми советами, то буду крайне благодарен.