สารบัญ:
- ขั้นตอนที่ 1: อะไหล่ที่คุณต้องการ
- ขั้นตอนที่ 2: แผนภาพวงจร
- ขั้นตอนที่ 3: สร้างวงจร
- ขั้นตอนที่ 4: กระพริบ ESP-01
- ขั้นตอนที่ 5: ทดสอบ Run
- ขั้นตอนที่ 6: ติดตั้งเซนเซอร์
- ขั้นตอนที่ 7: สัมผัสสุดท้าย
วีดีโอ: MQTT/Google Home Flood/Water WIFI Sensor พร้อม ESP-01: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเซ็นเซอร์น้ำท่วม/น้ำ wifi ด้วยต้นทุนที่ต่ำที่สุด โปรเจ็กต์ทั้งหมดมีค่าใช้จ่ายน้อยกว่า 8 ดอลลาร์สำหรับชิ้นส่วนที่ฉันซื้อจากอีเบย์และอะไหล่ที่มีอยู่
ในโครงการนี้ เราจะใช้ ESP-01 เพื่อจัดหา Wifi และไคลเอนต์ MQTT เพื่อตรวจจับว่ามีน้ำอยู่ และใช้ลำโพง/ออดที่เชื่อมต่อโดยตรงเพื่อส่งสัญญาณเตือนเฉพาะที่
แอปพลิเคชันเฉพาะของฉันสำหรับโครงการคือการตรวจจับน้ำท่วม/น้ำภายในบ่อปั๊มทิ้งของฉัน ในกรณีของความล้มเหลวของปั๊มทิ้ง เมื่อตรวจพบน้ำโดยสายไฟเปิด 2 เส้น มันจะส่งข้อความถึงนายหน้า MQTT โบรกเกอร์ MQTT จะส่งต่อข้อความไปยัง NodeRED เมื่อได้รับข้อความ MQTT แล้ว NodeRED จะส่งประกาศไปยังอุปกรณ์โฮมของ Google หลายเครื่องและเลือกที่จะส่งข้อความไปยังโทรศัพท์มือถือ/เบราว์เซอร์ผ่าน pushbullet
แน่นอนว่าโครงการนี้จะใช้ได้ก็ต่อเมื่อไฟฟ้าในบ้านเปิดอยู่เท่านั้น ในคำแนะนำต่อไปฉันจะรวมวงจรสำรองแบตเตอรี่ แต่ถ้าคุณทำพาวเวอร์ซัพพลายแบบเดียวกับที่ฉันทำ คุณสามารถเสียบพาวเวอร์แบงค์แบบ USB เพื่อสำรองแบตเตอรีได้ หากคุณมีพาวเวอร์แบงค์ที่ให้คุณชาร์จและจ่ายไฟได้พร้อมกัน แสดงว่าคุณพร้อมแล้ว
ฉันใช้ RaspberryPi ZeroW เพื่อโฮสต์เซิร์ฟเวอร์ Mosquitto MQTT และ NodeRED มันทำงานมานานกว่าหนึ่งปีโดยไม่มีปัญหาใด ๆ
ข้อมูลอ้างอิง:Raspberry Pi:https://www.switchdoc.com/2016/02/tutorial-installi…ติดตั้ง NodeRED บน Raspberry Pi:
ขั้นตอนที่ 1: อะไหล่ที่คุณต้องการ
ส่วนรายการ:
(1) ESP-01
(2) ตัวต้านทาน 10K โอห์ม
(1) ทรานซิสเตอร์ NPN สัญญาณขนาดเล็กทั่วไป (ฉันใช้ 2N3904)
(2) สายยาว
(1) แหล่งจ่ายไฟทั่วไป 5V (วงจรนี้ต้องการกระแสไฟน้อยกว่า 300mA)
(1) โมดูลควบคุม 3.3V AMS1117
(1) Micro-USB ไปยังอะแดปเตอร์ DIP ตัวเมีย เชื่อมต่อ ตัวแปลง PCB DIY Kit
(1) สาย USB-A เป็น MicroUSB
(1) ซ็อกเก็ตไอซี 8 พิน - สามารถละเว้นได้หากคุณต้องการบัดกรี ESP-01 เข้ากับแผงวงจรโดยตรง ตัดสะพานพลาสติกที่สร้างช่องว่างระหว่างแถว แล้วทากาวทั้ง 2 แถวเข้าด้วยกัน ดูรูป
(1) ตู้ขนาดเล็กสำหรับโครงการ
ด้านล่างนี้เป็นส่วนเสริมหากคุณต้องการให้การเตือนเป็นภาษาท้องถิ่นโดยใช้ลำโพง/กริ่ง
(1) ทรานซิสเตอร์ PNP ทั่วไป เลือกตามความต้องการของกระแสไฟ/กำลังไฟของลำโพง/ออดเซอร์ ในกรณีของฉัน ฉันใช้ 2N2907 เนื่องจากลำโพงของฉันมีเพียง 0.3W (8 โอห์ม) มันจะให้พลังงานเพียงพอในการขับลำโพง คุณสามารถเลือกทรานซิสเตอร์และลำโพงที่ใหญ่ขึ้นได้หากต้องการให้เสียงดังขึ้น
(1) ลำโพง ดูหมายเหตุเกี่ยวกับทรานซิสเตอร์ PNP ด้านบน
(1) ตัวต้านทาน 100 - 110 โอห์ม
ขั้นตอนที่ 2: แผนภาพวงจร
ขั้นตอนแรกคือการสร้างวงจรที่แสดงในแผนภาพ
ฉันสร้างแหล่งจ่ายไฟ 3.3VDC โดยใช้เครื่องชาร์จมือถือ 5V รุ่นเก่า ร่วมกับตัวควบคุม AMS1117 3.3VDC สำหรับซ็อกเก็ต ESP-01 ฉันใช้ซ็อกเก็ต IC มาตรฐาน 8 พิน และตัดสะพานพลาสติกที่สร้างช่องว่างระหว่างแถว แล้วกาว 2 แถวเข้าด้วยกัน
วงจรที่ฉันออกแบบคือการรับรู้ว่ามีน้ำอยู่ระหว่างสายไฟสองเส้น เมื่อน้ำไปถึงปลายสายทั้งสอง มันจะสร้างความต้านทานประมาณ 10K ถึง 20K โอห์ม จากนั้นในซีรีส์ที่มี 10K ohm R1 จะจ่ายกระแสไฟขนาดเล็กไปที่ฐานของ Q1 ทำให้ Q1 อิ่มตัว โดยยึด GPIO-2 กับกราวด์ R1 จำเป็นสำหรับการป้องกัน Q1 ในกรณีที่สายตรวจจับไฟฟ้าลัดวงจรโดยไม่ได้ตั้งใจ
R2 เป็นตัวต้านทานแบบดึงขึ้นเพื่อให้ ESP-01 สามารถบู๊ตจากแฟลชได้
ตอนนี้สำหรับลำโพง/ออดเสริม หากคุณต้องการให้ ESP-01 พูด MQTT และไม่ต้องการใช้การเตือนที่แปลแล้ว คุณสามารถลบ R2, Q2, ลำโพง และวางตัวต้านทานแบบดึงขึ้น 10K ระหว่าง GPIO-0 และวีซีซี
หากคุณไม่ต้องการใช้อะแดปเตอร์ Micro-USB เป็น DIP ตัวเมีย คุณสามารถบัดกรีสายไฟระหว่าง 5V PS กับโมดูลตัวควบคุม 3.3V ได้ ฉันชอบใช้อะแดปเตอร์ MicroUSB ตัวเมีย ดังนั้นฉันจึงสามารถใช้ที่ชาร์จโทรศัพท์มือถือทั่วไปและสาย MicroUSB ได้
ขั้นตอนที่ 3: สร้างวงจร
ประสานส่วนประกอบและชิ้นส่วนทั้งหมดลงใน PCB ตามแผนภาพวงจรในหน้าก่อนหน้า แล้วตัด PCB ให้มีขนาด
วาง PCB ไว้ในกล่องหุ้มที่จะพอดีกับ PCB และลำโพงเสริม ในกรณีของฉัน ชิ้นส่วนทั้งหมดจะพอดีกับกล่องเต้าเสียบโทรศัพท์ขนาดเล็ก แม้ว่าฉันต้องทำให้ฝาครอบร้อนขึ้นเล็กน้อยเพื่อสร้างส่วนนูนเพื่อให้โมดูล ESP-01 จะพอดี
ขั้นตอนที่ 4: กระพริบ ESP-01
ในขั้นตอนนี้ เราจะแฟลช ESP-01 ด้วยภาพสเก็ตช์ Arduino หากคุณไม่เคยแฟลชโมดูล 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 ถัดไป หากการสื่อสารไปยัง AP ปัจจุบันหายไป หากคุณมี SSID เพียงอันเดียว ให้เติมทั้ง ssid1 และ ssid2 ด้วยค่าเดียวกัน
เมื่อคุณทำการแก้ไขแล้ว ให้อัปโหลดภาพสเก็ตช์ไปที่ ESP-01 และเสียบ ESP-01 เข้ากับบอร์ดอินเทอร์เฟซ
ขั้นตอนที่ 5: ทดสอบ Run
เพื่อทดสอบว่าโครงการของเราใช้งานได้หรือไม่ วิธีที่ง่ายที่สุดคือตรวจสอบข้อความ MQTT ในเครือข่าย ในการทำเช่นนั้น คุณต้องเปิดเซสชัน SSH ให้กับโบรกเกอร์ mosquitto และออกคำสั่งต่อไปนี้:
mosquitto_sub -v -t '#'
คำสั่งข้างต้นจะช่วยให้เราเห็นข้อความ MQTT ทั้งหมดที่เข้ามาในโบรกเกอร์
ตอนนี้เพิ่มพลังให้วงจรของเรา และหากทุกอย่างทำงานได้ อย่างน้อยในไม่กี่วินาที คุณควรเห็นข้อความ MQTT ต่อไปนี้:
stat/SumpWaterSensor/LWT Online
ตอนนี้ให้ทดสอบเซ็นเซอร์น้ำโดยจุ่มสายตรวจจับ 2 เส้นลงในถ้วยน้ำ และคุณควรเห็นข้อความนี้:
เทเล/SumpWaterSensor WET
และหากคุณนำสายไฟขึ้นจากน้ำ คุณจะเห็นข้อความนี้:
เทเล/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 (Hz)
"cmnd/SumpWaterSensorDebug": เปิดใช้งานและตั้งค่าระดับการดีบักแบบอนุกรม (ค่าเริ่มต้นคือ 0 - ไม่มีการดีบัก)
ขั้นตอนที่ 6: ติดตั้งเซนเซอร์
ในใบสมัครของฉัน ฉันต้องการตรวจสอบระดับน้ำในบ่อบ่อพัก และแจ้งให้ฉันทราบว่าน้ำถึงเหนือสวิตช์ลูกลอยของปั๊มทิ้ง ซึ่งหมายความว่าปั๊มทิ้งของฉันไม่ทำงาน ฉันเดินสายไฟและใช้ที่รัดสายไฟเพื่อยึดไว้ตามท่อระบายน้ำ
ขั้นตอนที่ 7: สัมผัสสุดท้าย
ตอนนี้ เรามีโปรเจ็กต์ที่ทำงานและสามารถเผยแพร่ข้อความ MQTT ไปยังนายหน้าได้ ขั้นตอนต่อไปคือการคิดว่าจะทำอย่างไรกับสิ่งนั้น
ในโครงการของฉัน ฉันใช้ Node-RED เพื่อฟัง/สมัครรับข้อมูลหัวข้อ MQTT "tele/SumpWaterSensor" และประกาศให้ผู้พูดในบ้านของ Google หลายคนทราบหากตรวจพบน้ำ นอกจากนั้น ฉันยังเชื่อมโยงโฟลว์กับโหนด pushbullet เพื่อส่งการแจ้งเตือนไปยังโทรศัพท์ Android ของฉัน
ฉันยังสร้างส่วนหน้าของเว็บเพื่อดูสถานะของเซ็นเซอร์ (เปิด/ออฟไลน์ เวลาทำงาน ฯลฯ) บางครั้งฉันเห็นว่ามันออฟไลน์ไม่กี่ครั้งในช่วง 1 สัปดาห์จากสถิติ หลายครั้งที่ ESP-01 ถูกตัดการเชื่อมต่อจาก wifi หรือ MQTT แต่ไม่ต้องกังวลไป สเก็ตช์ของฉันได้รวมรูทีนเพื่อรีสตาร์ท ESP-01 หากยังคงล้มเหลวในการพยายามเชื่อมต่อกับนายหน้า WIFI และ/หรือ MQTT
รูปภาพในขั้นตอนนี้แสดงโฟลว์ Node-RED เพื่อทำสิ่งนี้ให้สำเร็จ คุณยังสามารถวางโฟลว์จากหน้า github ของฉันลงใน Node-RED ของคุณ:
การประกาศหน้าแรกของ Google เป็นเพียงตัวอย่างหนึ่งสำหรับโครงการนี้ แต่ฉันคิดว่ามันมีประโยชน์และใช้งานได้จริงมากที่สุด คุณสามารถเชื่อมต่อกับ MQTT listener อื่นๆ ได้ตลอดเวลา หรือแม้แต่ใช้ IFTTT เพื่อขับเคลื่อนอุปกรณ์อื่นๆ เมื่อตรวจพบน้ำ
มีความสุข…
แนะนำ:
Home Automation WiFi Light Switch พร้อม ESP-01 และโมดูลรีเลย์พร้อมปุ่มกด: 7 ขั้นตอน
Home Automation WiFi Light Switch พร้อม ESP-01 และโมดูลรีเลย์พร้อมปุ่มกด: ดังนั้นในคำแนะนำก่อนหน้านี้ เราตั้งโปรแกรม ESP-01 ด้วย Tasmota โดยใช้ ESP Flasher และเชื่อมต่อ ESP-01 กับเครือข่าย wifi ของเรา ตอนนี้ เราสามารถเริ่มเขียนโปรแกรมได้แล้ว เพื่อเปิด/ปิดสวิตซ์ไฟโดยใช้ WiFi หรือปุ่มกด สำหรับการใช้งานไฟฟ้า
Home Automation WiFi Light Switch พร้อม ESP-01: 8 ขั้นตอน
Home Automation WiFi Light Switch ด้วย ESP-01: ด้วยสิ่งที่ทำลายไม่ได้นี้ ฉันจะแนะนำขั้นตอนต่างๆ ในการสร้างสวิตช์ไฟ wifi ตัวแรกของคุณ ต่อไปเราจะทำเซ็นเซอร์และไปที่การตั้งค่าและการกำหนดค่า Home Assistant ในที่สุด
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: 3 ขั้นตอน
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: เป็นโปรเจ็กต์เครื่องรับย่านความถี่ทั้งหมด ใช้ห้องสมุด Arduino Si4734 ห้องสมุดนี้มีตัวอย่างมากกว่า 20 ตัวอย่าง คุณสามารถฟัง FM ด้วย RDS สถานี AM (MW) ในพื้นที่ SW และสถานีวิทยุสมัครเล่น (SSB) เอกสารทั้งหมดที่นี่
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: 5 ขั้นตอน
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: Micropython เป็นการเพิ่มประสิทธิภาพของ python และมีขนาดเล็กของ python ซึ่งหมายถึงการสร้างสำหรับอุปกรณ์ฝังตัวซึ่งมีข้อจำกัดด้านหน่วยความจำและใช้พลังงานต่ำ Micropython สามารถใช้ได้กับคอนโทรลเลอร์หลายตระกูล ซึ่งรวมถึง ESP8266, ESP32, Ardui
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก