Главная » Автоматика в быту
Призовой фонд
на февраль 2017 г.
1. Осциллограф DSO138
Суперайс
2. 1000 руб.
Radio-Sale
3. 230 руб.
От пользователей

Похожие статьи:


Wi-Fi контроллер управления освещением

Сегодня хочу Вам показать интересное устройство, при помощи которого можно управлять чем угодно через интернет при помощи Wi-Fi модуля ESP8266 (ESP-01) и микроконтроллера ATmega8A .
В данной связке модуль, выполняет роль контроллера сети WiFi и вебсервера, а ATmega8A выполняет роль контроллера силового узла, принимает строку по простому протоколу от ESP8266 и обработав ее выдает команду  на открытие того или иного реле через сдвиговый регистр 74HC595 и транзисторную сборку ULN2003.

Базовую информацию о ESP8266 можно почитать здесь, а приобрести на AliExpress по этой ссылке.

Схема устройства:

Обращаясь по заданному  IP адресу , по умолчанию: 192.168.4.1 , можно настраивать различные режимы и управлять освещением в квартире или доме.  Устройство имеет веб интерфейс . Прошивка для ESP8266 создана на основе «вебсвалки» от уважаемого «PVVX» . Я просто дописал пару тройку обработчиков в файле что при получении определенной строки со стороны веб в UART интерфейс будет отсылаться 4 байтная строка - идентификатор команды . На каждый канал управления приходится две таких команды , это включить и выключить . Также, есть еще дополнительных две команды которые могут включить и выключить сразу все каналы освещения .
И потом, написав простую вебстраничку я легко управляю освещением квартиры.

Работает устройство следующим образом:

Со стороны веб: если по-простому, то при нажатии на любую из кнопок сначала вызывается скрипт , который меняет фон кнопки и меняет переменной значение с 1 на 0 и наоборот при каждом нажатии и потом вызывается обработчик AJAX, который обрабатывается  программой в ESP8266 и отправляется в UART код , соответствующий команде AJAX. А уже ATmega8A , эту строку принимает и обрабатывает.

Со стороны микроконтроллера:  принимается строка, обрабатывается, и если совпадает строка с проверочной, то выполняются необходимые действия. Выглядит это вот так:

void send_data()
{
  static char buff_data=0, rel_data=0;
 static char x=0;       
              
                  if(string_search("@1A00",rx_buffer))   // LIGHT ON кухня
                   {
                      rel_data|=0x81;
                       printf("1CH ON\r\n");
                       clear_buffer_rx();  
                        x=0;  
                     if(demo<42000 && demo_off==0) demo++;
                   }
               ....................
 ....................

                  else  if(string_search("@2A00",rx_buffer)) // LIGHT OFF  кухня
                   {
                      rel_data&=~0x81; 
                       printf("1CH OFF\r\n");
                      clear_buffer_rx();
                        x=0;
                      if(demo<42000 && demo_off==0) demo++;
                   }
                
                   relay_send(rel_data);  
     
}

В данной функции сравнивается пришедшая строка в юарт, со строкой, которая выполняет определенные команды. Если она совпадает - то выполняется действие .

функция парсера юарт самодельная, вот ее код:

char string_search(char *str1,char *str2)
{
unsigned char addr=0,x=0,y=0;
str1+=0;
str2+=0;

while(str1[addr]!=0)
{
 addr++;
}

while(str1[y]!=0 && str2[x]!=0)
{
if(str1[y] == str2[x])
{
 y++;
 x++; 
}
else
{
 if(y<addr)y=0; 
 x++;
}
}

Веб страничка не претендует на премию , и выглядит вот так:

При нажатии на любую из кнопок происходит включение освещения!

Веб странички настроек скрыты от основной и открывается при вводе ссылок. Чуть ниже я их укажу.

По желанию, любой может доработать основную страницу, добавив на нее кнопку или ссылку для перехода к настройкам.

Ссылки по умолчанию для конфигурации WiFi и прочих настроек: 

192.168.4.1/protect/wifi.htm
192.168.4.1/protect/setup.htm
192.168.4.1/protect/uart.htm
192.168.4.1/protect/upload.htm

По вопросам доработки прошивки, можно обратиться в ЛС.

Фото смонтированного устройства:

Внимание! Печатные платы разрабатывались как универсальные (для общего применения) и применялись платы из того, что было уже изготовлено, это все связано с сокращением времени разработки и экономии расходов на изготовление заводских плат. Поэтому некоторые узлы распаяны не для задачи управления освещением.

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 Участие в конкурсе 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (16) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Oleg #
У контроллера полно свободных ног, зачем 595 ставить?
Ответить
0

[Автор]
Artos5 #
Нужно было разделить силовую часть от управляющей с использованием узкого шлейфа. И платы такие были в наличии. Вот и написал прошивку под существующее "железо". И еще , если понадобится увеличение числа каналов , то без проблем можно сделать благодаря 595 серии..
Отредактирован 15.02.2017 10:12
Ответить
0
Ev_geniy #
Можно сделать на одной ESP8266, у нее свой контролер есть
Ответить
0

[Автор]
Artos5 #
Можно, но esp8266 по своей природе глючная . Лучше esp8266 использовать как мост.
В дальнейшем я вообще стал использовать ножку сброса esp для вывода ее из состояния глюка.
Ответить
0
civil #
Хотелось бы посмотреть код веб-странички. Если он в архиве, подскажите где. И чуть подробнее о том, как организовано взаимодействие с использованием AJAX.
Ответить
0

[Автор]
Artos5 #
В архиве все есть.
Ответить
+1

[Автор]
Artos5 #
Вот веб страничка:
https://cloud.mail.ru/public/5Spz/i2eg23ziH
Ответить
0
civil #
Дизайн, не адаптивный? Было бы неплохо, если бы интерфейс занимал все пространство, независимо от размеров дисплея.
А вообще, получился очень приятный минимализм.
Ответить
0

[Автор]
Artos5 #
Дизайн адаптивный вроде . В коде прописано чтобы растягивало на весь экран . Опять таки вроде . Давно делал этот проект , забыл немного..
Ответить
0

[Автор]
Artos5 #
А вообще, получился очень приятный минимализм.
Спасибо. Долго игрался с дизайном, решил сделать так.
Ответить
0
civil #
Заменил 300px на 100% - растянуло на всю ширину. Как-то так, наверное, можно.
Ответить
0

[Автор]
Artos5 #
Даже не 4 байта, а 8 . Это в моем случае. Можно сделать и с 4х байт, можно из трех. И т.д.
Ответить
0

[Автор]
Artos5 #
Я не очень силен в веб дизайне и js. Поэтому особо подробнее не могу рассказать. Но судя по коду, скорее GET запросом через Аякс. Отсылается специальный запрос "web.cgi?sys_ram" и код из 4-х байт. Вот sys_ram парсится веб сервером и отсылается в юарт 4 байта после этого текста.
В исходниках есть файл server.c (как то так название ) в нем как раз и выполняется обработка этого запроса.
Ответить
0
hax #
Не хватает преобразователя уровней между esp8266 и atmega, хотя бы резистивного делителя c atmega. Tx.
Ответить
0

[Автор]
Artos5 #
Работает полтора года без преобразователя уровней. Резисторы не зря там стоят 75 Ом. Да и вроде пины ESP совместимы с 5В напряжением. По крайней мере практика это подтверждает.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
Программатор Pickit3 UNI-T UT-61A
вверх