Съдържание:

IoT аларма за вода: 5 стъпки (със снимки)
IoT аларма за вода: 5 стъпки (със снимки)

Видео: IoT аларма за вода: 5 стъпки (със снимки)

Видео: IoT аларма за вода: 5 стъпки (със снимки)
Видео: ТЪПА ПОРЪЧКА 2024, Юли
Anonim
IoT Аларма за вода
IoT Аларма за вода

Наскоро преживях архивиране на канализацията в кухнята. Ако не бях у дома по това време, това би причинило повреди на пода и гипсокартона в апартамента ми. За щастие бях наясно с проблема и бях готов да извадя водата с кофа. Това ме накара да мисля за закупуване на аларма за наводнение. Открих много достъпни продукти на Amazon, но тези с интернет връзка имаха значителен процент отрицателни отзиви, главно поради проблеми с патентовани услуги за уведомяване. Ето защо реших да направя своя собствена аларма за вода за IoT, която да използва надеждни средства за уведомяване по мой избор.

Стъпка 1: Принцип на работа

Принцип на действие
Принцип на действие

Алармата има микроконтролер AVR ATtiny85 като мозък. Той отчита показанията на напрежението от батерията и сензора за вода и ги сравнява с предварително определена стойност, за да открие наличието на вода или състояние на ниско ниво на батерията.

Водният сензор е просто два проводника, разположени на приблизително 1 мм една от друга. Един от проводниците е свързан към 3.3 V, а другият е свързан към чувствителен щифт на микроконтролера, който също е свързан към земята чрез резистор 0.5 MOhm. Обикновено съпротивлението между проводниците на сензора е много високо (над 10 MOhm), така че сензорният щифт се издърпва до 0 V. Въпреки това, когато има вода между проводниците, съпротивлението пада до по -малко от 1 MOhm, и сензорният щифт вижда някакво напрежение (в моя случай около 1,5 V). Когато ATtiny85 открие това напрежение на сензорния щифт, той активира MOSFET за захранване на зумер и изпраща сигнала за събуждане до модула ESP8266, който отговаря за изпращането на сигнали (имейл и push известия). След минута бръмчене алармата се дезактивира и може да бъде нулирана само чрез включване на захранването.

Това устройство работи от две алкални или NiMH клетки. Микроконтролерът спи през по -голямата част от времето, за да спести батериите, като се събужда периодично, за да провери сензора за вода, както и напрежението на батериите. Ако батериите са изтощени, микроконтролерът събужда модула ESP8266, за да изпрати предупреждение за изтощена батерия. След предупреждението алармата се дезактивира, за да се предотврати прекомерното разреждане на батерията.

Тъй като модулът ESP8266 е отговорен за изпращането както на предупреждения за изтощена батерия, така и на сигнали за наводнения, той изисква контролен сигнал от ATiny85. Поради ограничения брой налични пинове, този контролен сигнал се генерира от същия щифт, отговорен за LED индикацията на батерията. По време на нормална работа (алармата е активирана и батериите са заредени), светодиодът мига периодично. Когато се установи ниско ниво на батерията, светодиодът се включва, за да осигури висок сигнал към RX щифта на ESP модула. Ако се открие вода, светодиодът на батерията ще изгасне, докато ESP8266 е буден.

Стъпка 2: Проектиране и монтаж

Проектиране и монтаж
Проектиране и монтаж
Проектиране и монтаж
Проектиране и монтаж
Проектиране и монтаж
Проектиране и монтаж

Проектирах схемата да бъде изградена върху двустранна 4x6 см протоплата, използваща предимно 0805 SMD части. Представените схеми се основават на тази конструкция, но могат да бъдат адаптирани лесно за компоненти през отвори (съвет: за да се сведе до минимум пространството, запоявайте резистори през отвори вертикално).

Необходими са следните части:

- Резистори: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Един 10 µF керамичен кондензатор- Един N-канал MOSFET на логическо ниво (например RFP30N06LE или AO3400)- Един червен и един жълт светодиод (или други цветове, ако желаете).- Двужилни винтови клемни конектори x 3 (те не са абсолютно необходимо, но улесняват свързването и изключването на периферията по време на тестването)- Силен пиезо зумер, който е подходящ за 3.3 V- Микроконтролер ATtiny85 (версия PDIP)- 8-пинов PDIP гнездо за микроконтролера- Модул ESP-01 (може да бъде заменен с друг модул, базиран на ESP8266, но в този случай ще има много промени в оформлението)-3.3 V DC-DC усилващ преобразувател, способен да доставя 200 mA (500 mA избухващи) токове при 2.2 V вход. (Препоръчвам https://www.canton-electronics.com/power-converter… поради свръхниския си ток на покой)-Един 3-пинов женски хедър-Два 4-пинови женски хедера или един 2x4 хедър-22 AWG плътни проводника за сензора за вода- 22 AWG многожилен проводник (или друг вид тънка открита жица за създаване на следи)

Препоръчвам стойностите на резистора, изброени по -горе, но можете да замените повечето от тях с подобни стойности. В зависимост от вида на светодиодите, които искате да използвате, може да се наложи да регулирате стойностите на ограничаващия тока резистор, за да получите желаната яркост. MOSFET може да бъде с отвор или SMT (SOT23). Само ориентацията на резистора 330 Ohm се влияе от типа MOSFET. Препоръчва се предпазител PTC (напр. За 1 A), ако планирате да използвате тази схема с NiMH батерии. Не е необходимо обаче с алкални батерии. Съвет: частите, необходими за тази аларма, могат да бъдат закупени евтино от ebay или aliexpress.

Освен това ще ви е необходим макет, няколко 10k резистора през отвор, множество проводници от мъжки и женски джъмпер ("dupont") и USB-UART адаптер, за да програмирате модула ESP-01.

Водният сензор може да бъде направен по различни начини, но най -простият е два проводника от 22 AWG с открити краища (дълги 1 см), разположени на приблизително 1 мм една от друга. Целта е да има по -малко от 5 MΩ съпротивление между контактите на сензора, когато има вода.

Веригата е проектирана за максимална икономия на батерията. Той извлича само 40-60 µA в режим на мониторинг (с изключен светодиод за захранване на модула ESP-01). След като алармата се задейства, веригата ще изтегли 300-500 mA (при вход 2.4 V) за секунда или по-малко, а след това токът ще падне под 180 mA. След като ESP модулът приключи с изпращането на известия, текущото потребление ще падне под 70 mA, докато зумерът се изключи. Тогава алармата ще се дезактивира и текущата консумация ще бъде под 30 µA. По този начин комплект батерии тип АА ще може да захранва веригата в продължение на много месеци (вероятно повече от година). Ако използвате различен усилващ преобразувател, да речем с ток на покой от 500 µA, батериите ще трябва да се сменят много по -често.

Съвети за сглобяване:

Използвайте постоянен маркер, за да маркирате всички следи и компоненти на протоборда за по -лесно запояване. Препоръчвам да продължите в следния ред:

- SMT светодиоди от горната страна и изолирани телени мостове

-MOSFET от горната страна (забележка: ако имате SOT-23 MOSFET, поставете го по диагонал, както е на снимката. Ако използвате MOSFET с проходни отвори, го поставете хоризонтално с щифта на вратата в позиция I3.)

- части от горната страна през отвори (забележка: зумерът не е запоен и дори не трябва да се монтира към печатната платка)

- SMT части и следи от обратната страна (например отделни нишки от проводник AWG22)

Стъпка 3: Фърмуер

C код за ATtiny85

Main.c съдържа кода, който трябва да бъде компилиран и качен в микроконтролера. Ако ще използвате дъска Arduino като програмист, можете да намерите електрическата схема в този урок. Трябва да следвате само следните раздели (игнорирайте останалото):

-Конфигуриране на Arduino Uno като ISP (програмиране в системата)

- Свързване на ATtiny85 с Arduino Uno.

За да компилирате и качите фърмуера, ще ви е необходим или CrossPack (за Mac OS), или AVR инструментариум (за Windows). Следващата команда трябва да бъде изпълнена за компилиране на кода:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

За да качите фърмуера, изпълнете следното:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U флаш: w: main.hex

Вместо „/dev/cu.usbmodem1411“вероятно ще трябва да вмъкнете серийния порт, към който е свързан вашият Arduino (можете да го намерите в IDE на Arduino: Инструменти).

Кодът съдържа множество функции. deep_sleep () кара микроконтролера да влезе в състояние на много ниска мощност за приблизително 8 секунди. read_volt () се използва за измерване на напрежението на батерията и сензора. Напрежението на батерията се измерва спрямо референтното вътрешно напрежение (2,56 V плюс или минус няколко процента), докато напрежението на сензора се измерва спрямо Vcc = 3,3 V. Показанията се сравняват спрямо BATT_THRESHOLD и SENSOR_THRESHOLD съответно на 932 и 102, които съответстват на ~ 2,3 и 0,3 V. Може да успеете да намалите праговата стойност на батерията за по -дълъг живот на батерията, но това не се препоръчва (вижте съображенията за батерията за подробна информация).

enable_alarm () уведомява ESP модула за откриване на вода и издава звуков сигнал. low_batt_notification () уведомява ESP модула, че батерията е изтощена и също така издава звуков сигнал. Ако не искате да се събуждате посред нощ, за да смените батерията, премахнете „| 1 <“в low_batt_notification ().

Скица на Arduino за ESP-01

Избрах да програмирам ESP модула с помощта на Arduino HAL (следвайте връзката за инструкции за настройка). Освен това използвах следните две библиотеки:

ESP8266 Изпратете имейл от Górász Péter

ESP8266 Pushover от екипа на Arduino Hannover

Първата библиотека се свързва със SMTP сървър и изпраща предупреждение до вашия имейл адрес. Просто създайте gmail акаунт за вашия ESP и добавете идентификационните данни към кода. Втората библиотека изпраща push известия чрез услугата Pushover (известията са безплатни, но трябва да платите веднъж, за да инсталирате приложението на телефона/таблета си). Изтеглете и двете библиотеки. Поставете съдържанието на библиотеката за изпращане на имейл във вашата папка за скици (arduino ще го създаде, когато отворите скицата arduino за първи път). Инсталирайте библиотеката Pushover чрез IDE (Sketch -> Include Library -> Add. ZIP library).

За да програмирате модула ESP-01, можете да следвате следния урок: https://www.allaboutcircuits.com/projects/breadbo… Няма нужда да се занимавате с повторно запояване на един ред щифтове, както е показано в ръководството-просто използвайте женско-мъжки дупон проводници за свързване на щифтовете на модула към платката. Не забравяйте, че усилващият преобразувател и USB-UART адаптерът трябва да споделят масата (забележка: може да използвате 3.3 V изхода на USB-UART адаптера вместо усилвателния конвертор, но най-вероятно няма да може да изведе достатъчно ток).

Стъпка 4: Съображения за батерията

Предоставеният код на фърмуера е предварително конфигуриран да изпраща предупреждение за изтощена батерия и да се изключи при ~ 2,3 V. Този праг се основава на предположението, че две NiMH батерии се използват последователно. Не се препоръчва изхвърлянето на всяка отделна NiMH клетка под 1 V. Ако приемем, че и двете клетки имат еднакъв капацитет и характеристики на разреждане, и двете ще бъдат отрязани при ~ 1,15 V - в рамките на безопасния диапазон. Въпреки това, NiMH клетките, които са били използвани в продължение на много цикли на разреждане, са склонни да се различават по капацитет. До 30% разлика в капацитета може да се толерира, тъй като това все пак би довело до най-ниското напрежение на клетката на прекъсване около 1 V.

Въпреки че е възможно да се намали ниският праг на батерията във фърмуера, това би премахнало границите на безопасност и би могло да доведе до прекомерно разреждане и повреда на батерията, докато може да се очаква само незначително увеличаване на живота на батерията (NiMH клетка е> 85% се разрежда при 1,15 V).

Друг фактор, който трябва да се вземе предвид, е способността на усилвателния преобразувател да осигури поне 3.0 V (2.5 V според анекдотични доказателства) при пиков ток 300-500 mA на изтощени батерии. Ниското вътрешно съпротивление на NiMH батериите причинява само незначителен спад от 0,1 V при пикови токове, така че двойка NiMH клетки, разредени до 2,3 V (отворена верига), ще могат да осигурят поне 2,2 V към усилващия преобразувател. С алкалните батерии обаче е по -сложно. С чифт батерии АА, разположени на 2.2-2.3 V (отворена верига), при пикови токове може да се очаква спад на напрежението от 0,2-0,4 V. Въпреки че съм проверил, че схемата работи с препоръчителния усилващ преобразувател с по -малко от 1,8 V, захранван при пикови токове, това вероятно води до изпускане на напрежението за момент под стойността, предложена от Espressiff. Така прагът на изключване от 2,3 V оставя малък запас на безопасност при алкални батерии (имайте предвид, че измерването на напрежението, извършено от микроконтролера, е точно само в рамките на плюс или минус няколко процента). За да се гарантира, че ESP модулът не се повреди, когато алкалните батерии са изтощени, препоръчвам да увеличите граничното напрежение до 2,4 V (#дефинирайте BATT_THRESHOLD 973). При 1,2 V (отворена верига) алкалната клетка се разрежда с около 70%, което е само с 5-10 процентни пункта по-ниско от степента на разреждане при 1,15 V на клетка.

Както NiMH, така и алкалните клетки имат предимства и недостатъци за това приложение. Алкалните батерии са по-безопасни (не се запалват при късо съединение) и имат много по-ниска степен на саморазреждане. Въпреки това, NiMH батериите гарантират надеждна работа на ESP8266 при по-ниска точка на прекъсване благодарение на ниското им вътрешно съпротивление. Но в крайна сметка и двата вида могат да се използват с някои предпазни мерки, така че това е само въпрос на лични предпочитания.

Стъпка 5: Правна отказ от отговорност

Тази схема е проектирана от непрофесионален любител само за хоби приложения. Този дизайн е споделен добросъвестно, но без никаква гаранция. Използвайте го и споделяйте с другите на свой собствен риск. Чрез пресъздаването на веригата вие се съгласявате, че изобретателят няма да носи отговорност за каквито и да било щети (включително, но не само, обезценка на активи и телесни повреди), които могат да възникнат пряко или косвено поради неизправност или нормално използване на тази верига. Ако законите на вашата страна анулират или забраняват това отказване от отговорност, не можете да използвате този дизайн. Ако споделяте този дизайн или модифицирана схема, базирана на този дизайн, трябва да кредитирате първоначалния изобретател, като посочите URL адреса на тази инструкция.

Препоръчано: