สารบัญ:

MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01: 6 ขั้นตอน
MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01: 6 ขั้นตอน

วีดีโอ: MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01: 6 ขั้นตอน

วีดีโอ: MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01: 6 ขั้นตอน
วีดีโอ: เปิดปิดประตูอัตโนมัติ ด้วย Line BOT | MQTT | Arduino | ESP01-Relay 2024, พฤศจิกายน
Anonim
MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01
MQTT/กริ่งประตูหน้าแรกของ Google โดยใช้ ESP-01

คุณเคยพลาดการตอบรับแขกที่กดกริ่งประตูของคุณเพียงเพราะคุณอยู่ในส่วนหนึ่งของบ้านที่ไกลเกินกว่าจะได้ยินเสียงกริ่งประตูหรือไม่? เช่น ห้องใต้ดิน ห้องนอนแบบปิด หรือบางทีคุณอาจกำลังดูทีวีหรือฟังเพลงอยู่

เช่นเดียวกับฉัน คุณมีลำโพง Google Home อย่างน้อยหนึ่งตัวในหลายตำแหน่งทั่วทั้งบ้าน คำแนะนำนี้อาจเป็นสิ่งที่คุณต้องการ

ในคำแนะนำนี้ ฉันจะแสดงวิธีเพิ่มไคลเอนต์ MQTT ให้กับกริ่งประตูที่มีอยู่เพื่อสื่อสารกับนายหน้า MQTT พร้อมประกาศไปยัง google home / pushbullet โดยใช้ NodeRED โปรเจ็กต์นี้ไม่ได้แทนที่สวิตช์กริ่งประตูหรือกริ่ง มันยังคงใช้ปุ่มกดแบบกลไกปกติสำหรับกริ่งประตู

เราจะเพิ่มโมดูล ESP-01 ลงในระบบออด 16VAC ที่มีอยู่ โดยเพิ่มฟังก์ชัน MQTT เพื่อส่งข้อความไปยังโบรกเกอร์ MQTT (เมื่อกดสวิตช์ออด) โบรกเกอร์ MQTT จะส่งต่อข้อความไปยัง NodeRED เมื่อได้รับข้อความ MQTT แล้ว NodeRED จะส่งประกาศไปยังอุปกรณ์ Google Home หลายเครื่อง และยังเลือกที่จะส่งข้อความไปยังโทรศัพท์มือถือ/เบราว์เซอร์ผ่าน pushbullet

ฉันมีความหลงใหลในระบบอัตโนมัติภายในบ้าน DIY และค่อยๆ เพิ่ม IOT ในบ้านของฉัน หน้าแรกของ Google เป็นหนึ่งในฟังก์ชันหลักในระบบอัตโนมัติในบ้านของฉัน

ลูกชายของฉันให้แนวคิดสำหรับโครงการนี้แก่ฉัน เมื่อเขาถามฉันว่าฉันสามารถทำให้ Google Home ประกาศทุกครั้งที่มีคนกดกริ่งประตูของเราหรือไม่ เรามีบ้าน 2 ชั้น + สร้างบ้านชั้นใต้ดิน และหลายครั้งที่เราไม่ได้ยินเสียงกระดิ่งเวลาเราอยู่ในห้องใต้ดินหรือชั้นบนในห้องนอนที่มีประตูปิดหรือเปิดทีวี

เรามี google home mini 4 เครื่องในบ้านของเราวางไว้ในสถานที่/ห้องต่างๆ และด้วยการใช้ Google homes เพื่อประกาศกริ่งประตู เรารู้ทันทีว่าที่ไหนในบ้านถ้ามีคนกดกริ่ง

ในบ้านของฉัน ฉันใช้ RaspberryPi ZeroW เพื่อโฮสต์เซิร์ฟเวอร์ Mosquitto MQTT และ NodeRED มันทำงานมานานกว่าหนึ่งปีโดยไม่มีปัญหาใด ๆ

ข้อมูลอ้างอิง:

  • แผนภาพการเดินสายกริ่งประตู:
  • ติดตั้ง Mosquitto MQTT Broker บน Raspberry Pi:
  • ติดตั้ง NodeRED บน Raspberry Pi:

ขั้นตอนที่ 1: สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และ Door Chime

สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู
สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู
สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู
สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู
สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู
สร้างวงจรเพื่อเชื่อมต่อ ESP-01 และกระดิ่งประตู

ขั้นตอนแรกคือการสร้างวงจรที่จะเป็นส่วนต่อประสานระหว่าง ESP-01 และ Door Chime กริ่งประตูทั่วไปจะเปิดใช้งานเมื่อมี 16VAC ระหว่างพิน "TRANS (อดีต)" และ "FRONT/REAR" ตามที่แสดงในภาพแรกของฉัน แรงดันไฟฟ้าแสดงบนหมุดเหล่านั้นเมื่อกดปุ่มกริ่งประตู

วงจรที่ฉันออกแบบคือตรวจจับสัญญาณ 16VAC นี้และแปลงเป็นสัญญาณดิจิตอลประมาณ 3.3VDC เป็นวงจรเรียงกระแสแบบครึ่งคลื่นพื้นฐานที่สร้างโดย D1 และ C1 เราไม่จำเป็นต้องมีวงจรเรียงกระแสแบบฟูลเวฟในสถานการณ์นี้ เนื่องจากมีโหลดไปยังเอาต์พุต DC น้อยมาก ทำให้เราประหยัดอสังหาริมทรัพย์บนกระดานได้เล็กน้อย ฉันต้องการทำให้กระดานน้อยที่สุดเท่าที่จะทำได้ เพื่อที่ฉันจะได้วางมันไว้ในกริ่งที่มีอยู่

R1 และ R2 สร้างตัวแบ่งแรงดันไฟฟ้าเพื่อลดแรงดัน DC สูงสุดลงไปที่ประมาณ 3.3V

R3, TR1 และ R4 สร้างอินเวอร์เตอร์เพื่อให้ตรรกะย้อนกลับสำหรับ ESP-01 GPIO-2 นี่เป็นสิ่งจำเป็นเพื่อให้ลอจิก HIGH ระหว่างการบู๊ต (ด้วย pull-up R4 และ R5) สำหรับ ESP-01 เพื่อบู๊ตจากแฟลช เมื่อกดปุ่มกริ่งประตูจะแสดงลอจิก LOW ไปที่ GPIO-2. TR1 อาจเป็นทรานซิสเตอร์ NPN กำลังไฟฟ้าขนาดเล็ก ในกรณีของฉันฉันใช้ 2N3904

V1 เป็นแหล่งจ่ายไฟ 3.3VDC ที่ฉันสร้างขึ้นโดยใช้เครื่องชาร์จโทรศัพท์มือถือ 5V แบบเก่า ร่วมกับตัวควบคุม AMS1117 3.3VDC ที่ฉันจะแสดงในขั้นตอนต่อไป

สำหรับซ็อกเก็ต ESP-01 ฉันใช้ซ็อกเก็ต IC มาตรฐาน 8 พิน และตัดสะพานพลาสติกที่สร้างช่องว่างระหว่างแถว แล้วกาว 2 แถวเข้าด้วยกัน

ขั้นตอนที่ 2: แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01

แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01
แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01
แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01
แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01
แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01
แหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01

ในขั้นตอนนี้ เราจะสร้างแหล่งจ่ายไฟ 3.3VDC สำหรับ ESP-01 ฉันมีอะแดปเตอร์ชาร์จ USB 500mA และ 700mA 5VDC รุ่นเก่าสองสามตัวที่ฉันนำมาใช้ใหม่สำหรับโครงการนี้ นอกจากนี้เรายังต้องการตัวควบคุม 3.3VDC เพื่อลดแรงดันไฟฟ้า 5V เป็น 3.3V สำหรับสิ่งนี้ฉันใช้โมดูลตัวควบคุม AMS1117 ที่สร้างไว้ล่วงหน้าราคาถูกซึ่งฉันซื้อจากอีเบย์ คุณสามารถค้นหา "โมดูล 3.3V AMS1117" และค้นหาสิ่งที่เหมาะกับคุณได้

โมดูลควบคุม 3.3V นี้มีขนาดเล็กมากจนฉันสามารถใส่ไว้ในกล่องชาร์จ USB 5V ดั้งเดิมทำให้ปลอดภัยจากการลัดวงจรที่อาจเกิดขึ้น ฉันถอดปลั๊กผนัง AC ออกจากโมดูลอุปกรณ์ชาร์จแล้วแทนที่ด้วยสายเคเบิลสองเส้นที่จะเชื่อมต่อกับ 120VAC จากผนังด้านหลังกริ่งที่มีอยู่ แต่อย่าถอดง่ามในขั้นตอนนี้จนกว่าเราจะทดสอบการทำงานในขั้นตอนต่อไป

หากมีเต้ารับติดผนังอยู่ใกล้ๆ หรือหากคุณไม่สะดวกในการเดินสายไฟของแหล่งจ่ายไฟตรงไปยังสายไฟในบ้าน คุณสามารถเลือกเพียงแค่เสียบปลั๊กไฟที่ดัดแปลงเข้ากับปลั๊กผนัง แล้วเดินสายไปที่เสียงกริ่ง อาจดูไม่สะอาดเท่าการต่อเข้ากับสายไฟบ้านโดยตรง

ดูรูปถ่ายของฉันเพื่อดูว่าหลังกริ่งของฉันคือสายไฟ 120VAC และหม้อแปลง 16VAC สำหรับกริ่ง

เอาต์พุตจากตัวควบคุม 3.3V จะเชื่อมต่อกับบอร์ดอินเทอร์เฟซ ESP-01 ตามขั้นตอนก่อนหน้า

ขั้นตอนที่ 3: กระพริบ 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 เข้ากับบอร์ดอินเทอร์เฟซ

ขั้นตอนที่ 4: ทดสอบการทำงาน

ทดสอบการทำงาน
ทดสอบการทำงาน
ทดสอบการทำงาน
ทดสอบการทำงาน
ทดสอบการทำงาน
ทดสอบการทำงาน

จากขั้นตอนที่ 1 เราได้สร้างบอร์ดอินเทอร์เฟซ ESP-01 และจากขั้นตอนที่ 2 เรามีแหล่งจ่ายไฟ 3.3V สำหรับบอร์ด ESP-01 ตอนนี้เราเชื่อมต่อเอาต์พุตของแหล่งจ่ายไฟกับบอร์ดตามแผนภาพวงจรที่แสดงเป็น V1

ตอนนี้ ขั้นตอนต่อไปคือการเชื่อมต่อเทอร์มินอล Trans/Door ของ chime กับการเชื่อมต่อบอร์ดอินเทอร์เฟซที่แสดงเป็น "Door Chime Terminals" เนื่องจากเสียงกริ่งของฉันติดตั้งอยู่สูงบนผนัง สำหรับการทดสอบ ฉันจึงใช้สายเคเบิลยาวคู่หนึ่งจากขั้วกริ่งไปยังบอร์ดชั่วคราว เพื่อที่ฉันจะได้เสียบปลั๊กไฟ

เพื่อทดสอบว่า contraption ของเราทำงานหรือไม่ วิธีที่ง่ายที่สุดคือการตรวจสอบข้อความ MQTT ในเครือข่าย ในการทำเช่นนั้น คุณต้องเปิดเซสชัน SSH ให้กับโบรกเกอร์ mosquitto และออกคำสั่งต่อไปนี้:

mosquitto_sub -v -t '#'

คำสั่งข้างต้นจะช่วยให้เราเห็นข้อความ MQTT ทั้งหมดที่เข้ามาในโบรกเกอร์

ตอนนี้ เสียบปลั๊กไฟเข้ากับเต้ารับที่ผนัง และหากทุกอย่างทำงานได้ อย่างน้อยในไม่กี่วินาที คุณควรเห็นข้อความ MQTT ต่อไปนี้:

สถิติ/ออด/LWT ออนไลน์

ออกไปข้างนอกแล้วกดกริ่งประตู แล้วคุณจะเห็นข้อความนี้:

เปิดเทเล/ออด

หากคุณเห็นข้อความเหล่านั้น แสดงว่าโครงการของคุณประสบความสำเร็จ

ฉันยังรวมหัวข้อ MQTT ที่มีประโยชน์ไว้ในแบบร่างที่คุณสามารถใช้ได้:

"stat/DoorBellInfo": ข้อความนี้จะถูกส่งทุกนาทีเพื่อแจ้งเวลาทำงานและข้อมูลอื่นๆ

"cmnd/DoorBellInfo": ESP-01 จะส่งข้อมูลหากได้รับหัวข้อนี้ด้วยค่า '1' (ascii=49)"cmnd/DoorBellCPUrestart": ESP-01 จะรีสตาร์ทหากได้รับหัวข้อนี้ด้วยค่า '1 ' (ascii=49)"cmnd/DoorBellCPUReset": ESP-01 จะรีเซ็ตหากได้รับหัวข้อนี้ด้วยค่า '1' (ascii=49)

"tele/FrontDoorBell": ESP-01 จะส่ง msg ในหัวข้อนี้ด้วยค่า 'ON' หากกดกริ่งประตู

ขั้นตอนที่ 5: การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime

การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime
การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime
การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime
การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime
การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime
การรวมบอร์ดและพาวเวอร์ซัพพลายเข้ากับ Chime

ตอนนี้เราทดสอบสำเร็จแล้ว เราจำเป็นต้องประกอบบอร์ดและแหล่งจ่ายไฟภายในกริ่งประตูของเรา (ถ้าเป็นไปได้) ในเสียงกริ่งที่มีอยู่ของฉัน มีตู้เปล่าที่ฉันสามารถตัดเปิดและใส่แหล่งจ่ายไฟภายในพื้นที่นั้นได้ บอร์ด ESP-01 ไม่พอดีกับพื้นที่เล็กๆ นั้น แต่ยังคงพอดีกับกล่องเสียงกริ่งโดยรวม ฉันเพิ่งใช้เทปกาวสองหน้าแบบหนาเพื่อยึดบอร์ดอินเทอร์เฟซ ESP-01

ตอนนี้ เราสามารถถอดขาโลหะออกจากที่ชาร์จ USB ของเราแล้วแทนที่ด้วยสายเคเบิลที่หนากว่าซึ่งเราสามารถเชื่อมต่อกับสายไฟภายในบ้านได้ อย่าลืมปิดเซอร์กิตเบรกเกอร์ที่จ่ายไฟฟ้าให้กับวงจรกริ่ง

หากมีพื้นที่ไม่เพียงพอสำหรับโปรเจ็กต์ของเรากับกริ่งประตูที่มีอยู่ คุณจะต้องใส่มันลงในกล่องแยกต่างหากและติดตั้งไว้ใกล้กับกริ่งประตู

ขั้นตอนที่ 6: สัมผัสสุดท้าย

สัมผัสสุดท้าย
สัมผัสสุดท้าย

ตอนนี้ เรามีโปรเจ็กต์ที่ทำงานและสามารถเผยแพร่ข้อความ MQTT ไปยังนายหน้าได้ ขั้นตอนต่อไปคือการคิดว่าจะทำอย่างไรกับสิ่งนั้น

ในโครงการของฉัน ฉันใช้ Node-RED เพื่อฟัง/สมัครรับข้อมูลหัวข้อ MQTT ของออดนั้นและประกาศให้ผู้พูดในบ้านของ Google หลายคนทราบ นอกจากนั้น ฉันยังเชื่อมโยงโฟลว์กับโหนด pushbullet เพื่อส่งการแจ้งเตือนไปยังโทรศัพท์ Android ของฉัน ดังนั้นฉันจึงรู้ว่ามีใครกดกริ่งประตูหรือไม่ แม้ว่าฉันจะไม่อยู่บ้านก็ตาม การแจ้งเตือนแบบ Pushbullet นั้นไม่มีประโยชน์สำหรับบางคน แต่มันค่อนข้างมีประโยชน์มากสำหรับฉัน ประกอบกับกล้องวิดีโอที่ระเบียงหน้าบ้านของฉัน ฉันสามารถดูได้ว่าใครมาส่งของ ฉันไม่สามารถพึ่งพาคุณสมบัติการตรวจจับการเคลื่อนไหวของกล้องได้มากนักเนื่องจากการรบกวนต่างๆ โดยเฉพาะเงาของต้นไม้ที่กำลังเคลื่อนที่

รูปภาพในขั้นตอนนี้แสดงโฟลว์ Node-RED เพื่อทำสิ่งนี้ให้สำเร็จ คุณยังสามารถวางโฟลว์จากหน้า github ของฉันลงใน Node-RED ของคุณ:

การประกาศหน้าแรกของ Google เป็นเพียงตัวอย่างหนึ่งสำหรับโครงการนี้ แต่ฉันคิดว่ามันมีประโยชน์และใช้งานได้จริงมากที่สุด คุณสามารถเชื่อมต่อกับผู้ฟัง MQTT อื่นได้ตลอดเวลา หรือแม้แต่ใช้ IFTTT เพื่อขับเคลื่อนอุปกรณ์อื่นๆ เมื่อกดกริ่งประตู

มีความสุข…

แนะนำ: