สารบัญ:

กริ่งประตูและเซ็นเซอร์อุณหภูมิ: 6 ขั้นตอน
กริ่งประตูและเซ็นเซอร์อุณหภูมิ: 6 ขั้นตอน

วีดีโอ: กริ่งประตูและเซ็นเซอร์อุณหภูมิ: 6 ขั้นตอน

วีดีโอ: กริ่งประตูและเซ็นเซอร์อุณหภูมิ: 6 ขั้นตอน
วีดีโอ: ขั้นตอนที่ 6 การติดตั้งอุปกรณ์และเซนเซอร์ ในชุด Starter Kit ของ Home8 2024, พฤศจิกายน
Anonim
กริ่งประตูและเซ็นเซอร์อุณหภูมิ
กริ่งประตูและเซ็นเซอร์อุณหภูมิ

สิ่งนี้ช่วยปรับปรุงกริ่งประตูแบบมีสายแบบแข็งมาตรฐานด้วยโมดูล esp-12F (esp8266)

โดยจะติดตั้งในตัวเบลล์เองเพื่อหลีกเลี่ยงการเปลี่ยนแปลงในการเดินสาย มันมีฟังก์ชั่นดังต่อไปนี้

  • ตรวจจับเสียงกริ่งประตู
  • ส่งการแจ้งเตือนไปยังโทรศัพท์ผ่าน IFTTT
  • จัดเก็บกิจกรรมกริ่งประตูในเซิร์ฟเวอร์ easyIOT (ตัวเลือก)
  • ทริกเกอร์กิจกรรมอื่นผ่าน URL เมื่อกดกริ่งประตู

    ฉันถ่ายภาพสแนปชอตบนเว็บแคมข้างประตูและสามารถดูเสียงกริ่งประตูล่าสุดบนโทรศัพท์ของฉันได้

  • เซ็นเซอร์วัดอุณหภูมิในตัว (DS18B20) ที่เป็นตัวเลือกซึ่งเป็นส่วนหนึ่งของการตรวจสอบอุณหภูมิในบ้านของฉัน

ขั้นตอนที่ 1: ฮาร์ดแวร์และวัสดุ

ฮาร์ดแวร์และวัสดุ
ฮาร์ดแวร์และวัสดุ
ฮาร์ดแวร์และวัสดุ
ฮาร์ดแวร์และวัสดุ

จำเป็นต้องใช้วัสดุดังต่อไปนี้

  • ESP-12F (ESP8266) โมดูล wifi / cpu
  • ตัวแปลง DC Buck สำหรับการจ่ายไฟ 3.3V
  • วงจรเรียงกระแสไดโอด (เช่น 1N4001)
  • ตัวเก็บประจุด้วยไฟฟ้า 220uF 35V
  • ตัวเก็บประจุด้วยไฟฟ้า 220uF 16V
  • ซีเนอร์ไดโอด 3.3 หรือ 2.6V
  • ตัวต้านทาน
  • ชิ้นส่วนของแผ่นแถบ
  • ตัวเชื่อมต่อถ้าจำเป็น
  • เซ็นเซอร์อุณหภูมิดิจิตอล DS18B20 หากจำเป็น

แผนผังแสดงวงจรที่ใช้ ถือว่ากระดิ่งที่ใช้ไฟ AC แรงดันต่ำซึ่งเป็นแบบทั่วไปของกระดิ่งแบบมีสายแบบแข็ง เบลล์ยูนิตได้รับพลังงานจากหม้อแปลงเบลล์ภายนอกโดยทั่วไปจะอยู่ที่ประมาณ 10V AC สิ่งนี้ไม่สำคัญโดยมีข้อ จำกัด เพียงอย่างเดียวคือแรงดันไฟฟ้าสูงสุดในตัวแปลงบั๊ก อันที่ฉันใช้คือ MP2307 ที่มีอินพุตสูงสุด 23V dc (~16V AC)

โดยปกติจะมี 3 ขั้วที่ใช้งานอยู่ ด้วยการกดกระดิ่งทำให้การเชื่อมต่อจากด้านหนึ่งของแหล่งจ่ายไฟ AC ไปยังโซลินอยด์ของกระดิ่ง โมดูลนี้ใช้ขั้วไฟฟ้ากระแสสลับสองขั้วเพื่อผลิตไฟฟ้ากระแสตรงผ่านวงจรเรียงกระแสแบบครึ่งคลื่นอย่างง่าย การตรวจจับการกดกระดิ่งคือการตรวจสอบแรงดันไฟฟ้าผ่านโซลินอยด์จริง ปกติจะเป็นกราวด์ แต่เมื่อเปิดใช้งานกริ่งจะเป็น AC เต็มรูปแบบ ตัวต้านทาน / ซีเนอร์ไดโอดคลิปสิ่งนี้เพื่อให้พัลส์ 0 - 3.3V 50 Hz ถูกป้อนเข้าในพิน GPIO ซอฟต์แวร์ประมวลผลสิ่งนี้เพื่อให้การเปิดใช้งานครั้งเดียวต่อการกดกระดิ่ง

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

แผนผังตามที่แสดงประกอบด้วยเซ็นเซอร์อุณหภูมิ DS18B20 นี้เป็นทางเลือก ฉันใช้มันเป็นส่วนหนึ่งของเครือข่ายตรวจสอบพื้นที่ส่วนใหญ่ในบ้านของฉัน หากรวมอยู่ด้วย จะเป็นการดีที่จะต่อสายเซ็นเซอร์ด้วยสายเคเบิลสองสามเซนติเมตรเพื่อแยกเซ็นเซอร์ออกจากผลกระทบจากความร้อนในท้องถิ่น

ขั้นตอนที่ 2: ซอฟต์แวร์

หน่วยผลักประตูใช้ร่าง Arduino ที่มีอยู่ใน github

สิ่งนี้จำเป็นต้องปรับให้เหมาะสมกับสภาพท้องถิ่นและคอมไพล์ในสภาพแวดล้อม Arduino esp8266 ไลบรารีต่อไปนี้จำเป็น เป็นมาตรฐานหรือสามารถเพิ่มได้

  • ESP8266WiFi
  • WifiClient
  • ESP8266เว็บเซิร์ฟเวอร์
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNSServer
  • WiFiManager (ใช้เสริม)
  • OneWire
  • ดัลลาสอุณหภูมิ

รายการในร่างที่จะเปลี่ยนแปลง ได้แก่

  • รายละเอียดการเข้าถึง wifi ในพื้นที่ (ssid, รหัสผ่าน) หากไม่ได้ใช้ WifiManager
  • รหัสอนุญาตสำหรับการเข้าถึงเว็บ AP_AUTHID เป็นการดีที่จะสร้างความยาวที่เหมาะสม สามารถมีอักขระที่เป็นตัวอักษรและตัวเลขคละกัน
  • เฟิร์มแวร์ OTA รหัสผ่าน update_password
  • รหัสผ่าน WifiManager WM_PASSWORD

    สามารถตั้งค่า Wifi ได้ด้วยตนเองโดยแสดงความคิดเห็น WM_NAME

  • รหัสผู้สร้าง IFTTT (ดูขั้นตอนการแจ้งเตือน)

การเปลี่ยนแปลงเพิ่มเติม ได้แก่

  • การเปลี่ยนพินอินพุตสำหรับเครื่องตรวจจับกริ่งประตู
  • เปลี่ยนพินสำหรับเซ็นเซอร์อุณหภูมิ
  • การเปลี่ยนพอร์ตการเข้าถึงเว็บจากค่าเริ่มต้น80

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

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

กิจกรรมอื่นๆ อาจเข้าถึงได้บนเว็บเซิร์ฟเวอร์ esp8266

  • ip/recent แสดงกิจกรรมกริ่งประตูล่าสุด
  • ip/reloadConfig รีโหลด espConfig
  • ip/bellPush จำลองการกดกระดิ่ง

ขั้นตอนที่ 3: การกำหนดค่า

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

ฉันเก็บไฟล์ปรับแต่งไว้บนเซิร์ฟเวอร์ EasyIOT ของฉันซึ่งมีโฟลเดอร์อยู่ที่ easyIOT/html ที่ซึ่งไฟล์ปรับแต่งสามารถเรียกค้นได้อย่างง่ายดาย

ไฟล์นี้เรียกว่า espConfig และเป็นไฟล์ข้อความธรรมดาที่เก็บพารามิเตอร์จำนวนหนึ่ง (12) สำหรับแต่ละที่อยู่ Mac ที่เป็นไปได้ โมดูลจะโหลดเฉพาะพารามิเตอร์ที่ตั้งไว้สำหรับที่อยู่ Mac เท่านั้น

ตัวอย่างจากไฟล์คือ

#ห้องโถง

#ที่อยู่ Mac123456ABCDEF

#ชื่อโมดูล

esp8266-ฮอลล์

#มาสก์โหมดเซิร์ฟเวอร์ (1=สัมผัสอุณหภูมิ 4 = โหมดหม้อไอน้ำ 4 = ออด)

9

#EIOT โหนดสำหรับอุณหภูมิ

N9S0

#ไม่ได้ใช้

-1

# ช่วงเวลาอุณหภูมิต่ำสุดในไม่กี่วินาที

60

#ช่วงอุณหภูมิสูงสุดเป็นวินาที

300

#ช่วงกำลังหม้อไอน้ำ

0

#EasyIOT โหนดพลังงานหม้อไอน้ำ

-1

#โหนดกดกระดิ่งEasyIOT

N10S0

# IFTTT แจ้งค่า

ด้านหน้า

#IFTTT แจ้งชื่อกิจกรรม

ออด

#URL การกระทำ

192.168.0.2/snap.php

บรรทัดใดๆ ที่ขึ้นต้นด้วย # จะถูกละเว้น ต้องมีทุกบรรทัด -1 ใช้สำหรับพารามิเตอร์ที่จะถูกละเว้น

ไฟล์กำหนดค่าจะถูกอ่านเมื่อโมดูลเริ่มทำงานครั้งแรก นอกจากนี้ยังสามารถโหลดซ้ำในระบบที่ทำงานอยู่ (เมื่อมีการเปลี่ยนแปลงการกำหนดค่า) โดยการเข้าถึง ip/reloadConfig

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

ขั้นตอนที่ 4: การแจ้งเตือน

เมื่อตรวจพบการกดกริ่งประตู ระบบจะพยายามแจ้งสิ่งนี้โดย IFTTT หรือ PushOver ตอนนี้ฉัน PushOver เพราะมันให้การตอบสนองที่เร็วขึ้น

สำหรับ IFTTT คุณต้องมีบัญชีและเปิดใช้งานช่อง Maker WebHoooks MakerKey จากช่องนี้จำเป็นต้องคอมไพล์เป็นโค้ด

ตั้งค่าการดำเนินการ IF โดยใช้ Maker WebHooks และใช้ชื่อเหตุการณ์ที่มีชื่อเดียวกับในการกำหนดค่า (เช่น กริ่งประตู) การดำเนินการ THEN ควรเป็นการแจ้งเตือน IFTTT คุณสามารถเพิ่มค่า 1 ให้กับการแจ้งเตือนซึ่งจะอยู่ในไฟล์ปรับแต่ง สิ่งนี้มีประโยชน์หากคุณมีตัวตรวจจับ 2 ตัวขึ้นไป

คุณต้องติดตั้งแอป IFTTT บนโทรศัพท์ของคุณ จากนั้นการแจ้งเตือนจะปรากฏขึ้นทุกครั้งที่กริ่งประตูดังขึ้น

สำหรับ PushOver คุณต้องมีบัญชี PushOver และทำตามคำแนะนำเพื่อรับการแจ้งเตือน API คุณต้องตั้งค่าโทเค็น NOTIFICATION_APP และ NOTIFICATION_USER ในซอฟต์แวร์ด้วยค่าจากบัญชี PushOver ของคุณ

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

ขั้นตอนที่ 5: การบูรณาการ EasyIOT

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

ตั้งค่าเซิร์ฟเวอร์ EasyIOT (เช่น บน Raspberry Pi) กำหนดค่าที่อยู่ IP และรหัสผ่านชื่อผู้ใช้ลงในซอฟต์แวร์ esp8266 และคอมไพล์

ตอนนี้เพิ่มไดรเวอร์เสมือนในการกำหนดค่า EASYIOT เลือก Temperature Analog Input และจดชื่อโหนด EasyIOT ควรใส่ลงในส่วนชื่อโหนดอุณหภูมิของไฟล์ espConfig

เพิ่มไดรเวอร์เสมือนตัวที่สอง เลือกอินพุตดิจิตอลของประตู จดชื่อโหนด และใส่ลงในไฟล์ espConfig

ขั้นตอนที่ 6: การดำเนินการอื่นๆ ของ Bell Push

ซอฟต์แวร์มีรูทีนที่เรียกว่า actionBellOn ตามที่เขียนไว้ ทำได้ 3 อย่าง

  • IFTTT แจ้งเตือน
  • รายงาน EasyIOT
  • ดำเนินการ URL การดำเนินการ

URL สามารถใช้เพื่อทริกเกอร์กิจกรรมอื่นๆ จากเว็บเซิร์ฟเวอร์อื่น URL ที่ใช้อยู่ในไฟล์ espConfig

หากเซิร์ฟเวอร์ของ URL ได้รับการตรวจสอบสิทธิ์ ชื่อผู้ใช้และรหัสผ่านจะต้องได้รับการกำหนดค่าและคอมไพล์ลงในโค้ด

ฉันใช้สิ่งนี้เพื่อเข้าถึง URL ที่เรียกว่า snap.php บนกล้องข้างประตู ต้องใช้-j.webp

ฉันใช้กล้องที่ใช้ราสเบอร์รี่ Pi ซึ่งการดำเนินการนี้ง่ายมาก กล้อง

แนะนำ: