Умный дом из старого смартфона или антипаттерны домашней автоматизации

Прошивка

Решил использовать для прошивки Arduino IDE, чтобы не связываться с nodemcu и lua. В интернете и на GT в частности огромное количество информации для начинающих. Из интересного, мне кажется, функция соединения с wifi. Дело в том, что у меня в доме 4 сети wifi и может добавиться. Чтобы жестко не задавать название сети предварительно проводим сканирование доступных сетей.Код setupWiFi()

void setupWiFi() {   WiFi.mode(WIFI_STA);   WiFi.disconnect();   delay(100);    while(WiFi.status() != WL_CONNECTED)    {   int n = WiFi.scanNetworks();   Serial.println("scan done");   if (n == 0)     Serial.println("no networks found");   else   {     Serial.print(n);     Serial.println(" networks found");     for (int i = 0; i < n; ++i)     {       Serial.println("");       Serial.print(i + 1);       Serial.print(": ");       Serial.print(WiFi.SSID(i));       Serial.print(" (");       Serial.print(WiFi.RSSI(i));       Serial.print(")");       Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");               j=0;               ssid=WiFi.SSID(i);               Serial.print("Connecting");               ssid.toCharArray(charBuf, 50);                WiFi.begin(charBuf,WIFI_PASS);                while(WiFi.status() != WL_CONNECTED)                {                  delay(500);                  Serial.print(".");                  j++;                      if(j>20){                           break;                          }                }                    if((WiFi.status() == WL_CONNECTED)){                           break;                          }           }   } }    Serial.println("Connected");    Serial.println(WiFi.localIP()); }

При включенном автоматическом режиме котельной по расписанию проверяется температура на улице и температура теплоносителя.

  • При температуре ниже 14*С включается теплый пол первого этажа.
  • При температуре ниже 4*С включаются все контуры.

Температура теплоносителя выбирается по таблице в зависимости от сечения труб и уличной температуры. При достижении необходимой комнатной температуры котел выключается. Ко всему применен некий гестерезис для сглаживания переходных значений. Система охраны работает еще проще. В таблице есть правило о том, что при включенной системе охраны, если обнаружено движение у одного из PIR-датчиков происходит отправка SMS через API одного из сервисов.

Фронтенд

f6037642b6b94e65a098cf7d930fbc45.jpg Не кидайте в меня камни, я признаюсь сам. Я использовал Bootstrap. Да, грешен. Первоначальной мыслью было обернуть все это через Phonegap и получить полноценное приложение. Скажу больше я так и сделал, но в итоге более работоспособной оказалась online-версия. Себе и жене на телефоне просто сделал ярлык на рабочем столе для открытия нужной странице по внутреннему ip. Каждый элемент реагирует на событие нажатие + проверяется состояние ajax запросами на сервер и изменяется в случае необходимости. Очень удобно, так как видишь все изменения, которые вступили в силу по правилу или сделаны другим пользователем. Собственно, код по запросу без проблем.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий