Всем привет.
Хочу поделиться опытом создания системы контроля и предупреждения.
На одном из строительных объектов делали строение с бассейном, сауной, тренажёрным залом и комнатой отдыха. Все это было в приличных размерах как для одного хозяина. Чисто технически понадобилось 2 подвала: 1-й для обслуживания насосов бассейна — маленький, 2-й для обслуживания систем обогрева и накопления тепла
Закуплены были 2 напольных евро-люка разных размеров для двух подвалов. Люки зарывались 4-мя винтами и имели очень плотные резиновые уплотнения. Чтобы открыть подвал, необходимо было 4 человека (и немного здоровья). При работе всей техники в подвале поднималась температура и влажность, при этом контролировать что там происходит практически неудобно.
В итоге было принято решение о создании устройства, которое бы показывало, а также управляло вентилятором, звуковым сигнализатором, электро-клапаном (воды), и контролировать его можно было с любого смарт устройства.
За основу взял Arduino Pro Mini плюс Ethernet ENC28J60. Для замера влажности и температуры датчик DHT11 и FC-28 (датчик влажности почвы – в роли датчика затопления).

Тех задание:
1) Управление и информирование через Web интерфейс;
2) Включение и отключение вентиляции по заданному уровню влажности;
3) Включение и отключение клапана водопровода (возможно, ревун, откачивающий насос) при затоплении.
В выборе Arduino Pro Mini тоже надо подумать, так как существуют разные исполнения:

Лучше брать ту, в которой стабилизатор по мощнее, так как та, что по слабее, при активных реле и сетевом контроллера закипит стабилизатор, что приводит к зависанию системы (я упустил этот нюанс и получил зависания, но приобрел более ценное – опыт).
Сетевые контроллеры также надо выбирать внимательно, так как есть те которые от 5В (стабилизатор на обратной стороне модуля) и на 3,3В. Нужен будет дополнительный стабилизатор на 3,3В.
Блок питания взял от обычного свитча (или роутера) TP-Link 9В 500мА (примерно), они часто встречаются за копейки от паленых свитчей или роутеров.
Принцип работы простой: есть 2 датчика, которые сливают информацию на контроллер. В зависимости от ситуации контроллер включает и выключает реле (клапана водопровода, возможно ревун, откачивающий насос, вентилятор). Управление и мониторинг через WEB интерфейс который реализован программой на базе модуля ENC28J60.


1) Сработка датчика затопления = включение реле (клапана водопровода(ревун, откачивающий насос ); + информирование на web странице крупным шрифтом;
2) Повышение влажности выше установленного уровня = включение реле вентилятора;
3) Вся информация о температуре влажности и затоплению выводится на web страницу;
4) При понижении температуры ниже 5 градусов оповещение на web сайте о угрозе.
Наглядно можно увидеть на видео:
На практике все очень удобно. Всегда можно посмотреть с Телевизора (Smart), телефона или планшета — что творится в закрытых помещениях, не открывая их.



Люблю создавать устройства, которые облегчают жизнь, а не просто создать игрушку поиграться и выбросить.
С дизайном странички сильно не напрягался, так как носит технический характер и должна быть практичной, а не сложной и красивой.
Надеюсь, эта статья кому-то поможет, а кого то вдохновит на создание своего проекта.

И вот архив программы с библиотеками:
www.facebook.com/download/766447720118309/potop.IDE%201.5.2.rar
Хочу поделиться опытом создания системы контроля и предупреждения.
На одном из строительных объектов делали строение с бассейном, сауной, тренажёрным залом и комнатой отдыха. Все это было в приличных размерах как для одного хозяина. Чисто технически понадобилось 2 подвала: 1-й для обслуживания насосов бассейна — маленький, 2-й для обслуживания систем обогрева и накопления тепла
Закуплены были 2 напольных евро-люка разных размеров для двух подвалов. Люки зарывались 4-мя винтами и имели очень плотные резиновые уплотнения. Чтобы открыть подвал, необходимо было 4 человека (и немного здоровья). При работе всей техники в подвале поднималась температура и влажность, при этом контролировать что там происходит практически неудобно.
В итоге было принято решение о создании устройства, которое бы показывало, а также управляло вентилятором, звуковым сигнализатором, электро-клапаном (воды), и контролировать его можно было с любого смарт устройства.
За основу взял Arduino Pro Mini плюс Ethernet ENC28J60. Для замера влажности и температуры датчик DHT11 и FC-28 (датчик влажности почвы – в роли датчика затопления).

Тех задание:
1) Управление и информирование через Web интерфейс;
2) Включение и отключение вентиляции по заданному уровню влажности;
3) Включение и отключение клапана водопровода (возможно, ревун, откачивающий насос) при затоплении.
В выборе Arduino Pro Mini тоже надо подумать, так как существуют разные исполнения:

Лучше брать ту, в которой стабилизатор по мощнее, так как та, что по слабее, при активных реле и сетевом контроллера закипит стабилизатор, что приводит к зависанию системы (я упустил этот нюанс и получил зависания, но приобрел более ценное – опыт).
Сетевые контроллеры также надо выбирать внимательно, так как есть те которые от 5В (стабилизатор на обратной стороне модуля) и на 3,3В. Нужен будет дополнительный стабилизатор на 3,3В.
Блок питания взял от обычного свитча (или роутера) TP-Link 9В 500мА (примерно), они часто встречаются за копейки от паленых свитчей или роутеров.
Принцип работы простой: есть 2 датчика, которые сливают информацию на контроллер. В зависимости от ситуации контроллер включает и выключает реле (клапана водопровода, возможно ревун, откачивающий насос, вентилятор). Управление и мониторинг через WEB интерфейс который реализован программой на базе модуля ENC28J60.


1) Сработка датчика затопления = включение реле (клапана водопровода(ревун, откачивающий насос ); + информирование на web странице крупным шрифтом;
2) Повышение влажности выше установленного уровня = включение реле вентилятора;
3) Вся информация о температуре влажности и затоплению выводится на web страницу;
4) При понижении температуры ниже 5 градусов оповещение на web сайте о угрозе.
Наглядно можно увидеть на видео:
На практике все очень удобно. Всегда можно посмотреть с Телевизора (Smart), телефона или планшета — что творится в закрытых помещениях, не открывая их.



Люблю создавать устройства, которые облегчают жизнь, а не просто создать игрушку поиграться и выбросить.
С дизайном странички сильно не напрягался, так как носит технический характер и должна быть практичной, а не сложной и красивой.
Надеюсь, эта статья кому-то поможет, а кого то вдохновит на создание своего проекта.
Программа для Arduino
#include "etherShield.h" #include "ETHER_28J60.h" #include <EEPROM.h> #include "DHT.h" #define DHTPIN 2 // к какому пину будет подключен вывод Data //выбор используемого датчика #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor //инициализация датчика DHT dht(DHTPIN, DHTTYPE); int VlagInPin = 3; int RelPin = 4; int PotPin = 5; byte vlaga = 75; int temp = 55; int vent =85; int pot; // переменная датчика затопления byte vf; // переменная для значения влаги во флеше static uint8_t mac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; static uint8_t ip[4] = {192,168,88,24}; static uint16_t port = 80; ETHER_28J60 ethernet; void setup() { dht.begin(); // pinMode(VlagInPin, INPUT); pinMode(RelPin, OUTPUT); digitalWrite(RelPin, HIGH); pinMode(PotPin, OUTPUT); digitalWrite(PotPin, HIGH); vf = EEPROM.read(0); //чтение из флеш значение влаги для сработки вентилятора if ( vf > 110) { EEPROM.write(0, 110); // Запись нового значения в Флеш } ethernet.setup(mac, ip, port); } void loop() { // чтение температуры и влажности займет примерно 250 миллисекунд //float h = dht.readHumidity(); //float t = dht.readTemperature(); vlaga = dht.readHumidity(); temp = dht.readTemperature(); pot = digitalRead(VlagInPin); if (pot == LOW) { // Условие включения и отключения затопления digitalWrite(PotPin, LOW); } if (pot == HIGH) { // Условие включения и отключения затопления digitalWrite(PotPin, HIGH); } if (vlaga >= vf) { // Условие включения и отключения вентиляции digitalWrite(RelPin, LOW); } if (vlaga < vf-1) { // Условие включения и отключения вентиляции digitalWrite(RelPin, HIGH); } String param; if (param = ethernet.serviceRequest()) { ethernet.print("<H1>БОЛЬШОЙ ПОДВАЛ</H1>"); ethernet.print("<a href=\"/\">ОБНОВИТЬ СОСТОЯНИЕ</a><br>"); if (pot == LOW) { // Условие включения и отключения затопления ethernet.print("<H1>Внимание Затопление!!!</H1>"); } if (temp <= 3) { // Условие вывода сообщения Угроза разморозки системы ethernet.print("<H1>Угроза разморозки системы</H1>"); } if (param == "plus") { vf++; // Увеличить значение переменной влаги if ( vf > 110) { vf=110; } EEPROM.write(0, vf); // Запись нового значения в Флеш } if (param == "minus") { vf--; // Уменьшить значение переменной влаги if ( vf < 5) { vf=5; } EEPROM.write(0, vf); // Запись нового значения в Флеш } ethernet.print("<H1>Температура</H1>"); ethernet.print("<H2>"); ethernet.print(temp); ethernet.print("</H2>"); ethernet.print("<H1>Влага</H1>"); ethernet.print("<H2>"); ethernet.print(vlaga); ethernet.print("</H2>"); ethernet.print("<H1>Сработка Вентиляции</H1>"); ethernet.print("<H2>"); ethernet.print(vf); ethernet.print("</H2>"); ethernet.print("<a href=\"/minus\">Уменьшить</a> <a href=\"/plus\">Увеличить</a><br>"); ethernet.respond(); } }

И вот архив программы с библиотеками:
www.facebook.com/download/766447720118309/potop.IDE%201.5.2.rar
