КПК

Показати повну версію : Акваріумний контролер на ESP-32 для самостійного виготовлення


roosewelt
18.06.2019, 15:17
Вітаю шановне товариство!
До недавного часу моїм невеликим акваріумом керував пристрій "Электроника 21-10". Виникло бажання зробити щось подібне, з управлінням через локальну мережу.
Пропоную самостійно виготовити акваріумний контролер на ESP-32 з Wi-Fi, без кнопок та екрана, все управління через браузер з телефона, планшета чи комп'ютера.
Можливості:
-управління 4 каналами світлодіодного освітлення 12 В, ШИМ 13 біт з опторозв'язкою;
-можливість встановити два рівня освітленості - денний та нічний для кожного з 4 каналів. Встановлення денного, нічного рівня освітленості чи вимикання відбувається плавно - ефекти сходу та заходу Сонця;
-управління 5 каналами 220 В (лампа, нагрівач, фільтр, компресор, вентилятор). Нагрівач та вентилятор керуються показами датчика температури води. Канали лампи, фільтра та компресора керуються програмою, введеною через веб-інтерфейс (до 100 команд);
-управління 2 каналами реле з нормально розімкнутими контактами 5А 250 В. Канали реле також керуються програмою, введеною через веб-інтерфейс. Планувалися для управління електромагнітними кранами
для підміни води;
-отримання даних з 3 каналів датчиків температури DS18B20 (температура води, повітря та зовнішньої температури). Покази датчика температури води впливають на роботу каналів нагрівача та вентилятора. Інші два канали температури - інформаційні;
-при підключенні до WiFi годинник контролера синхронізується через службу SNTP;
-доступ до всього функціоналу контролера відбувається через веб-інтерфейс. Контролер може працювати в режимі точки доступу або станції WiFi (основний режим).
-програмування полягає в тому, щоб задати час і що має відбутися (наприклад о 7:00 в понеділок включити фільтр), таких команд до 100;
В архіві - схема і плата в фоматі P-CAD 2006, файли проекту в середовищі ESP IDF.
https://drive.google.com/open?id=1LKGSm6-6yggJjmYpkPUoGgm-6nqrmGdp
ESP-32 DevKit v1 такий:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267453&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267453')
Веб-інтерфейс:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267457&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267457') https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267456&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267456') https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267455&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=267455')
Схема і плата:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268064&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268064') https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268065&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268065')
Контролер в зборі:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268066&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268066')
Світлодіодні стрічки:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268067&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=268067')
Прошивка відбувається через кабель USB-micro USB, жоден програматор не потрібен. Переважна більшість комплектуючих - SMD.
Собівартість комплектуючих близько 1500 грн (без блока живлення 12 В і світлодіодів).
Я брав 4 метри стрічки SMD 3528 (120 LED/m) IP54 Econom і блок живлення 12В 5 А - ще плюс 300 грн.
Плата виготовлена методом ЛУТ.
Можу безкоштовно залити прошивку у Ваш контролер - пишіть.

Схема, плата і програма поширюються на засадах Open Source. Комерційне використання без згоди автора заборонено.

УСТАНОВКА ESP IDF і прошивка:

Для прошивки потрібно:
1. Скачати ESP-IDF (для Windows тільки 64-біт) тут: https://dl.espressif.com/dl/esp32_wi...n-20181001.zip
2. Встановити ESP-IDF. Інструкція тут https://codedevice.ru/archives/10443
3. Запустити Панель управління - Диспетчер пристроїв. Підключити кабелем USB-microUSB плату ESP-32 DevKit v1. Повинен з'явитися новий порт у розділі порти LPT i COM:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271032&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271032')
у моєму випадку це COM3.
4. В папці c:\msys32 запустити файл mingw64.exe (в мене mingw32.exe, не знаю чи працює це в новій версії). Результат має бути такий:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271033&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271033')
5. В консолі виконати команду cd шлях до папки з проектом (в моєму випадку d:/eclipse/pid). Результат:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271034&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271034')
6. Виконати команду make menuconfig. Результат:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271035&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271035')
7. Перейти в розділ Serial flasher config - default serial port і вибрати порт з пункту 3. в моєму випадку це COM3. Вибрати Save - OK. Результат:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271036&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271036')
Вибрати Exit.
8. Виконати команду make flash. Коли з'явиться напис Connecting.... натиснути на платі кнопку BOOT, не відпускаючи, натиснути і відпустити кнопку EN, відпустити кнопку BOOT. В мене часто не спрацьовує з першого разу, натискаю кнопки кілька разів. У разі невдачі повторюю команду make flash. Результат успішної прошивки:
https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271037&thumb=1 ('https://www.aquaforum.ua/picture.php?albumid=18277&pictureid=271037')
Відключити кабель від плати ESP-32 DevKit v1, вставити її в плату контролера, подати живлення.
Інструкція з встановлення ESP IDF: https://docs.espressif.com/projects/...ows-setup.html
Посилання на установщик:
https://dl.espressif.com/dl/esp32_wi...n-20181001.zip
Посилання на ESP-IDF, який в мене (32 біт):
https://drive.google.com/drive/folde..._V?usp=sharing
там також є Eclipse - редактор, що інтегрується з ESP IDF і є ngrok, який дозволяє отримати доступ до контролера ззовні локальної мережі.

Перший запуск і налаштування:

При першому запуску контролер сворює точку доступу з назвою ESP 32, пароль 4444444444. Слід підключитися через WiFi до цієї точки доступу, запустити браузер і в адресному рядку набрати 192.168.4.1. З'явиться список доступних точок доступу. Потрібно обрати свою і ввести пароль, натиснути кнопку "Підключити".
Після цього підключитися до своєї точки доступу і в налаштуваннях рутера (розділ резервування DHCP) знайти підключений пристрій espressif і зарезервувати йому IP, наприклад 192.168.1.100. Цей IP потрібно в подальшому вводити в адресний рядок браузера для доступу до інтерфейсу контролера.
Також є можливість працювати без підключення до Вашої точки доступу - натиснути "Працювати автономно". Доступ до інтерфейсу в цьому випадку через точку доступу ESP32, IP 192.168.4.1. Дату та час тоді потрібно встановити вручну.


UPD1. Оновлено прошивку. Виправив виявлену помилку з переходом на зимовий час і додав іконку сторінки контролера - Маріо .https://drive.google.com/file/d/1UI1BZR41mDirYpiheXDe9-iMwB-4Ld1I/view?ts=5db70f99
UPD2. Оновлено прошивку. Додано пропорційне управління нагрівачом через ШИМ. В результаті точність підтримання температури води зросла, у моєму випадку - до 0,1С
https://drive.google.com/file/d/1qn35vG-RJDxODk8MfocJXBi8Qq4xocQx/view?usp=sharing

pdv1965
27.01.2020, 19:21
Добрый вечер. Что то тема не пошла.Решил переделать управление аквариумами под вебинтерфейс ( что бы без кнопок и дисплея). А Вы можете кинуть в меня картинками интерфейса и может есть новые доработки. И если можно поподробнее как прошить, плата уже лежит.Спасибо.

pdv1965
06.02.2020, 19:34
Контроллер работает. Спасибо автору. Платка от меня.

pdv1965
01.04.2020, 21:03
Крышка и контроллер

Tiratore.d
03.04.2020, 18:59
І скільки цікаво коштує зібрати такий контроллер під веб інтерфейс в плані комплектуючих -не уважно читав, сумма комплектуючих вказана.
І які шим драйвера можна використовувати - зараз вивчаю це питанная. Може щось і складу.

pdv1965
05.04.2020, 16:11
Шим реализован в ESP-32 программно.

Tiratore.d
06.04.2020, 19:04
Шим реализован в ESP-32 программно.

Ну то так, але цей ШИМ сигнал має управляти якимось драйвером, от і питав - яким. Думаю можна використовувати lm3414hvmr, 15 діодів на 52В і 700мА. Ціна драйверу виходить велика навіть якщо самому збирати, або готові по 100грн у одного з виробників світла на форумі.

Сергій М
07.04.2020, 01:18
або готові по 100грнЗа хороший драйвер это ещё не дорого...
Mean Well драйвер стоит около 6$.
а китайские по 1.5$, но напряжение до 30В, значит блок 24В, соответственно диодов на линии в 2 раза меньше, значит их(драйверов) нужно в 2 раза больше. Ну и так далее.

Tiratore.d
09.04.2020, 13:19
За хороший драйвер это ещё не дорого....

Знаю. Просто зараз був зіткнувся з заміною згорівших мікросхем після утоплення. І почав гуглити цю тематику. І от якраз на базі тієї мікросхеми можна збирати драйвери до 60В. Може є якісь більш дешеві аналоги які вже пробували в парі з цим контролером.

Сергій М
09.04.2020, 19:42
Може є якісь більш дешеві аналоги які вже пробували в парі з цим контролером.А какая привязка контроллера к драйверу ?? с любым контроллером можно использовать любой драйвер, ключевое слово ШИМ. У меня от одного контроллера работали драйверы по 6$ - производитель с форума, по 1.5$ - с али, и даже по 0.4$ - но это не драйвер, а обычный мосфет ))) но для светодиодной линейки самое то. Контроллер ардуино.

Tiratore.d
10.04.2020, 17:52
А какая привязка контроллера к драйверу ??
ключевое слово ШИМ.
Без питань, ключеве слово має варінти реалізації. Якщо розглядаємо варінти аналового ШИМ сигналу(який ми і використовуємо), то в ньому є сигнал з генератора і модулюючий сигнал. Яка напруга виходить з PWM виходу контроллера? В кожній справі є нюанси, і ціна на драйвер то не є технічною характеристикою. В продажу є багато радіодеталей, за домопогою яких можна зібрати на утюгу - будь-який пристрій. От і цікавлюсь, чи збирали, на чому збирали...
А почалась така моя думка з ремонту контроллера і драйверів від продавця з форума. Бо я це все діло втопив, воно успішно згоріло, продавцю не цікаво (воно й зрозуміло) мені допомагати з ремонтом - от і ремонтував своїми силами. І напруга на виході ШИМ виявилась важливою, і резистор на ШИМ вході мікросхеми драйвера теж не лишній. Ну коротше кажучи - є нюанси. Контроллер і драйвери відновив.

Сергій М
11.04.2020, 02:10
Яка напруга виходить з PWM виходу контроллера? 0-5В

pdv1965
12.04.2020, 13:40
Процессор запитан от 3,3 вольта. 0-5 только через доп ключи.

Tiratore.d
13.04.2020, 23:05
Процессор запитан от 3,3 вольта. 0-5 только через доп ключи.
Ага, тобто на виході PWM процесору ми маємо 0-3.3В? Але Сергій каже що у його від ардуіно працювали будь які драйвери. Коротше кажучи мені знову не зрозуміло у кого і які драйвери використовуються з яким процесором. Ті що я збираюсь сам збирати і використовувати - будуть на LM3414/HV там ШИМ підтримується від -0,3 до 6В. Тобто в принципі має значення частота логічного сигналу, а не напруга модулюючого?

roosewelt
21.04.2020, 21:15
Ну то так, але цей ШИМ сигнал має управляти якимось драйвером, от і питав - яким. Думаю можна використовувати lm3414hvmr, 15 діодів на 52В і 700мА. Ціна драйверу виходить велика навіть якщо самому збирати, або готові по 100грн у одного з виробників світла на форумі.

В контролері ШИМ керує MOSFET з управлінням логічним сигналом, в кожному з чотирьох каналів LED. Це вже є в схемі, драйвера не потрібні.

Сергій М
21.04.2020, 23:29
драйвера не потрібні.А кто будет управлять ТОКОМ для диодов ??? Тоже MOSFET ??

Сергій М
21.04.2020, 23:36
roosewelt, Максимум что сможет таким образом работать - то только ЛЕД лента или ЛЕД линейка = 12В. Так да, любой MOSFET справиться.

roosewelt
22.04.2020, 19:01
Я щось не дочитав, думав мова йде про LED стрічку.

pdv1965
13.07.2020, 17:50
Работает уже месяц. Все хорошо, но если Wi-Fi слабый ESP исчезает из сети. И чтобы контроллер снова появился его надо перегружать. Или делать выносную антену, что тоже не так просто.

AquaGomel
15.07.2020, 13:26
Доброго времени суток. Какие датчики температуры используются в проекте что у вас точность поддержания температуры воды возросла до 0,1С? Если DS18B20 то там точность ±0.5°C...

pdv1965
15.07.2020, 13:54
Ds18b20.Я чесно говоря точность и не проверял. Меня больше интересует победить устойчивость связи. Буду делать внешнюю антену.

Kalosh
15.07.2020, 17:29
Если DS18B20 то там точность ±0.5°C.... По моим ощущениям с шагом 0.1°С с ними можно работать. Может они плохо калиброваны и показывают не правильное значение, но при регулярном опросе показывают значения, которые отличаются меньше чем на 0.1°С.
А про устойчивость связи вообще не понял. Разве нет способов программно установить соединение заново? Увеличение антенны лишь уменьшит частоту сбоев/продлит время работы устойчивого соединения, но не устранит его. А вообще тема интересная. Плата позволяет записывать данные? Можно собрать данные от термодатчика? Работать хоть с какими-то накопителями?

pdv1965
15.07.2020, 18:01
Програмно нет возможности, только перегрузка.

Kalosh
15.07.2020, 19:56
Странно. Аж поковырять захотелось. Это экземпляр такой попался или все "счастливые" обладатели маются? Если проблема в серии, то решение уже наверняка найдено.

Aquazis
16.07.2020, 19:40
Все хорошо, но если Wi-Fi слабый ESP исчезает из сети.
Была такая проблема, мы бились над этой задачей 2 месяца, но победили. После длительного теста уже предлагаем всем желающим. 16 каналов ШИМ с возможностью расширения.

http://i.piccy.info/i9/8b510e45e92d90a0bd8e1483de493919/1594917300/30446/1386678/2856416_500.jpg (http://piccy.info/view3/13900289/4bafc121d31f6c56cd034c8278428998/)http://i.piccy.info/a3/2020-07-16-16-35/i9-13900289/437x381-r/i.gif (http://i.piccy.info/a3c/2020-07-16-16-35/i9-13900289/437x381-r)

pdv1965
16.07.2020, 19:44
А как проблему победили или это просто реклама.

Aquazis
16.07.2020, 20:36
Ответ простой. Не использовать фришные куски кода. Как только переписали код с нуля, проблемы исчезли. Espressif Systems сделали конфетку с которой работать одно удовольствие.

Kalosh
17.07.2020, 00:42
А как у нее с потреблением тока, нагревом?

pdv1965
17.07.2020, 06:13
Греется

Aquazis
17.07.2020, 08:48
100 мА, температура ESP по ощущениям чуть теплее пальца.

http://i.piccy.info/i9/f41561501cad4856a7dd7b1a19458520/1594964767/31557/1386678/yzobrazhenye_viber_2020_07_17_08_43_31_500.jpg (http://piccy.info/view3/13900673/8378f8a4b1ab4566729694e47d64f47d/)http://i.piccy.info/a3/2020-07-17-05-46/i9-13900673/500x281-r/i.gif (http://i.piccy.info/a3c/2020-07-17-05-46/i9-13900673/500x281-r)

AquaGomel
17.07.2020, 11:22
. По моим ощущениям с шагом 0.1°С с ними можно работать. Может они плохо калиброваны и показывают не правильное значение, но при регулярном опросе показывают значения, которые отличаются меньше чем на 0.1°С.
А про устойчивость связи вообще не понял. Разве нет способов программно установить соединение заново? Увеличение антенны лишь уменьшит частоту сбоев/продлит время работы устойчивого соединения, но не устранит его. А вообще тема интересная. Плата позволяет записывать данные? Можно собрать данные от термодатчика? Работать хоть с какими-то накопителями?

Можно даже с шагом 0.01 работать, ведь 2 цифры после запятой смотрятся гораздо круче чем одна и та "5"...

Kalosh
18.07.2020, 14:50
100 мА, температура ESP по ощущениям чуть теплее пальца.
Not bad.

Можно даже с шагом 0.01 работать, ведь 2 цифры после запятой смотрятся гораздо круче чем одна и та "5"..
:) Там их вообще три знака после запятой, но датчик предательски показывает одни и те же цифры.

AquaGomel
18.07.2020, 16:17
Not bad.


:) Там их вообще три знака после запятой, но датчик предательски показывает одни и те же цифры.
Главное не то что он показывает одно и тоже (удивительно было бы если бы это было бы не так) а в том насколько точно он показывает одно и тоже. А по даташиту он может ошибаться на 0.5 градуса.

Kalosh
19.07.2020, 20:09
И даже больше.

pdv1965
30.10.2020, 15:17
Начали выключать свет в доме. После включения контроллер не запускается. Я так понимаю что после подачи света запускается контроллер а только потом мой роутер. Из за этого, какое то время отсутствует сеть и ESP уходит в автономный режим и его надо перезагружать. Можно с этим как то бороться? У меня это второй контроллер на ESP 32. Оба ведут себя аналогично.
В соседней ветки сделали вот так:
Устранена проблема с поиском WiFi
Теперь если нет сети, контроллер каждые 10сек пытается ее найти. И все заработало.И кстати там прошивка выложена BIN файлом для прошивки через flash_download_tool_v3.8.5 (не надо собирать проект). Спасибо.