Оглавление:

IoT Water Alarm: 5 шагов (с изображениями)
IoT Water Alarm: 5 шагов (с изображениями)

Видео: IoT Water Alarm: 5 шагов (с изображениями)

Видео: IoT Water Alarm: 5 шагов (с изображениями)
Видео: Практика IoT: создаем проект по шерингу самокатов // Демо-занятие курса «Разработчик IoT» 2024, Июль
Anonim
Водная сигнализация IoT
Водная сигнализация IoT

Я недавно испытал резервное копирование кухонного слива. Если бы я не был в то время дома, в моей квартире был бы поврежден пол и гипсокартон. К счастью, я знал о проблеме и был готов вычерпать воду ведром. Это заставило меня задуматься о покупке сигнализации о наводнении. Я обнаружил множество доступных продуктов на Amazon, но те, у которых есть подключение к Интернету, получили значительный процент отрицательных отзывов, в основном из-за проблем с проприетарными службами уведомлений. Вот почему я решил сделать свой собственный водный сигнализатор Интернета вещей, который будет использовать надежные средства уведомления по моему выбору.

Шаг 1: Принцип работы

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

В качестве мозга сигнализации используется микроконтроллер AVR ATtiny85. Он снимает показания напряжения с батареи и датчика воды и сравнивает их с заранее заданным значением, чтобы определить наличие воды или разряд батареи.

Датчик воды - это просто два провода, расположенные на расстоянии примерно 1 мм друг от друга. Один из проводов подключен к 3,3 В, а другой подключен к измерительному выводу на микроконтроллере, который также подключен к земле через резистор 0,5 МОм. Обычно сопротивление между проводами датчика очень велико (более 10 МОм), поэтому чувствительный штифт полностью опускается до 0 В. Однако, когда между проводами присутствует вода, сопротивление падает до менее 1 МОм, и чувствительный штифт видит какое-то напряжение (в моем случае около 1,5 В). Когда ATtiny85 обнаруживает это напряжение на измерительном контакте, он активирует полевой МОП-транзистор для включения зуммера и отправляет сигнал пробуждения в модуль ESP8266, который отвечает за отправку предупреждений (электронная почта и push-уведомления). После минутного жужжания сигнал тревоги снимается с охраны и может быть сброшен только выключением и включением питания.

Этот блок работает от двух щелочных или никель-металлгидридных элементов. Микроконтроллер большую часть времени спит, чтобы сберечь батареи, периодически просыпаясь, чтобы проверить датчик воды, а также напряжение батарей. Если батареи разряжены, микроконтроллер активирует модуль ESP8266, чтобы отправить предупреждение о низком заряде батареи. После предупреждения сигнализация отключается, чтобы предотвратить чрезмерную разрядку аккумулятора.

Поскольку модуль ESP8266 отвечает за отправку предупреждений о низком заряде батареи и наводнения, ему требуется управляющий сигнал от ATiny85. Из-за ограниченного количества доступных контактов этот управляющий сигнал генерируется тем же контактом, который отвечает за светодиодную индикацию батареи. Во время нормальной работы (сигнализация включена и аккумуляторы заряжены) светодиод периодически мигает. При обнаружении низкого заряда батареи светодиодный индикатор загорается, чтобы подать высокий сигнал на вывод RX модуля ESP. Если обнаружена вода, индикатор батареи не горит, пока ESP8266 не спит.

Шаг 2: Дизайн и сборка

Дизайн и сборка
Дизайн и сборка
Дизайн и сборка
Дизайн и сборка
Дизайн и сборка
Дизайн и сборка

Я спроектировал схему так, чтобы она была построена на двухсторонней макетной плате 4x6 см, используя в основном SMD-детали 0805. Представленные схемы основаны на этой сборке, но ее можно легко адаптировать для компонентов со сквозным отверстием (совет: чтобы уменьшить пространство, припаяйте резисторы в сквозном отверстии вертикально).

Требуются следующие детали:

- резисторы: 330 Ом x 1; 470 Ом x 1; 680 Ом x 1; 1 кОм x 1; 10 кОм х 3; 470 кОм x 3; - Один керамический конденсатор 10 мкФ - Один N-канальный МОП-транзистор логического уровня (например, RFP30N06LE или AO3400) - Один красный и один желтый светодиод (или других цветов, если хотите). абсолютно необходимы, но они облегчают подключение и отключение периферии во время тестирования) - Громкий пьезозуммер, подходящий для 3,3 В - Микроконтроллер ATtiny85 (версия PDIP) - 8-контактный разъем PDIP для микроконтроллера - Модуль ESP-01 (его можно заменить другим модулем на базе ESP8266, но в этом случае будет много изменений в компоновке) - Повышающий преобразователь постоянного тока 3,3 В, способный выдавать ток 200 мА (импульсный ток 500 мА) при 2,2 В. Вход. (Я рекомендую https://www.canton-electronics.com/power-converter… из-за его сверхнизкого тока покоя) - Один 3-контактный гнездовой разъем - Два 4-контактных гнездовых разъема или один разъем 2x4 - Однопроволочные провода 22 AWG для датчика воды - многожильный провод 22 AWG (или другой вид тонкого оголенного провода для создания следов)

Я рекомендую значения резисторов, перечисленные выше, но вы можете заменить большинство из них на аналогичные значения. В зависимости от типа светодиодов, которые вы хотите использовать, вам может потребоваться отрегулировать значения токоограничивающего резистора, чтобы получить желаемую яркость. МОП-транзистор может быть сквозным или SMT (SOT23). Только ориентация резистора 330 Ом зависит от типа полевого МОП-транзистора. Предохранитель PTC (например, рассчитанный на 1 А) рекомендуется, если вы планируете использовать эту цепь с NiMH батареями. Однако это не требуется для щелочных батарей. Совет: детали, необходимые для этой сигнализации, можно недорого купить на ebay или aliexpress.

Кроме того, для программирования модуля ESP-01 вам понадобится макетная плата, несколько сквозных резисторов 10 кОм, несколько перемычек «папа-папа» и «мама-папа» («dupont») и адаптер USB-UART.

Датчик воды может быть изготовлен по-разному, но самый простой - это два провода 22 AWG с оголенными концами (длиной 1 см), разнесенными примерно на 1 мм. При наличии воды необходимо, чтобы сопротивление между контактами датчика составляло менее 5 МОм.

Схема рассчитана на максимальную экономию батареи. В режиме мониторинга (при снятом светодиоде питания на модуле ESP-01) он потребляет всего 40-60 мкА. После срабатывания аварийного сигнала схема будет потреблять 300-500 мА (при входном напряжении 2,4 В) в течение секунды или меньше, а после этого ток упадет ниже 180 мА. Как только модуль ESP завершит отправку уведомлений, потребление тока упадет до уровня ниже 70 мА, пока не выключится зуммер. После этого сигнализация автоматически отключится, и потребление тока упадет до 30 мкА. Таким образом, набор батареек AA сможет обеспечивать питание схемы в течение многих месяцев (вероятно, более года). Если вы используете другой повышающий преобразователь, например, с током покоя 500 мкА, батареи нужно будет менять гораздо чаще.

Советы по сборке:

Используйте перманентный маркер, чтобы пометить все дорожки и компоненты на макетной плате, чтобы упростить пайку. Я рекомендую действовать в следующем порядке:

- светодиоды SMT на верхней стороне и изолированные проволочные перемычки

- верхний боковой МОП-транзистор (примечание: если у вас есть МОП-транзистор SOT-23, разместите его по диагонали, как на фотографии. Если вы используете МОП-транзистор со сквозным отверстием, поместите его горизонтально, так чтобы штифт затвора находился в положении 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 flash: w: main.hex

Вместо /dev/cu.usbmodem1411 вам, вероятно, потребуется вставить последовательный порт, к которому подключен ваш Arduino (вы можете найти его в Arduino IDE: Tools Port).

Код содержит несколько функций. deep_sleep () переводит микроконтроллер в состояние очень низкого энергопотребления примерно на 8 секунд. read_volt () используется для измерения напряжения батареи и датчика. Напряжение аккумулятора измеряется относительно внутреннего опорного напряжения (2,56 В плюс или минус несколько процентов), тогда как напряжение датчика измеряется относительно Vcc = 3,3 В. Показания сравниваются с значениями BATT_THRESHOLD и SENSOR_THRESHOLD, которые определены как 932 и 102 соответственно, которые соответствуют ~ 2,3 и 0,3 В. Вы можете уменьшить пороговое значение заряда батареи для увеличения срока службы батареи, но это не рекомендуется (см. Раздел «Рекомендации по использованию батареи» для получения подробной информации).

activate_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 -> Включить библиотеку -> Добавить библиотеку. ZIP).

Чтобы запрограммировать модуль ESP-01, вы можете следовать следующему руководству: https://www.allaboutcircuits.com/projects/breadbo … Не нужно беспокоиться о перепайке одного ряда контактов, как показано в руководстве - просто используйте женский-мужской dupont провода для подключения контактов модуля к макетной плате. Не забывайте, что повышающий преобразователь и адаптер USB-UART должны иметь общую землю (примечание: вы можете использовать выход 3.3 В адаптера USB-UART вместо повышающего преобразователя, но, скорее всего, этого не произойдет. иметь возможность выдавать достаточный ток).

Шаг 4. Рекомендации по использованию батареи

Поставляемый код прошивки предварительно настроен на отправку предупреждения о низком заряде батареи и отключение при напряжении ~ 2,3 В. Этот порог основан на предположении, что две NiMH батареи используются последовательно. Не рекомендуется разряжать какой-либо отдельный NiMH элемент ниже 1 В. Предполагая, что оба элемента имеют одинаковую емкость и разрядные характеристики, оба они будут отключены при ~ 1,15 В - что в пределах безопасного диапазона. Однако NiMH-элементы, которые использовались в течение многих циклов разряда, имеют тенденцию отличаться по емкости. Допускается разница в емкости до 30%, так как это все равно приведет к точке отсечки ячейки с самым низким напряжением около 1 В.

Хотя в прошивке можно снизить порог низкого заряда батареи, это приведет к устранению запаса прочности и может привести к чрезмерной разрядке и повреждению батареи, в то время как ожидается лишь незначительное увеличение срока службы батареи (никель-металлгидридный элемент> 85% разряжено при 1,15 В).

Еще один фактор, который необходимо учитывать, - это способность повышающего преобразователя обеспечивать не менее 3,0 В (по неподтвержденным данным 2,5 В) при пиковом токе 300-500 мА при низком заряде батарей. Низкое внутреннее сопротивление никель-металлгидридных аккумуляторов вызывает лишь незначительное падение напряжения на 0,1 В при пиковых токах, поэтому пара никель-металлгидридных элементов, разряженных до 2,3 В (разомкнутая цепь), сможет обеспечить как минимум 2,2 В для повышающего преобразователя. Однако с щелочными батареями дело обстоит сложнее. При паре батареек AA, находящихся на напряжении 2,2–2,3 В (разомкнутая цепь), при пиковых токах следует ожидать падения напряжения на 0,2–0,4 В. Хотя я проверил, что схема работает с рекомендованным повышающим преобразователем с напряжением всего 1,8 В при пиковых токах, это, вероятно, приводит к тому, что выходное напряжение на мгновение падает ниже значения, предложенного Espressiff. Таким образом, порог отключения в 2,3 В оставляет небольшой запас прочности для щелочных батарей (имейте в виду, что измерение напряжения, выполняемое микроконтроллером, является точным только в пределах плюс-минус несколько процентов). Чтобы модуль ESP не давал сбоев при низком уровне щелочных батарей, я рекомендую увеличить напряжение отключения до 2,4 В (#define BATT_THRESHOLD 973). При 1,2 В (разомкнутая цепь) щелочной элемент разряжается примерно на 70%, что всего на 5-10 процентных пунктов ниже, чем степень разряда при 1,15 В на элемент.

И NiMH, и щелочные элементы имеют преимущества и недостатки для этого применения. Щелочные батареи более безопасны (не загораются при коротком замыкании) и имеют гораздо меньшую скорость саморазряда. Однако никель-металлгидридные батареи гарантируют надежную работу ESP8266 при более низкой точке отсечки благодаря низкому внутреннему сопротивлению. Но в конечном итоге любой тип можно использовать с некоторыми предосторожностями, так что это просто вопрос личных предпочтений.

Шаг 5: отказ от ответственности

Эта схема была разработана непрофессиональным любителем только для хобби. Этот дизайн распространяется добросовестно, но без каких-либо гарантий. Используйте его и делитесь с другими на свой страх и риск. Воссоздавая схему, вы соглашаетесь с тем, что изобретатель не будет нести ответственности за любой ущерб (включая, помимо прочего, повреждение активов и телесные повреждения), который может возникнуть прямо или косвенно в результате неисправности или нормального использования этой схемы. Если законы вашей страны отменяют или запрещают этот отказ от ответственности, вы не можете использовать этот дизайн. Если вы разделяете эту конструкцию или модифицированную схему, основанную на этой конструкции, вы должны указать оригинального изобретателя, указав URL-адрес этой инструкции.

Рекомендуемые: