Системник-гроубокс на 72Вт

Имеем в наличии системник:

580 x 220 x 425мм

Внешние размеры:

Высота: 425мм
Ширина: 220мм
Длинна: 580мм.

Свет

В качестве источника света используется 3 светильника NEO-L-48LS2835_448-L1SP-PNK1002800000 -con (.pdf). Покупка на официальном сайте невозможна физическому лицу. Покупал через офис в Ленинграде писал на эл. почту neon@e-neon.ru. Также есть посредник в Воронеже — ИП Переславцев А. В., тел. +7 903 650-37-43, эл. почта pereslavcev_av@mail.ru.

Контроллер управления и мониторинга

Собран на основе wi-fi-модуля ESP8266.

Ссылка на али.

Основные задачи контроллера климата

  1. Собирает температуру: внутри, снаружи и температуру алюминиевого радиатора;
  2. На основе температуры управляет оборотами вентилятора угольного фильтра (он же вытяжной вентилятор);
  3. Фиксирует фактическое наличие света внутри.
  4. Мониторит датчик открытия боковой крышки системника (для оповещения в телегам);
  5. Собирает информацию о фактических оборотах вентиляторов (угольного фильтра и обдувочного вентилятора) для определния проблем с вращением;
  6. Управляет светильником включая или выключая часть света для предотварщения перегрева.
  7. Определяет в каком режиме «день/ночь» находится таймер.
  8. Передача собранных данных на zabbix-сервер для мониторинга и оповещений через wi-fi;

Блок-схема

Блок-схема контроллера

Проверка подключения к zabbix-серверу.

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

Не забываем заменить:

const char* ssid = "ИМЯ_ВАШЕЙ_WI-FI_СЕТИ";

const char* password = "ПАРОЛЬ";

#define SERVERADDR XX, XX, XX, XX

IPAddress ip(192,168,0,XX); //статический IP

На свои данные.

/*
  ESP8266
  Climate controller for L72PC
  1. zabbix
*/
#include <ESP8266ZabbixSender.h>

ESP8266ZabbixSender zSender;

/* WiFi settings */
const char* ssid = "ИМЯ_ВАШЕЙ_WI-FI_СЕТИ";
const char* password = "ПАРОЛЬ";

/* Zabbix server setting */
#define SERVERADDR XX, XX, XX, XX // IP-адрес Zabbix server Address
#define ZABBIXPORT 10051      // Zabbix erver Port
#define ZABBIXAGHOST "ESP8266"  // Zabbix item's host name

boolean checkConnection();

IPAddress ip(192,168,0,XX);  //статический IP
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
IPAddress primaryDNS(192, 168, 0, 1);   //optional
IPAddress secondaryDNS(8, 8, 8, 8); //optional


void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  
  Serial.println();
  Serial.print("Connecting to "); // "Подключаемся к "
  Serial.println(ssid);

  WiFi.config(ip, gateway, subnet, primaryDNS, secondaryDNS);
  WiFi.begin(ssid, password);
  while (!checkConnection()) {
  }

  zSender.Init(IPAddress(SERVERADDR), ZABBIXPORT, ZABBIXAGHOST); // Init zabbix server information
  
  Serial.println("");
  Serial.println("WiFi connected"); // "Подключение к WiFi выполнено"
  Serial.println(WiFi.localIP());
}





// the loop function runs over and over again forever
void loop() {
  checkConnection();
  zSender.ClearItem();
  float tempC=77;
  zSender.AddItem("test", (float)tempC);

  if (zSender.Send() == EXIT_SUCCESS) {      // Send zabbix items
     Serial.println("ZABBIX SEND: OK");
  } else {
     Serial.println("ZABBIX SEND: NG");
  }
  
  zSender.ClearItem();
  Serial.println();
  

  delay(5000); // wait 5sec
}

boolean checkConnection() {
  int count = 0;
  Serial.print("Waiting for Wi-Fi connection");
  while (count < 300) {
    if (WiFi.status() == WL_CONNECTED) {
      Serial.println();
      Serial.println("Connected!");
      return (true);
    }
    delay(500);
    Serial.print(".");
    count++;
  }
  Serial.println("Timed out.");
  return false;
}

Модуль должен начать пинговаться, в Serial моните должны быть успешные отправки.

Вычисление фактических портов

Часто рисунок на плате не соответствует фактической распиновке и надо определить где какой D числится по факту.

Для этого надо залить скетч:

Воткнуть один конец провода в GND модуля вторым концом прозвонить порты D. Потом аналогично воткнуть один конец провода в «+» вторым протыкать порты. И проделать тоже самое с резистором на 4,7к или 10к.

Пробовать менять pushButton с 2 на от 0 до 20. У меня получилась следующая таблица:

Pin (программный)На плате
0D3 (220В)
2D4
4D2 (ONE_WIRE_BUS)
5D1 (DoorSensor)
12D6 (Relay)
13D7
14D5
15D8 (rpm carbon)
16D0 (pwm)

Подключение датчиков температуры

Согласно проекту будет использоваться 3 датчика DS18B20.

Подключение осуществляется в нормальном режиме (не паразитном):

DATA датчиков температуры подключается к D2 (G2) модуля (програмный pin 4).

Скетч с датчиками температуры и мониторингом.

Не забываем заменить:

const char* ssid = «ИМЯ_ВАШЕЙ_WI-FI_СЕТИ»;

const char* password = «ПАРОЛЬ»;

#define SERVERADDR XX, XX, XX, XX

IPAddress ip(192,168,0,XX); //статический IP

На свои данные.

/*
  ESP8266
  Climate controller for L72PC
  1. zabbix
  2. Sensors DS18B20 on D2 print on board (D4-program)
*/
//Zabbix
#include <ESP8266ZabbixSender.h>


//Dallas
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4
#define TEMPERATURE_PRECISION 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int numberOfDevices;
DeviceAddress tempDeviceAddress;


//Zabbix
ESP8266ZabbixSender zSender;

/* WiFi settings */
const char* ssid = "ИМЯ_ВАШЕЙ_WI-FI_СЕТИ";
const char* password = "ПАРОЛЬ";

/* Zabbix server setting */
#define SERVERADDR XX, XX, XX, XX // Zabbix server Address
#define ZABBIXPORT 10051      // Zabbix erver Port
#define ZABBIXAGHOST "l72pc"  // Zabbix item's host name

boolean checkConnection();

IPAddress ip(192,168,0,XX);  //статический IP
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
IPAddress primaryDNS(192, 168, 0, 1);   //optional
IPAddress secondaryDNS(8, 8, 8, 8); //optional


void setup() {
  Serial.begin(9600);
  
  sensors.begin();
  numberOfDevices = sensors.getDeviceCount();
    
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  
  Serial.println();
  Serial.print("Connecting to "); // "Подключаемся к "
  Serial.println(ssid);

  WiFi.config(ip, gateway, subnet, primaryDNS, secondaryDNS);
  WiFi.begin(ssid, password);

  zSender.Init(IPAddress(SERVERADDR), ZABBIXPORT, ZABBIXAGHOST); // Init zabbix server information
  
  Serial.println("");
  Serial.println("WiFi connected"); // "Подключение к WiFi выполнено"
  Serial.println(WiFi.localIP());
}





// the loop function runs over and over again forever
void loop() {

  sensors.requestTemperatures();
  float tempinside;
  sensors.getAddress(tempDeviceAddress, 0);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempinside = sensors.getTempC(tempDeviceAddress);
  float tempoutside;
  sensors.getAddress(tempDeviceAddress, 1);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempoutside = sensors.getTempC(tempDeviceAddress);
  float tempproff;
  sensors.getAddress(tempDeviceAddress, 2);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempproff = sensors.getTempC(tempDeviceAddress);

  Serial.print("Temp Inside: ");
  Serial.print(tempinside);
  Serial.print("°C; ");
  
  Serial.print("Temp Outside: ");
  Serial.print(tempoutside);
  Serial.print("°C; ");

  Serial.print("Temp proff: ");
  Serial.print(tempproff);
  Serial.print("°C;");
  
  Serial.println();
  

  checkConnection();
  zSender.ClearItem();
  
    
    
    zSender.AddItem("tempinside", (float)tempinside);
    zSender.AddItem("tempoutside", (float)tempoutside);
    zSender.AddItem("tempproff", (float)tempproff);
    if (zSender.Send() == EXIT_SUCCESS) {      // Send zabbix items
        Serial.println("ZABBIX SEND: OK");
      } else {
       Serial.println("ZABBIX SEND: NG");
      }
      zSender.ClearItem();
    
    Serial.println();
  
  delay(5000);
}

boolean checkConnection() {
  int count = 0;
  Serial.print("Waiting for Wi-Fi connection");
  while (count < 3) {
    if (WiFi.status() == WL_CONNECTED) {
      Serial.println();
      Serial.println("Connected!");
      return (true);
    }
    delay(500);
    Serial.print(".");
    count++;
  }
  Serial.println("Timed out.");
  return false;
}

Скет должен писать в темринал serial примерно следующую информацию:

Temp Inside: 24.44°C; Temp Outside: 25.13°C; Temp proff: 23.69°C;
Waiting for Wi-Fi connection
Connected!
request = ZBXD {«request»:»sender data»,»data»:[{«host»:»l72pc»,»key»:»tempinside»,»value»:»24.44″},{«host»:»l72pc»,»key»:»tempoutside»,»value»:»25.13″},{«host»:»l72pc»,»key»:»tempproff»,»value»:»23.69″}]}
result = ZBXDZ{«response»:»success»,»info»:»processed: 3; failed: 0; total: 3; seconds spent: 0.000148″}
ZABBIX SEND: OK

Так же в zabbix должны отображаться графики:

Скетч позволяет работать автономно контроллеру климата независимо от того подключился он или нет к wi-fi либо потерял его в процессе работы.

Подключение PWN для вентилятора угольного фильтра

Первоисточник

Програмеый pin 16, обозначение на модуле D0. Блок схема подключения.

В случае если вентилятор имеет отдельный порт PWM:

то можно подключить порт PWN напрямую в порт модуля.

Скетч

/*
  ESP8266
  Climate controller for L72PC
  1. zabbix
  2. Sensors DS18B20 on D2 print on board (D4-program)
  3. PWM carbon filer fan
*/
//Zabbix
#include <ESP8266ZabbixSender.h>


//Dallas
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4
#define TEMPERATURE_PRECISION 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int numberOfDevices;
DeviceAddress tempDeviceAddress;


//Zabbix
ESP8266ZabbixSender zSender;

/* WiFi settings */
const char* ssid = "ИМЯ_ВАШЕЙ_WI-FI_СЕТИ";
const char* password = "ПАРОЛЬ";

/* Zabbix server setting */
#define SERVERADDR XX, XX, XX, XX // Zabbix server Address
#define ZABBIXPORT 10051      // Zabbix erver Port
#define ZABBIXAGHOST "l72pc"  // Zabbix item's host name

boolean checkConnection();

IPAddress ip(192,168,0,XX);  //статический IP
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
IPAddress primaryDNS(192, 168, 0, 1);   //optional
IPAddress secondaryDNS(8, 8, 8, 8); //optional

int pwm = 16; //Pin 16 For PWM (D0 on board)

void setup() {
  Serial.begin(9600);
  
  sensors.begin();
  numberOfDevices = sensors.getDeviceCount();
    
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  
  Serial.println();
  Serial.print("Connecting to "); // "Подключаемся к "
  Serial.println(ssid);

  WiFi.config(ip, gateway, subnet, primaryDNS, secondaryDNS);
  WiFi.begin(ssid, password);

  zSender.Init(IPAddress(SERVERADDR), ZABBIXPORT, ZABBIXAGHOST); // Init zabbix server information
  
  Serial.println("");
  Serial.println("WiFi connected"); // "Подключение к WiFi выполнено"
  Serial.println(WiFi.localIP());
  pinMode(pwm, OUTPUT); //PWM carbon filter
}





// the loop function runs over and over again forever
void loop() {

  sensors.requestTemperatures();
  float tempinside;
  sensors.getAddress(tempDeviceAddress, 0);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempinside = sensors.getTempC(tempDeviceAddress);
  float tempoutside;
  sensors.getAddress(tempDeviceAddress, 1);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempoutside = sensors.getTempC(tempDeviceAddress);
  float tempproff;
  sensors.getAddress(tempDeviceAddress, 2);
  sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
  tempproff = sensors.getTempC(tempDeviceAddress);

  //PWN
  int pwmspeed = map(tempproff, 25, 35, 0, 255);
  if (pwmspeed<60) {pwmspeed=60;}
  if (pwmspeed>255) {pwmspeed=255;}
  analogWrite(pwm, pwmspeed);

  Serial.print("Temp Inside: ");
  Serial.print(tempinside);
  Serial.print("°C; ");
  
  Serial.print("Temp Outside: ");
  Serial.print(tempoutside);
  Serial.print("°C; ");

  Serial.print("Temp proff: ");
  Serial.print(tempproff);
  Serial.print("°C; ");
  
  Serial.print("PWM Fan: ");
  Serial.print(pwmspeed);
  Serial.print("; ");

  Serial.println();
  

  
  


  checkConnection();
  zSender.ClearItem();
  
      
    
    zSender.AddItem("tempinside", (float)tempinside);
    zSender.AddItem("tempoutside", (float)tempoutside);
    zSender.AddItem("tempproff", (float)tempproff);
    zSender.AddItem("pwmspeed", (int)pwmspeed);
    if (zSender.Send() == EXIT_SUCCESS) {      // Send zabbix items
        Serial.println("ZABBIX SEND: OK");
      } else {
       Serial.println("ZABBIX SEND: NG");
      }
      zSender.ClearItem();
    
    Serial.println();
  
  delay(5000);
}

boolean checkConnection() {
  int count = 0;
  Serial.print("Waiting for Wi-Fi connection");
  while (count < 3) {
    if (WiFi.status() == WL_CONNECTED) {
      Serial.println();
      Serial.println("Connected!");
      return (true);
    }
    delay(500);
    Serial.print(".");
    count++;
  }
  Serial.println("Timed out.");
  return false;
}

Подключение датчика двери

Пока это будет просто кнопка (контакт).

Кнопка к arduino подключена с подтяжкой к GND, по схеме:

Блок схема подключения. Програмный 5pin, на модуле D1 (DoorSensor).

Скетч можно скачать отсюда.

Подключение датчика оборотов вентилятора от угольного фильтра

Во всех компьютерных вентиляторах у которых три и более проводав стоит датчик Холла. И его можно использовать для тахометра. При питании вентилятора через ШИМ снимать показания с датчика оборотов можно. Получается, что при одновременно работающем ШИМ и interrupt тем более на разных пинах.

Принцип подключения основан на схеме взятой отсюда резистор 10к, у меня работало и с 220Ом, причем даже лучше чем с 10к, когда 10к обороты в тясчи раз больше поулчаются.

Подключается к цифровому порту D8 (програмный pin 15, на рисунке D5). Блок схема контроллера:

Скетч тут в этом скетче все предыдущие шаги.

Подключение реле света.

В проекте используется реле марки Fotek SSR-25 DA.

Реле Фотек Твердотельное SSR-25 DA
Fotek SSR-25 DA

Блок-схема подключения реле к модулю описана в этой статье.

Диод 1N4148.

Порт D6 (програмный pin 12).

Транзистор D882.

Скетч в котором содержится код настройк для всех предыдущих шагов включая реле (zabbix, DS18B20, PWM, Door, RPM, Реле)

Подключение детектора 220В

Первоисточник. В первоисточнике есть ошибка в схеме, неправильно ориентирован диод. Схема чувствительна к неправильному подключению к 220В, важно соблюдать фазу и ноль.

Порт на плате D3 (програмный pin 0).

Оптопара: PC817

Резистор: 130кОм 2Вт

Диод: 1N4007

Блок схема:

Код с датчиком 220В.

Забор из профлиста

Столбы

Для забора из профлиста используются профилированные металлические трубы. Размером 60х60мм и толщиной стенок от 3мм.

Длинна одного столба при высоте забора в 2 метра составляет 3 метра. Столб заглубляется на глубину 120см. Хотя глубина промерзания грунта составляет 140см. Столб возвышается над грунтом на высоту 180см.

Схема забора из профлиста:

Взято отсюда

Скорее всего профильная труба будет не оцинкованная, хотя даже если и оцинкованная её тоже надо защитить от коррозии.

Защита столбов от коррозии

Часть металлического столба которая будет погружена в грунт необходимо особо сильно защитить от коррозии.

Для этого подходит битумная мастика по металлу.

Праймер

Для мастики МГХ-Т не требуется праймер т.к. она сама может выступать в роли праймера (взято с офф сайта).

Мастика

Выбор пал на мастику фирмы Грида — Мастика резино-битумная МГХ-Т.

Причина тому:

  1. Повышенная прочность сцепления с металлом;
  2. Эксплуатация возможна в температурных режимах от -40 до +100 °C;
  3. Для наружной гидроизоляции заглубляемых в землю металлических конструкций;

Мастику удобнее наносить кистью для этого мастика должна быть достаточно жидкой. Если мастика густая то ее надо разбавить растворителем.

Разбавлять растворителем (уайт-спирит; ксилол; толуол; смесевые растворители 646, 648, 649, Р-4, РС-2; сольвент нефтяной; бензин БР-2 (Калоша); скипидар) в количестве 30–50% от общей массы мастики.

Стеклосетка

Для гидроизоляции рекомендуется нанесения два- три слоя, армированных стеклосеткой (стеклосетка для гидроизоляции), проложенной между слоями. Интервал сушки для каждого слоя, равный 5–6 часам (при температуре окружающей среды +20 °C). Но так как она стоит дохера и нужна при наличии трещин на поверхности — ну её нахер.

Часть столба которая будет торчать из земли можно покрыть грунт эмалью соответствующего цвета. Успользовать лучше 3 в 1 т.к. Может наноситься на ржавчину.

Пешеходные маршруты

  1. Васильевский замок

2. Волкушинский (Лыткаринский) карьер

3. Лохин остров

Беспроводной модуль nodemcu v3 esp8266 ch340 Lua WIFI Интернет вещей макетная плата с антенной pcb и usb-портом для Arduino

ESP8266 NodeMCU V3 распиновка (pinout)

NodeMCU v3 high resolution pinout and specs – Renzo Mischianti

Фитосветодиодный модуль NEO-L-48LS2835_448-L1SP-PNK1002800000 -con

Внешний вид светильника NEO-L-48LS2835

NEO-L-48LS2835_448-L1SP-PNK1002800000 -con (.pdf)
Старая ссылка.

Вид коммутации модуля — нажимные разъемы NS2059 (аналог Wago 2059).

NS2059

PDF про этот тип разъёма.

Чтобы открыть разъём для подключения пишут вот так:

И мол вам потребуется инструмент 206-859:

206-859

Так же в pdf они поминают площадь сечения подключаемых проводов и она составляет 0,14-0,34mm², что в переводе в диаметр провода означает 0,42-0,66мм:

или провода AWG 26-22 «одножил’.

По итогу в этом разъёме NS2059 нормально держится одножил 1,5мм².

Покупка на официальном сайте невозможна физическому лицу. Хотя такой разде есть. Но форма в неём не активная (на апрель 2023г). Покупал через офис в Ленинграде писал на эл. почту neon@e-neon.ru. Также есть посредник в Воронеже — ИП Переславцев А. В., тел. +7 903 650-37-43, эл. почта pereslavcev_av@mail.ru.

В итоге мне ответили на почту, запросили реквизиты организации для выставления счёта. Я ответил, что являюсь физ.лицом. Меня связали с другим менеджером. В итоге удалось заказать товар. Световые модули ехали из Ленинграда, а драйвера из Воронежа. Забирал всё в Москве.

Вместе со светильниками заказал драйвер:

НИПТ-72350АКС

Выбрал драйвер марки НИПТ-72350АКС на 350mA.

Подключение модуля

wi-fi модуль ESP32-38PIN

ESP-32 38PIN

Распиновка

Более подробное описание.

Настройка модуля

  1. Подключаем через USB к ПК, запускам Arduino IDE. Выбираем порт.

У меня не оказалось драйверов. Гуглить, что то в духе «CP2102 USB to UART Bridge Controller driver».
Нагуглил сайт https://voltiq.ru/cp2102-driver-windows-7-10/, скачал оттуда архив (у меня Windows 11). Распаковал, запустил установщик, и драйвера установились:

Надо понаблюдать в Диспетчере устройств не отваливается ли порт в течении 3-5 мин, у меня стал моргать, такого быть не должно. Нагуглил другой драйвер. Мне в итоге помогло подключение к другому usb-порту.

Указываем порт в Arduino IDE:

Далее в Arduino IDE надо добавить плату. Дополнительная информация о добавлении платы ESP32 тут.

И ещё полезная информаия о подключении модуля ESP32.

Добавление платы в Arduino IDE

В менеджере плат добавить адрес: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Проверка работы модуля

при попытк залить скетч ошибка:

«A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
Failed uploading: uploading error: exit status 2″

Оказалось что надо нажать кнопку «Reset» в момент когда Arduino IDE пишет «Connecting…» подождать в течении 2-4 сек (т.е. жать не сразу).

Ошибка Wrong boot mode

A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x1b)! The chip needs to be in download mode.

Решение: Как только появится строка «Connecting……….» сразу нажать кнопку Reset и после сразу нажать кнопку Boot. Иногда кнопку Boot надо держать и не отпускать. Бывает что начинает мигать светодиод на плате

Производители ESP32 модулей

Производители esp-модулей чьи платы есть в Arduino IDE

Бренд (производитель)СайтСписок модулей
UM
TTGO
SparkFunАмерикашка
LOLINКак-то связана с wemos. Есть на Ozon.LOLIN D32; LOLIN D32 PRO; LOLIN C3 Mini; LOLIN S2 Mini; LOLIN S2 PICO; LOLIN S3; LOLIN S3 Mini; LOLIN S3 Pro;
WEMOSнет ESP32. Похоже что WEMOS ESP32 — называется LOLIN ESP32 (всякие D32 и пр)WEMOS LOLIN32; WEMOS LOLIN32 Lite;
Adafriutadafruit.comSorry, you have been blocked
OLIMEXolimex.comПроектировщики всякой такой шляпы из Болгарии.OLIMEX ESP32-EVB; OLIMEX ESP32-GATEWAY; OLIMEX ESP32-PoE; OLIMEX ESP32-PoE-ISO; OLIMEX ESP32-DevKit-LiPo;
Heltec heltec.orgПродаёт свои платы. В РФ не поставляет.Heltec WiFi Kit 32; Heltec WiFi Kit 32 (V3); Heltec WiFi LoRa 32; Heltec WiFi LoRa 32(v2); Heltec WiFi LoRa 32(V3); Heltec Wireless Stick; Heltec Wireless Stick Lite;
M5Stackm5stack.comВроде америкашки есть свои магаз. Банчат со своими какими то корпуса финтипёрстовыми и сами платы выебонистые по дизайну
DeneyapС российских ip нахер шлёт
BeeВроде как не продаётся в России

Подключение библиотеки #include

если ошибка

Compilation error: ESP8266ZabbixSender.h: No such file or directory

Зайти https://github.com/zaphodus/ESP8266ZabbixSender

Далее скачанных архив подсунуть в Arduino IDE

Должно появиться что то типа такого:

Мониторинг 220В. Определение наличия 220В через arduino

Когда надо, чтобы ардуина понимала, что в сети появились или пропали 220В. Для включения генератора и пр.

Принципиальная схема

Компоненты детектора 220В

Оптопара: PC817

Резистор: 130кОм 2Вт

Диод: 1N4007

Внешний вид компонентов

Оптопара
Диод 1N4007

Собранный детектор подключаем к 220В со стороны светодиода через резистор и диод (выводы 1 и 2 на оптопаре). Второй конец идёт на ардуину (выводы 3 и 4 на оптопаре).

Пример скетча

for (int i=0; i<20; i++) {
    status220[i] = digitalRead(status220PIN);
    delay(7);
}

int test=0;
for (int i=0; i<20; i++) {
    test=test+status220[i];
}

if (test==0) { status220String="Off";status220=0;} else {status220String="On";status220=1;}
return status220;
Внешний вид

Доп. ссылки

http://arduino.ru/forum/apparatnye-voprosy/nuzhno-otslezhivat-nalichie-220-volt-na-linii

Подключение модуля wi-fi ESP8266 от Wemos к твердотельному реле SSR-10DA.

WeMos D1 mini (ESP8266 ESP-12F) - техническое описание и где дешево купить
ESP8266 от Wemos
Купить со скидкой твердотельное реле SSR-10DA в Москве | Доставка по РФ
SSR-10DA

Т.к. на один пин модуля wi-fi можно вешать 12mA макс. то для подключения реле, которое может потреблять до 25mA потребуется использовать транзистор D882 NPN полярности, у меня в корпусе ТО-126 (он же КТ-27):

Npn Транзистор 2sd882 D882 3a 40v To-126 - Buy Транзистор D882,D882  Транзистор,Транзистор D882 Цена Product on Alibaba.com
Транзистор D882
Транзистор D882 характеристики: аналоги и цоколевка

Полезные ссылки: Подключение реле к ESP8266/ESP32

Схема подключения реле

На рисунке обозначена общая блок схема подключения реле к ардуино и в том числе к esp8266. Реле может быть любое, не обязательно твердотельное как в моём случае. Номиналы деталей взяты приблизительные и подходят к большинству случаев:

Схема подключения реле

Твердотельное реле SSR-10DA

Источник питания: DC.

Ток нагрузки: 10A/25A/40A.

Напряжение нагрузки: 24 ~ 380 В переменного тока.

Напряжение управления: 3 ~ 32 В постоянного тока.

Контрольный ток: постоянный ток: 3 ~ 25 мА.

Индикация: светодиодная