Мазмуну:

MQTT/Google Home Flood/Water WIFI Sensor with ESP-01: 7 Steps
MQTT/Google Home Flood/Water WIFI Sensor with ESP-01: 7 Steps

Video: MQTT/Google Home Flood/Water WIFI Sensor with ESP-01: 7 Steps

Video: MQTT/Google Home Flood/Water WIFI Sensor with ESP-01: 7 Steps
Video: Connecting ESP8266 to the Internet | Thingspeak & MQTT Protocol | Webserver connections 2024, Июль
Anonim
MQTT/Google Home Flood/WIFI Sensor ESP-01 менен
MQTT/Google Home Flood/WIFI Sensor ESP-01 менен

Бул көрсөтмөдө мен сизге wifi сел/суу сенсорун минималдуу чыгым менен кантип курууну көрсөтөм. Бүт проект мага ebayдан сатып алган тетиктериме жана учурдагы тетиктериме 8 доллардан азыраак турат.

Бул долбоордо биз WSP жана MQTT кардарына суунун бар экендигин аныктоо үчүн ESP-01ди колдонобуз, жана локалдаштырылган ойготкучту камсыз кылуу үчүн милдеттүү түрдө түз байланышкан динамикти/ызылдагычты колдонобуз.

Менин долбоорго конкреттүү өтүнмөм - насостук кудуктун ичиндеги селди/сууну табуу, эгерде соргуч насос иштен чыкса. Суу 2 ачык зым менен аныкталганда, ал MQTT брокерине билдирүү жөнөтмөк. Андан кийин MQTT брокери NodeREDге билдирүү жөнөтөт. MQTT билдирүүсүн алгандан кийин, NodeRED бир нече Google үй түзмөктөрүнө кулактандыруу жөнөтөт жана ошондой эле pushbullet аркылуу уюлдук телефонго/браузерге билдирүү жөнөтөт.

Эми албетте бул долбоор үйдүн электр энергиясы КҮЙГӨН болсо гана иштейт. Кийинки көрсөтмөдө мен батарейканын камдык схемасын бириктирем. Бирок, эгер сиз энергия менен камсыз кылууну меникиндей кылып жасасаңыз, анда батарейканын камдык көчүрмөсү үчүн USB кубат банкын туташтырсаңыз болот. Эгерде сизде кубаттуулук банкы бар болсо, ал сизди бир убакта кубаттап, энергия менен камсыздайт, анда баары даяр.

Мен Mosquitto MQTT серверин жана NodeREDти жайгаштыруу үчүн RaspberryPi ZeroW колдоном. Ал бир жылдан бери эч кандай көйгөйсүз иштеп жатат.

Шилтемелер: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Raspberry Piде NodeRED орнотуу:

1 -кадам: Сизге керектүү бөлүктөр

Сизге керек боло турган бөлүктөр
Сизге керек боло турган бөлүктөр
Сизге керек боло турган бөлүктөр
Сизге керек боло турган бөлүктөр
Сизге керек боло турган бөлүктөр
Сизге керек боло турган бөлүктөр

Бөлүктөр тизмеси:

(1) ESP-01

(2) 10K ом резистору

(1) кичинекей сигнал жалпы NPN транзистору (мен 2N3904 колдондум)

(2) узун зымдар

(1) 5V жалпы электр менен камсыздоо (бул схема 300мАдан аз токту талап кылат)

(1) 3.3V жөнгө салуучу модуль AMS1117

(1) Micro-USB үчүн DIP адаптер аял Connector PCB Converter DIY Kit

(1) USB-Aдан MicroUSB кабелине.

(1) 8-пин IC розеткасы-эгер сиз ESP-01ди түздөн-түз райондук тактага туташтыргыңыз келсе, өткөрбөй коюуга болот. Катарлардын ортосундагы боштукту пайда кылган пластикалык көпүрөлөрдү кесип, анан 2 катарды жабыштырыңыз, сүрөттү караңыз.

(1) Долбоор үчүн кичинекей корпус

Төмөндө кошумча бөлүктөр бар, эгерде сизге динамикти/сигналды колдонуп локализацияланган сигнал керек болсо

(1) Жалпы PNP транзистору, спикер/ызылдагыч/ватт талаптарына ылайык тандаңыз. Менин учурда, мен 2N2907 колдоном, анткени менин спикерим болгону 0,3 Вт (8 ом), ал динамикти айдоого жетиштүү күчтү камсыз кылат. Катуурак үндү кааласаңыз, чоңураак транзисторду жана динамикти тандай аласыз.

(1) Баяндамачы, жогорудагы PNP транзистору жөнүндө жазууну караңыз

(1) 100 - 110 ом резистору

2 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма

Биринчи кадам диаграммада көрсөтүлгөн схеманы түзүү болмок.

Мен 3.3VDC электр менен камсыздоону AMS1117 3.3VDC жөндөгүчү менен коштолгон эски 5В уюлдук телефондун заряддагычын колдонуп курдум. ESP-01 розеткасы үчүн мен 8 пиндүү стандарттуу IC розеткасын колдоном жана катарлардын ортосундагы боштукту пайда кылган пластикалык көпүрөлөрдү кесип, анан 2 катарды жабыштырам.

Мен ойлоп тапкан схема эки зымдын ортосунда суунун бар экенин сезүү. Суу эки зымдын учуна жеткенде, болжол менен 10Kтан 20K Омго чейин каршылык жаратат. Андан кийин 10K ohm R1 менен катар, Q1дин базасына кичине ток берет, Q1дин каныкуусуна алып келет, GPIO-2ди жерге кысып. R1 сезгич зымдар кокусунан кыска болуп калса, Q1ге коргоону камсыз кылуу үчүн керек.

R2-бул ESP-01дин жаркылдоодон жүктөлүшүнө уруксат берүүчү каршылык.

Эми кошумча спикер/сигнал үчүн, эгер сизге MQTT сүйлөө үчүн ESP-01 керек болсо жана бул локалдаштырылган сигнализацияны колдонууну каалабасаңыз, R2, Q2, Динамикти алып салып, GPIO-0нун ортосуна 10K тартма каршылыгын коюңуз. жана VCC.

Эгерде сиз DIP адаптерине аял Micro-USB колдонуунун зарылдыгы жок болсо, 5V PS ортосундагы зымдарды 3.3V жөндөгүч модулуна чейин ширете аласыз. Мен аялдык MicroUSB адаптерин колдонууну туура көрөм, андыктан мен уюлдук телефондордун жалпы кубаттагычын жана MicroUSB кабелин колдоно алам.

3 -кадам: Районду куруу

Районду куруу
Районду куруу
Районду куруу
Районду куруу
Районду куруу
Районду куруу

Бардык компоненттерди жана бөлүктөрдү мурунку беттеги схемага ылайык ПХБга кошуп, ПХБны өлчөмүнө чейин кесиңиз.

ПХБны ПКБга жана кошумча спикерге туура келген корпустун ичине коюңуз. Менин учурда, бардык бөлүктөр кичинекей телефон розеткасынын ичине батмак, бирок мен ESP-01 модулу туура келиши үчүн дөмпөктү түзүү үчүн капкагын бир аз жылытуум керек.

4-кадам: ESP-01дин жарыгы

Бул кадамда биз ESP-01ди ардуино эскизи менен жаркырайбыз. Эгерде сиз эч качан ESP-01 модулун күйгүзбөсөңүз, анда менин көрсөтмөмдү аткарсаңыз болот:

Сиз менин эскизимди github баракчамдан таба аласыз:

Эскизде, эң аз дегенде, сиз үй тармагыңызга/орнотууга тиешелүү төмөнкү маалыматты өзгөртүүңүз керек:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Менин үй тармагымда 2 башка SSIDди таратуучу 2 башка кирүү түйүнү бар жана бул эскиз учурдагы АР менен байланыш үзүлүп калса, кийинки SSIDге туташуу менен ашыкча болууга мүмкүндүк берет. Эгерде сизде бир гана SSID болсо, ssid1 жана ssid2 экөөнү бирдей мааниде толтуруңуз.

Өзгөртүүнү киргизгенден кийин, эскизди ESP-01ге жүктөп, ESP-01ди интерфейс тактасына сайыңыз.

5 -кадам: Test Run

Биздин долбоор иштээрин текшерүү үчүн, тармакта MQTT билдирүүлөрүн көзөмөлдөө эң оңой болмок. Бул үчүн, чиркей брокерине SSH сессиясын ачып, төмөнкү буйрукту беришиңиз керек:

mosquitto_sub -v -t '#'

Жогорудагы буйрук брокерге келген бардык MQTT билдирүүлөрүн көрүүгө мүмкүнчүлүк берет.

Эми биздин схеманы күйгүзүңүз, эгерде баары иштесе, бир нече секунддан кийин сиз жок дегенде төмөнкү MQTT билдирүүсүн көрүшүңүз керек:

stat/SumpWaterSensor/LWT Online

Эми суу сенсорун 2 сезгич зымды бир чөйчөк сууга малып текшериңиз жана сиз бул билдирүүнү көрүшүңүз керек:

tele/SumpWaterSensor WET

Эгерде сиз зымдарды суудан алып салсаңыз, анда бул билдирүүнү көрүшүңүз керек:

tele/SumpWaterSensor DRY

Эгер сиз бул билдирүүлөрдү көрсөңүз, анда сиздин долбоор ийгиликтүү болот.

Мен ошондой эле сиз колдоно турган эскизге бир нече пайдалуу MQTT темаларын киргиздим:

"stat/SumpWaterSensorInfo": бул билдирүү иштөө убактысын жана башка маалыматты берүү үчүн мүнөт сайын жөнөтүлөт.

"cmnd/SumpWaterSensorInfo": ESP-01 бул теманы '1' мааниси менен алса, маалыматты жөнөтөт (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 бул теманы '1' мааниси менен алса, кайра башталат (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 бул теманы '1' (ascii = 49) мааниси менен алса, спикерди угат.

"cmnd/SumpWaterSensorBeepFreq": Динамик сигналынын жыштыгын орнотот, демейки = 900 (Гц)

"cmnd/SumpWaterSensorDebug": Сериялык мүчүлүштүктөрдү оңдоо жана орнотуу (демейки 0 - мүчүлүштүктөрдү оңдоо жок)

6 -кадам: сенсорду орнотуңуз

Сенсорду орнотуу
Сенсорду орнотуу
Сенсорду орнотуу
Сенсорду орнотуу

Колдонмодо мен насостук кудугумдагы суунун деңгээлин көзөмөлдөгүм келет жана эгер суу соргучтун калкып жүрүүчү которгучунун үстүнө жетсе, мага кабарлоону каалайм, бул менин соргучум иштебей жатат дегенди билдирет. Мен зымдарды өткөрдүм жана зым галстуктарды колдонуп, аны дренаждык түтүктүн боюна бекиттим.

7 -кадам: Final Touch

Final Touch
Final Touch

Эми бизде долбоор иштеп жатат жана MQTT билдирүүсүн брокерге жарыялай алдык, кийинки кадам - бул менен эмне кылуу керек экенин ойлонуу.

Менин долбоорумда, мен "tele/SumpWaterSensor" MQTT темасын угуу/жазылуу жана суу табылса, бир нече Google үй динамиктерине жарыялоо үчүн Node-RED колдоном. Мындан тышкары, мен андроид телефонума билдирүү жөнөтүү үчүн агымды pushbullet түйүнү менен байланыштырдым.

Мен ошондой эле сенсордун абалын көрүү үчүн веб-фронтту түздүм (күйүк/оффлайн, иштөө убактысы ж. Б.). Кээде мен 1 жуманын ичинде оффлайнда бир нече жолу, статистикадан, көп учурда ESP-01дин wifiдан же MQTTден ажыратылганына байланыштуу болгонун көрдүм. Бирок, өтө тынчсызданбаңыз, менин эскизимде ESP-01ди кайра баштоо тартиби камтылган, эгерде ал WIFI жана/же MQTT брокерине туташууга аракет кыла бербесе.

Бул кадамдагы сүрөт муну аткаруу үчүн Node-RED агымын көрсөтөт. Сиз ошондой эле менин github баракчамдагы агымды Node-REDге чаптай аласыз:

Google үйүнүн кулактандыруусу бул долбоордун бир гана мисалы, бирок бул эң пайдалуу жана практикалык деп ойлойм. Сиз ар дайым башка MQTT угуучусу менен интерфейс түзө аласыз, же IFTTT аркылуу башка түзмөктөрдү суу аныкталганда айдай аласыз.

Көңүл ачуу…

Сунушталууда: