สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่าเราเตอร์ของคุณ (ไม่บังคับ แต่แนะนำ)
- ขั้นตอนที่ 2: รหัส
- ขั้นตอนที่ 3: ฮาร์ดแวร์ (เบต้า)
- ขั้นตอนที่ 4: Outlook/ข้อมูลอ้างอิง
วีดีโอ: [15 นาที] Weasley Clock / Who Is Home Indicator - Based on TR-064 (beta): 4 Steps (มีรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
UPDATE: ดูขั้นตอนที่ 3
เรื่องยาว (TL;DR ด้านล่าง):เมื่อไม่นานมานี้ฉันเขียน bash-script ขนาดเล็กบนคอมพิวเตอร์ของฉันซึ่งจะสแกนเครือข่ายสำหรับอุปกรณ์ที่ลงทะเบียนและเปรียบเทียบชื่อโฮสต์กับรายการที่มีชื่อที่เกี่ยวข้อง ทุกครั้งที่อุปกรณ์เข้าสู่ระบบหรือออกจากเครือข่าย ฉันจะได้รับการแจ้งเตือน แบบนี้ฉันคงมีความคิดว่าใครอยู่บ้าน (ไม่เพียงแต่จะเป็นเรื่องดีที่รู้ว่าใครอยู่บ้านเพื่อถามพวกเขาว่าต้องการร่วมรับประทานอาหารหรืออะไรทำนองนั้น แต่อาจช่วยให้คุณหลีกเลี่ยงสถานการณ์ที่น่าอึดอัดใจได้เช่นกัน) ปัญหาคือว่าวิธีนี้ไม่น่าเชื่อถือมาก น่าเสียดายที่อุปกรณ์บางอย่างไม่ตอบกลับ ping (เช่น สมาร์ทโฟน) และดูเหมือนว่าจะเข้าสู่โหมดประหยัดพลังงานบางโหมดจึงไม่สามารถตรวจจับได้ด้วยคำสั่งอย่าง nmap อย่างน่าเชื่อถือ ฉันพยายามเอาชนะสิ่งนี้โดยกำหนดให้ติดเนกาทีฟอย่างน้อย 10 รายการก่อนที่จะประกาศว่าอุปกรณ์ออกจากเครือข่ายในที่สุด โดยรวมแล้วใช้งานได้ แต่ช้า ไม่น่าเชื่อถือและไม่ค่อยดีนัก นอกจากนี้ ฉันต้องการตรวจสอบได้ว่าใครอยู่บ้านโดยไม่ต้องเปิดคอมพิวเตอร์ ดังนั้นฉันจึงมี ESP8266 วางอยู่รอบๆ และต้องการเล่นกับพวกเขา แต่ฉันไม่ต้องการสร้างสถานีตรวจอากาศที่ใช้ ESP 10.120.124.812 หรือเช่นนั้น (ทำไมคุณถึงต้องการติดตามสภาพอากาศด้วยเทอร์โมมิเตอร์ ±2°C ที่ห่วยแตก ในเมื่อคุณสามารถเยี่ยมชมเว็บไซต์บางแห่งได้) แผนจึงเกิดขึ้น น่าเสียดายที่ดูเหมือนว่า ESP ไม่ได้ติดตั้ง ping อย่างถูกต้อง (ซึ่งเริ่มต้นไม่ดี จำได้ไหม) นับประสาทำการสแกนเครือข่ายแบบเต็มรูปแบบ ฉันคิดว่าจะเขียนไลบรารีสำหรับสิ่งนั้น - แต่เนื่องจาก C ++ ของฉันมี จำกัด มาก นี่เป็นโครงการ ESP แรกของฉันและฉันไม่ใช่อัจฉริยะด้านเครือข่ายฉันก็ทิ้งความคิดนั้น หลังจากทำวิจัยบางอย่าง ฉันพบว่า เราเตอร์ (แบรนด์ Fritz!Box) มี API! เย้!!!! โปรโตคอลนี้เรียกว่า TR-064 เป็นชื่อที่สร้างแรงบันดาลใจใช่ไหม เมื่อทำการค้นคว้าเกี่ยวกับเรื่องนี้ ฉันพบเอกสาร (ค่อนข้างเส็งเคร็ง) ทางออนไลน์ ฉันต้องใช้เวลาพอสมควรในการทำงาน ฉันอาจโพสต์คำแนะนำเชิงปฏิบัติเพิ่มเติมในวันถัดไป (และวิธีสื่อสาร/ทดสอบ API นี้โดยใช้ส่วนเสริมของเบราว์เซอร์) เมื่อฉันเข้าใจ API ฉันก็เริ่มใช้งานจาก ESP เรื่องสั้นสั้น: ฉันได้ใช้โซลูชัน duck-tape-and-wd40 และทำในสิ่งที่ฉันต้องการ (สอบถาม API สำหรับอุปกรณ์ที่เชื่อมต่อ เปรียบเทียบกับรายการที่อยู่ MAC และเปลี่ยน LED ตามนั้น) แต่ฉันต้องการประสิทธิภาพที่มากขึ้น และโซลูชันที่ยืดหยุ่น และ API นี้มีอีกมากมายที่จะนำเสนอ (คุณสามารถเปลี่ยนการตั้งค่า (เปิด/ปิด wifi, เปลี่ยนรหัสผ่าน, เปิด/ปิด wifi สำหรับแขก, เปลี่ยนพลังงานสัญญาณ), รีสตาร์ทเราเตอร์, ค้นหาความเร็วการเชื่อมต่อ, …) - ดังนั้นฉันจึงตัดสินใจสร้างห้องสมุดสากล TR-064!TL;DR;อุปกรณ์ที่ระบุผ่าน LED ที่ขณะนี้อยู่ที่บ้าน ใช้งานได้ดี ยังไม่มีที่อยู่อาศัยที่ดี (เฮ้ - สังเกตเห็นเบต้าในชื่อหรือไม่) ใช้โปรโตคอล SOAP เพื่อสื่อสารกับเราเตอร์ เขียนไลบรารี Arduino เพื่อทำให้สิ่งนั้นเกิดขึ้น ความรู้ที่จำเป็น• ความรู้พื้นฐานเกี่ยวกับ Arduino/ESP• หากคุณประกอบตัวอย่าง Blink กับ ESP คุณจะไม่เป็นไร!• ถ้าไม่ คุณสามารถทำตามสองขั้นตอนแรกของคำแนะนำนี้ได้• การบัดกรีอาจ มีประโยชน์ถ้าคุณต้องการออกจากเวทีเขียงหั่นขนม•การออกแบบ 3D และ / หรืองานไม้บางอย่างอาจมีประโยชน์สำหรับลิงค์โครงการที่อยู่อาศัย Github [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] เพื่อการอ้างอิงอย่างรวดเร็ว
เสบียง
- ESP8266 หรือ ESP32 บน Development-Board หรือกับโปรแกรมเมอร์อื่นๆ (2~6€)
- สาย USB พอดีกับโปรแกรมเมอร์
- อะแดปเตอร์ไฟ (เช่น USB หรือแบตเตอรี่ ~2€)
- ไฟ LED และตัวต้านทานสองสามตัว (~ 1 €)
- (ปลอก)
=> ประมาณ 4-6 ยูโรสำหรับการออกแบบที่เรียบง่าย นั่นหมายถึงสำหรับฉัน ฉันสามารถแขวนไว้รอบบ้านได้ง่ายๆ หากคุณขี้เกียจ คุณสามารถใช้บอร์ดพัฒนาที่มีไฟ LED ในตัว (ดูรายละเอียดเพิ่มเติมในขั้นตอนที่ 4)
ขั้นตอนที่ 1: ตั้งค่าเราเตอร์ของคุณ (ไม่บังคับ แต่แนะนำ)
โปรโตคอลนี้ได้รับการออกแบบให้เป็นโปรโตคอลทั่วไปสำหรับเราเตอร์ แต่ฉันรู้เพียงว่า (ส่วนใหญ่) เราเตอร์ Fritz!Box (อย่างน้อยที่สุดในยุโรป) ใช้โปรโตคอลนี้ ยี่ห้ออื่นไม่รู้ ฉันจะถือว่าคุณกำลังใช้ Fritz!Box หากคุณสามารถทำงานได้ (หรือไม่สามารถทำได้) บนเราเตอร์อื่น ๆ ฉันยินดีที่จะเพิ่มลงในคำแนะนำนี้ (อาจเริ่มต้นรายการความเข้ากันได้แบบสั้น ๆ ก็ได้)
ขั้นตอนนี้ไม่จำเป็น คุณสามารถใช้บัญชีผู้ดูแลระบบของคุณได้ แต่ไม่แนะนำให้ใช้ด้วยเหตุผลที่ชัดเจน (อาจถูกสกัดกั้นหรือดึงออกจาก ESP คุณอาจเปลี่ยนสิ่งที่คุณไม่ต้องการโดยไม่ได้ตั้งใจ …) - ดังนั้นฉัน แนะนำให้คุณทำ
อย่างไรก็ตามเราไปกันเถอะ:
- เข้าสู่ระบบ Fritz!Box โดยพิมพ์ fritz.box ในแถบ URL ของเบราว์เซอร์ที่คุณชื่นชอบ
- ค้นหาหน้าสำหรับสร้างผู้ใช้ FRITZ!Box ใหม่ (คุณต้องมีขั้นสูงซึ่งควรอยู่ในระบบ หากคุณหาไม่พบ ให้ลองอัปเดตอุปกรณ์ของคุณ)
- สร้างบัญชีใหม่ตามที่คุณเห็นในภาพ (โดยใช้ชื่อผู้ใช้/รหัสผ่านอื่น!)
- ออกจากระบบ.
ขั้นตอนที่ 2: รหัส
- คุณสามารถรับไลบรารีจาก Github
-
ในตัวอย่าง คุณจะพบไฟล์ชื่อ home-indicator.ino ซึ่งเป็นรหัสสำหรับโครงการนี้ วางโฟลเดอร์ตัวอย่างในโฟลเดอร์โฮมโปรเจ็กต์ arduino IDE ของคุณและโฟลเดอร์อื่นลงในโฟลเดอร์ไลบรารีในโฟลเดอร์โฮมโปรเจ็กต์เดียวกัน
- (Re) เริ่ม IDE ของคุณ
- เปิด home-indicator.ino ใน IDE แล้วป้อนการตั้งค่าของคุณ มันควรจะค่อนข้างชัดเจนว่าจะไปที่ไหน หากคุณมีคำถามใด ๆ แจ้งให้เราทราบ!
- ตอนนี้คุณสามารถคอมไพล์และโอนไปยัง ESP ของคุณได้!
ขั้นตอนที่ 3: ฮาร์ดแวร์ (เบต้า)
ใช่… นี่คือขั้นตอนที่ฉันยังต้องทำงานเพิ่มเติม แต่ฉันเดาว่ามีเนื้อหาในเว็บเพียงพอที่จะคิดออก:) การตั้งค่าดังในภาพเป็นเพียงไดโอดที่มีตัวต้านทาน ~100Ohm ต่อสายกับ GPIO{5, 4, 0, 2} ซึ่งเป็น D1 หมุด D2, D3, D4 (ตามลำดับ) ของบอร์ด MCU ESP8266 ของฉัน และสายเคเบิลสีส้มเล็กๆ ที่นำแคโทดไปที่ GND (ทำเครื่องหมาย G บนกระดานของฉัน) หากคุณขี้เกียจ คุณสามารถทำสิ่งที่เห็นในภาพที่สองได้ เพียงใช้บอร์ดพัฒนาที่มีไฟ LED (เช่น "ESP-202" ดูรูป - ประมาณ 3.50-5.00€ รวมค่าจัดส่ง) จากนั้นคุณก็สามารถต่อเข้ากับไฟ USB หรือใช้ชุดแบตเตอรี่ที่ให้มา วาดอินเทอร์เฟซบนแผ่นกระดาษแล้วติดไว้กับผนัง เสร็จสิ้น สำหรับบอร์ดนี้ พอร์ตต่างๆ ได้แก่:
int userPins [numUser] = {5, 4, 2, 14, 16};
จากบนลงล่าง.
ขั้นตอนที่ 4: Outlook/ข้อมูลอ้างอิง
นี่คือสิ่งที่ฉันยังวางแผนอยู่: 1. การสร้างที่อยู่อาศัยที่ดี (ชัดเจน) 2. การเพิ่ม GUI ที่ดีสำหรับการจัดการผู้ใช้/LEDs/MACs/อุปกรณ์ที่รู้จัก 3. การปรับปรุงไลบรารี (ดู Github สำหรับเรื่องนั้น) 4. แก้ไข: บางครั้ง LEDs ตอบสนองอย่างเชื่องช้า (ใช้เวลาเล็กน้อยจนกว่าอุปกรณ์จะปิด) โดยไม่มีเหตุผลชัดเจน 5. ขอสิ่งของที่โถงทางเดินและอาจจะอีกสองสามรอบบ้าน อยากขอความคิดเห็นจากพวกคุณบ้าง! และเช่นเคย ฉันมีความสุขมากที่เห็นคนอื่นคิดเรื่องไร้สาระ ดังนั้นโปรดสละเวลาสักครู่เพื่อแสดงความคิดเห็นและโพสต์รูปภาพ!:):) ข้อมูลอ้างอิงเพิ่มเติมฉันจะลิงก์บางสิ่งที่นี่ ซึ่งอาจช่วยคุณได้: • ข้อมูลอ้างอิง TR-064 • ผู้ชายบางคนยุ่งกับเชลล์และ TR-064 (ดีที่จะเข้าใจ API) • วิกิพีเดีย Harry Potter: รายการนาฬิกาวีสลีย์ • ผู้ชายบางคนสร้างนาฬิกาวีสลีย์ที่สวยงามแต่ซับซ้อน*_ *มันอิงจากแอปสำหรับโทรศัพท์ของคุณซึ่งใช้ตำแหน่งของคุณ หากคุณอยู่ในพื้นที่ที่กำหนดไว้ล่วงหน้า ไฟตามนาฬิกาจะเปิดขึ้น สำหรับฉันมันซับซ้อนเกินไปและต้องไปหลายๆ ที่ที่อาจพัง/พังได้: • แอปต้องอัปเดตอยู่เสมอ • ทุกคนต้องใช้แอปเหล่านี้ • และโอเคกับผลกระทบต่อความเป็นส่วนตัว • แอปใช้งานได้กับอินเทอร์เน็ตเท่านั้น การเชื่อมต่อ • คุณต้องใช้เซิร์ฟเวอร์ตัวกลางในการเชื่อมต่อการสื่อสาร (ยกเว้นกรณีที่คุณต้องการตั้งค่าให้คุณเป็นเซิร์ฟเวอร์โดยเฉพาะ และเปิดเครือข่ายภายในบ้านของคุณสำหรับการรับส่งข้อมูลภายนอก - ใช่ อุปกรณ์ IOT อื่นที่ไม่ปลอดภัยที่เชื่อมต่อโดยตรงกับอินเทอร์เน็ต!) • บริการระดับกลางอาจออฟไลน์ในวันหนึ่ง/เปลี่ยน API • …คุณต้องการซอฟต์แวร์เพิ่มเติม ซอฟต์แวร์มากขึ้นหมายถึงมีสถานที่ทำข้อผิดพลาดมากขึ้น;)แต่พวกเขาทำได้ดีมาก และหากคุณต้องการทำอะไรแบบนั้น ตรงไปที่ไซต์ของพวกเขา มันเยี่ยมมาก!
แนะนำ:
Ironman Welding Helmet Part 1: 11 Steps (มีรูปภาพ)
Ironman Welding Helmet ส่วนที่ 1: ฉันชอบสอนตัวเองให้ทำสิ่งต่างๆ หากคุณเป็นเหมือนฉัน การหาธีมเจ๋งๆ สำหรับโปรเจ็กต์เพื่อช่วยฝึกฝนทักษะนั้นสนุกเสมอ ฉันเพิ่งเริ่มสร้าง "ธีมฮีโร่" หมวกกันน็อคและองค์ประกอบอื่นๆ ที่คล้ายคอสเพลย์ที่มีประ
Light Up Clock for Kids - สีเขียวหมายถึงไป! แดง อยู่บนเตียง!!!: 5 ขั้นตอน (มีรูปภาพ)
Light Up Clock for Kids - สีเขียวหมายถึงไป! แดง อยู่บนเตียง!!! : เราแทบบ้านอนไม่พอ!!! 2 ขวบของเราไม่เข้าใจวิธี "รอ 7" บนนาฬิกาก่อนออกจากห้องเช้าแล้วรุ่งเช้า เขาจะตื่นแต่เช้า (ฉันหมายถึง 05:27 น. - "มี 7!!!"
Speaker Pipe (Simple) #UP!: 4 Steps (มีรูปภาพ)
ท่อลำโพง (แบบง่าย) #UP!: Olá, este projeto é "ฐานราก" em outro que vi acho que aqui ไม่มีคำแนะนำ ou pela internet mesmo, mas é um modelo muuito simples e f'cil de fazer, este não possui amplificador ele apenas tem um plug que
Water-cooling Pump-reservoir-radiator (rasperry Pie 2-B): 3 Steps (มีรูปภาพ)
ปั๊มน้ำหล่อเย็น - อ่างเก็บน้ำ - หม้อน้ำ (ราสเบอร์รี่พาย 2-B): สวัสดี ก่อนอื่นไม่มีกาวร้อนที่เกี่ยวข้องไม่มีการพิมพ์ 3 มิติไม่มีการตัดด้วยเลเซอร์ซีเอ็นซีเครื่องมือราคาแพง & สิ่งของ. แท่นสว่านพร้อมปลายแหลมสองสามอันในการแกะสลัก ทรายและรูเจาะ บางอย่างที่เหมาะกับอะลูมิเนียมและอะครีลิกกับ
Boom Bag: 8 Steps (มีรูปภาพ)
Boom Bag: ฉันอารมณ์เสีย หันไปทางไหนก็มีแต่ไอพอด บนจอแสดงผลในมือของใครบางคนถูกมัดไว้ที่แขนซ่อนอยู่ในกระเป๋าเสื้อ (หูฟังเป็นของแถม) ในรถไฟ บนรถบัส เดินไปตามถนน ฉันได้แต่คิดในใจว่า "เกิดอะไรขึ้นกับ