Категория: Arduino - проекты | Комментарии: 0
18 января 2016

Домашний веб сервер на Аrduino. Температура и Реле [Проверенно]

Домашний веб сервер



Был модуль WI-FI. Было реле. В доме установлен роутер со статическим IP. Захотелось отображать температуру дома на экране телефона и в добавок включать и выключать подсветку в квартире (Удаленно управлять приборами).

В итоге получилось следующее: Захожу с телефона на свой IP адрес, на экране отображается температура и влажность в квартире + несколько кнопок для управления реле.
Без контроля состояния приборов. Код программы рабочий и предназначен для личного последующего творчества. Готового продукта веб сервера тут нет.
Датчик температуры все тот же DHT-11. Реле собрано на печатной плате с транзисторным ключем (c945) (Для скачивания оставьте комментарий) и управляется напряжением 5В. Коммутирует 270В - 6А.
В моем случае реле коммутировало дополнительное освещение в доме которое изображено на фото ниже.

Дополнительное освещение дома

светодиодное освещение

Освещение в доме из светодидодов

Светодионое освещение



По плинтусу с кабель каналом протянуты провода и выведено по квартире для ночного освещения. Питание от блока питания 9В, что бы ночью глаза не резало и видно было.

На рисунке ниже изображен весь используемый комплект.

5067_1ikmxapkwzm.jpg



Модуль WI-FI ESP8266 не нуждается в дополнительном обвесе. Единый минус в том что необходимо питание 3.3В и потребление модуля 250 милиампер. Стандартный стабилизатор на ардуине 3.3В не смог обеспечить стабильное питание WI-FI модулю. В прочем моя Arduina китайская. Поэтому пришлось использовать отдельный стабилизатор напряжения 78033.

Я не писатель поэтому если какая то информация не раскрыта, но она необходима - спрашивайте в комментариях.

Про свой WI-FI модуль могу сказать так же что он китайский и в нем очень плохая прошивка. Которую можно заменить подключив модуль к преходнику USB-TTL и заменить. В китайской прошивке нет метода для программной перезагрузки модуля. Т.е если мой модуль зависает приходится передергивать для него питание. Это огромнейший минус в постройке веб сервера.
перейдем к коду программы для ардуины для построения Веб сервера с задуманными плюшками. Код взять с разных сайтов, более менее изменен под свои нужды и проверен. Добавлены комментарии для того что бы не описывать все словами и большим текстом в статье.

Wi-FI модуль ESP8266 общается при помощи 2х линий Rx Tx.
Ниже полный код веб сервера в который советуется вникнуть.

[Часть 1] Домашний веб сервер на Ардуино [Рабочий код]
[Часть 2] Домашний веб сервер на Ардуино [Рабочий код]

Cкачать код программы:
4870_1injner_web_server_arduino.ino

Пояснения: Для отладки расскоментируйте все строки // monitor.print. Посмотреть работу сервера можно в терминале IDE Arduino.

Веб сервер Ардуино в терминале ESP8266



Как работает код выше вкратце:
Происходит включение ардуины, ардуина инициализирует интерфейсы Serial для компьютера и Serial1 для модуля wi-fi. Далее Ардуина отправляет в модуль данные для коннекта с нужным SSID в воздухе, и подключается к нему получая в ответ IP адрес. Для любопытства в таблице DHCP роутера обнаружится новое устройство без имени (Имя модулю так же можно задать). Как только IP выделен, ардуина начинает ждать данные от Wi-Fi модуля и распознавать, выполняя нужные действия.

Если подключения не произошло, то ардуина повторно без остановки пытается подключится к WI-FI.

Как выглядит веб сервер визуально с компьютера можно увидеть ниже на рисунке.

Веб сервер на ардуино


С телефона тоже работает.

веб сервер на ардуино ESP8266



Впрочем, все написано на скорую руку и не изменялось долгое время, и все что возможно выполнить в html и Js можно воплотить на странице сервера для своих нужд. Цвет, авто обновление, красивые кнопки и многое другое. Полный полет фантазии.

Опрос датчика температуры происходит при каждом обновлении страницы. Для датчика нужна библиотека которая находится в соседнем посту про DHT-11.
Реле включается одним пином переводя его в HIGHT или LOW.

В заключение скажу то что сервер в данном виде каким он есть работал у меня больше 3х недель без ресетов. Минусами является то что если часто обновлять страницу то сервер можно положить, а вернее модуль wi-fi, но с хорошим модулем ESP8266 это не проблема, программный автоматический сброс и все пройдет.

В скором времени напишу как сделать систему контролируемую напрямую через WiFi модуль ESP8266 для управления объектами и контроля данных.

Дополнение:
Для доступа через интернет, не забывайте прописать статический IP для MAC ESP8266 в роутере. И настроить пере направление трафика для порта 80 на данный IP.

Вопросы оставляйте в комментарии up
Другие статьи по разделу:

anchore ЖКИ дисплей WH0802 подключение к Ардуино [Много проводов]


anchore Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]




Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь "Все - Просто!"
Copyright © 2013–2017
Автоматизация и проектирование - 1injener.ru