สารบัญ:
- ขั้นตอนที่ 1: โหลด Pi ด้วย Rasbian Stretch
- ขั้นตอนที่ 2: อัปเดตและเพิ่มคุณสมบัติให้กับ Node-Red
- ขั้นตอนที่ 3: การติดตั้ง Mosquitto MQTT
- ขั้นตอนที่ 4: การตั้งค่าอินเทอร์เฟซ Node Red
- ขั้นตอนที่ 5: การตั้งค่าระบบ Arduino สำหรับการตั้งโปรแกรมอุปกรณ์ Sonoff ใหม่
- ขั้นตอนที่ 6: ตั้งโปรแกรม Sonoff Switch ใหม่
- ขั้นตอนที่ 7: ความปลอดภัย
- ขั้นตอนที่ 8: ขั้นตอนเริ่มต้นสำหรับการขยายตัว
- ขั้นตอนที่ 9: ภาคผนวก - กำลังโหลดจาก Raspbian Stretch Lite
วีดีโอ: ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
คู่มือนี้ควรนำคุณไปสู่ฐานแรกที่คุณสามารถเปิด/ปิดไฟหรืออุปกรณ์ผ่านอุปกรณ์ใดๆ ที่สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณ และด้วยเว็บอินเทอร์เฟซที่ปรับแต่งได้อย่างดี ขอบเขตสำหรับการขยาย/เพิ่มคุณสมบัตินั้นกว้างใหญ่ รวมถึงการส่งอีเมล ข้อความ Twitter เซ็นเซอร์อ่าน (เช่น อุณหภูมิ) คุณสามารถตั้งกฎได้อย่างง่ายดายเช่น – หากอุณหภูมิต่ำกว่า 15C เวลา 23.00 น. ให้เปิดผ้าห่มไฟฟ้าเป็นเวลา 30 นาที ระบบใช้โปรโตคอล MQTT กับ TCP ที่มีความน่าเชื่อถือมากกว่า UDP มาก ซึ่งอุปกรณ์อัตโนมัติในบ้านเชิงพาณิชย์บางตัวใช้อย่างน่าประหลาดใจ เมื่อการทำงานหนักในการตั้งค่าระบบตามที่อธิบายไว้ในที่นี้เสร็จสิ้น ความสนุกก็เริ่มขึ้น Node Red มีส่วนต่อประสานผู้ใช้ที่ยอดเยี่ยมที่ใช้งานง่าย รวดเร็วและตั้งค่าได้ง่าย และมีความสามารถที่น่าทึ่ง
ผลลัพธ์ที่ได้คือระบบอัตโนมัติภายในบ้านที่ทรงพลังซึ่งอยู่ภายใต้การควบคุมของตนเองอย่างสมบูรณ์และอยู่ในเครือข่ายท้องถิ่นทั้งหมด ระบบจำนวนมากที่แสดงบน Instructables ทำงานร่วมกับเซิร์ฟเวอร์บนคลาวด์ ดังนั้นจึงมีความเสี่ยงด้านความปลอดภัยและอาจต้องสมัครสมาชิก สิ่งเหล่านี้ตั้งค่าได้ง่ายกว่า แต่มีความเสี่ยงด้านความปลอดภัยที่สูงขึ้นและอาจมีค่าใช้จ่ายสูงขึ้น ฉันควรเพิ่มว่าสามารถตั้งค่า VPN (เครือข่ายส่วนตัวเสมือน) ให้กับ Pi เพื่อเปิดใช้งานการเชื่อมต่อที่ปลอดภัยกับเครือข่ายในบ้าน/ระบบ หากการเข้าถึงจากภายนอกจะมีประโยชน์ (Google Pi OpenVPN สำหรับคำแนะนำ)
ระบบนี้ต้องการการตั้งโปรแกรมอุปกรณ์ Sonoff ใหม่ด้วยระบบโอเพ่นซอร์สที่ยอดเยี่ยมที่เรียกว่า Sonoff-Tasmoda ซึ่งสามารถทำได้โดยใช้การตั้งค่า Arduino พิเศษและตัวแปลง USB เป็นซีเรียล อุปกรณ์ Sonoff ใช้ชิป Wi-Fi ESP8266 เพื่อให้คุณสามารถสร้างอุปกรณ์ของคุณเองโดยใช้โมดูล ESP8266 หรือประกอบเข้ากับอุปกรณ์อื่นๆ เพื่อเชื่อมต่อแบบไร้สาย
งานที่ใหญ่ที่สุดคือการตั้งค่า Raspberry Pi เป็นฮับ สิ่งนี้จะเรียกใช้นายหน้า MQTT (หรือเซิร์ฟเวอร์) ที่จัดการการสื่อสารกับอุปกรณ์ที่เชื่อมต่อ Pi ยังใช้ระบบที่เรียกว่า Node-Red ซึ่งสามารถดักจับข้อความและข้อมูลและคำสั่งเอาต์พุตได้เช่นเมื่อต้องเปิดผ้าห่มไฟฟ้า Node-Red ยังมีอินเทอร์เฟซสำหรับให้บริการหน้าเว็บที่คุณสามารถเข้าสู่ระบบผ่านสมาร์ทโฟน/แท็บเล็ต/พีซี/แล็ปท็อป เพื่อดูว่าเกิดอะไรขึ้นและเปิดใช้งานการสลับไฟด้วยตนเอง และอื่นๆ
เป้าหมายของฉันกับคำแนะนำนี้คือให้ทุกขั้นตอนในรายละเอียดที่เพียงพอที่สามเณรสามารถทำให้ระบบทำงานได้
ขั้นตอนคือ:
- โหลด Pi ด้วย Rasbian Stretch
- อัปเดตและเพิ่มคุณสมบัติให้กับ Node-Red
- ติดตั้งโบรกเกอร์ Mosquitto MQTT
- ตั้งค่าสภาพแวดล้อม Arduino เพื่ออัปโหลดเฟิร์มแวร์ Sonoff-Tasmota
- ตั้งโปรแกรมสวิตช์ Sonoff ใหม่
- ตั้งค่าอินเทอร์เฟซ Node-Red
- ทดสอบใช้งานได้ทั้งหมด
ฮาร์ดแวร์ที่คุณต้องการ:
- Raspberry Pi และแหล่งจ่ายไฟ (และแป้นพิมพ์และจอภาพสำหรับการตั้งค่าเริ่มต้น) (รุ่น B ใช้ที่นี่)
- Sonoff Switch
- ตัวแปลงอนุกรม USB
- ตัวเลือกเสริม – บอร์ดพัฒนา ESP เช่น NodeMCU
ประสบการณ์ของฉันกับ Raspberry Pi คือการตั้งค่าทุกอย่างที่ดูเหมือนจะเกี่ยวข้องกับความเจ็บปวดมากกว่าที่ใครจะจินตนาการได้กับสิ่งที่ไม่ทำงานหรือติดอยู่ในขั้นตอนเล็กน้อยที่คำอธิบายน่าจะดีกว่านี้ ฟอรัมไม่ได้รับคำแนะนำที่ได้ผลเสมอไป! ฉันพบเส้นทางหลายเส้นทางที่ใช้ไม่ได้ด้วยเหตุผลใดก็ตาม ราคานี้ 3 วัน! จากนั้นฉันก็เช็ดทุกอย่างและเริ่มใหม่และทำให้เสร็จภายในเวลาไม่ถึงหนึ่งวัน อย่างไรก็ตามสิ่งนี้ใช้ Raspian Jessie ที่มีอายุมากกว่า หลังจากนี้ ฉันพบวิธีใช้เวอร์ชันปัจจุบันและเวอร์ชันล่าสุดที่เผยแพร่ (Stretch) และทำทั้งหมดอีกครั้ง คู่มือนี้เปิดใช้งานการคัดลอกและวางคำสั่งลงใน Pi ดังนั้นคุณควรจะทำเสร็จภายในเวลาไม่กี่ชั่วโมง อย่างไรก็ตาม ฉันหวังว่าสิ่งนี้จะช่วยให้คุณเรียนรู้ได้เร็วขึ้นและเจ็บปวดน้อยลง เชื่อฉันเถอะว่ามันคุ้มค่าสำหรับผลลัพธ์สุดท้าย
ขั้นตอนที่ 1: โหลด Pi ด้วย Rasbian Stretch
นี้ควรจะตรงไปตรงมาสวย เริ่มต้นด้วยการ์ด SD 8Gb หรือ 16Gb ดาวน์โหลดเวอร์ชันล่าสุดจาก:
www.raspberrypi.org/downloads/
เธรดหลักที่นี่ถือว่าโหลดเวอร์ชันเต็มแล้ว อย่างไรก็ตาม คุณสามารถใช้เวอร์ชัน lite เพื่อประหยัดพื้นที่ได้ หากใช้ Raspbian Stretch Lite ให้ทำตามขั้นตอนนี้ จากนั้นไปที่ขั้นตอนที่ 9 ในตอนท้าย
การเปิดเครื่องรูดไฟล์ที่ดาวน์โหลดจะทำให้โฟลเดอร์ที่มีไฟล์.img แนะนำให้ใช้ 7Zip สำหรับ Windows (และ The Unarchiver Mac) ต้องเบิร์นอิมเมจลงในการ์ด SD แต่ต้องใช้โปรแกรมพิเศษเนื่องจากระบบไฟล์ไม่รองรับ Windows ซอฟต์แวร์ที่แนะนำเรียกว่า Etcher และสามารถดาวน์โหลดได้จาก:
etcher.io/
คำแนะนำสำหรับ Etcher อยู่บนเว็บไซต์ของพวกเขาและแทบจะไม่ง่ายเลย เลือกรูปภาพและไดรฟ์แล้วคลิก Flash
ขณะนี้ด้วยการ์ด SD แบบแฟลชของเราที่สามารถเรียกใช้ Pi ได้
หากคุณทราบที่อยู่ IP ที่ Pi ของคุณใช้หรือยินดีที่จะค้นหาโดยเข้าสู่ระบบเราเตอร์ของคุณ คุณก็ไม่ต้องอาศัยแป้นพิมพ์และจอภาพ และใช้ SSH ได้ทันที เพียงเพิ่มไฟล์เปล่าชื่อ SSH ลงในการ์ด SD เสียบ เชื่อมต่อกับอีเธอร์เน็ต และเปิดเครื่อง หรือทำตามคำแนะนำด้านล่าง
เชื่อมต่อ Pi กับอินเทอร์เน็ต หน้าจอ เมาส์ และคีย์บอร์ด และเชื่อมต่อกับแหล่งจ่ายไฟ สิ่งแรกที่เราจะทำคือเปิดใช้งาน SSH เพื่อให้เราสามารถตั้งค่าส่วนใหญ่ได้จากความสะดวกสบายบนพีซี แน่นอนสามารถทำได้โดยตรง แต่ช่วยให้สามารถทำตามคำแนะนำนี้บนอุปกรณ์เดียวกันกับที่ขับ Pi และใช้การคัดลอกและวางสำหรับคำแนะนำส่วนใหญ่ ในกรณีของฉันเวิร์กสเตชันพีซีของฉันนั้นดีและสะดวกสบาย แต่ไม่ใหญ่พอสำหรับ pi เช่นกัน
มีคำแนะนำสำหรับการทำงานที่ดีในวิดีโอ YouTube นี่คือที่ที่ฉันเริ่มต้น คุณสามารถเรียกใช้วิดีโอควบคู่ไปกับการปฏิบัติตามคำแนะนำเหล่านี้ แต่เมื่อฉันกำลังดำเนินการผ่านกระบวนการอีกครั้งในขณะที่เขียนสิ่งนี้ ฉันพบว่ามันง่ายกว่าที่จะทำตามคำแนะนำที่นี่ มีการเบี่ยงเบนที่สำคัญบางอย่าง นอกจากนี้ยังมีบางส่วนที่ฉันแนะนำให้ทำตามวิดีโอแทนที่จะแสดงขั้นตอนต่างๆ ที่นี่ อย่างไรก็ตาม ฉันขอแนะนำให้ดูเพื่อทำความเข้าใจ MQTT, Node-Red และกระบวนการตั้งค่าในวงกว้าง วิดีโอมีความยาว 38 นาที ดังนั้นจงทำตัวให้สบาย วิดีโอเริ่มต้นด้วยการแสดงสิ่งที่ Node Red สามารถทำได้ จากนั้นครอบคลุมการติดตั้งและตั้งค่า Pi ตามด้วยการอัพเกรด Node Red และติดตั้ง Mosquitto ครั้งสุดท้าย การกำหนดเวลาที่สำคัญในกรณีที่คุณต้องการกลับไปที่ส่วน:
00:00 วิดีโอเบื้องต้น
03:00 สาธิตโหนดแดง
14:14 การนำเข้ารายการแดชบอร์ดไปยัง Node Red
21:05 การตั้งค่าเริ่มต้น Pi รวมถึง SSH
23:35 การติดตั้งรหัสสนับสนุน Node Red
27:00 น. บทนำสู่ MQTT
29:12 การติดตั้ง Mosquitto (MQTT) (หมายเหตุใช้ได้กับ Raspian Jessie เท่านั้น)
33:00 ตัวอย่างโหนดสีแดง
ฉันจะแสดงรายการคำสั่งเป็นตัวหนาตัวเอียง (แทนที่จะใช้ “”) การจัดรูปแบบนี้จะถูกละเว้นเมื่อคุณคัดลอกและวางลงใน Pi
การแนะนำ Node Red จะทำให้คุณมีไอเดียว่าระบบสามารถทำอะไรได้บ้าง และให้ภาพว่าเราจะไปถึงจุดไหน
วิดีโอ YouTube อยู่ที่:
ทำตามขั้นตอนการติดตั้งตั้งแต่ 21:05 ถึง 23:35 น. โปรดทราบว่าการเข้าสู่ระบบเริ่มต้นคือผู้ใช้: pi และรหัสผ่าน: ราสเบอร์รี่ ก่อนที่จะรีสตาร์ท ให้ค้นหาที่อยู่ IP ของ pi คลิกไอคอน 'ลูกศรขึ้น+ลง' ในแถบด้านบนของเดสก์ท็อป หรือป้อนคำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล/เทอร์มินัล:
sudo ifconfig ที่อยู่
จากนั้นจดที่อยู่ IP หลัง: inet addr:. จะอยู่ในรูปแบบ 192.168.x.y
จดที่อยู่นี้และเริ่มต้นใหม่ (ป้อน: sudo shutdown –r now)
กุญแจสำคัญ ณ จุดนี้คือเปิดใช้งาน SSH และสามารถตั้งค่าลิงก์ไปยัง Pi จากพีซี (Mac และ Linux รวมถึงอินเทอร์เฟซ SSH) โปรแกรมที่ดีในการทำเช่นนี้คือการดาวน์โหลดฟรีที่เรียกว่า PuTTY ซึ่งสามารถใช้เป็นอินเทอร์เฟซแบบอนุกรมและสามารถทำ Telnet ได้ สีโป๊วสามารถใช้ได้จาก:
www.chiark.greenend.org.uk/~sgtatham/putty…
ดาวน์โหลดและติดตั้ง PuTTY
ตอนนี้เมื่อ Pi เริ่มต้นใหม่ ให้เริ่ม PuTTY และป้อนที่อยู่ IP ที่ระบุไว้ก่อนหน้านี้ ดูตัวอย่างด้านล่าง:
ตอนนี้คลิกเปิด
หลังจากเข้าสู่ระบบเป็น: ป้อน pi
จากนั้นป้อนรหัสผ่านของคุณ
ทำตามคำแนะนำที่นี่ และเริ่มวิดีโอตั้งแต่ 23:35 น. ในกรณีส่วนใหญ่ คุณสามารถคัดลอกและวาง เน้นข้อความและใช้ ctrl+C เพื่อคัดลอก จากนั้นคลิกขวาใน PuTTY เพื่อวาง บางครั้งข้อความไม่ปรากฏขึ้นทันที โปรดรอสักครู่ หากคุณป้อนสองครั้งให้ใช้ Backspace เพื่อลบรายการที่สอง กด Enter เพื่อดำเนินการแต่ละคำสั่ง
sudo raspi-update
ฉันได้รับคำสั่งที่ไม่พบและละเว้นสิ่งนี้และคำสั่งปิด/รีสตาร์ทต่อไปนี้:
sudo ปิด -r ตอนนี้
sudo apt-get -y อัปเดต
sudo apt-get -y อัปเกรด
นี้ใช้เวลาสักครู่…..
sudo apt-get autoremove
sudo apt-get -y อัปเดต
sudo ปิด -r ตอนนี้
ณ จุดนี้ เรามีระบบปฏิบัติการ Pi ที่โหลดและอัปเดตแล้ว พร้อมสำหรับขั้นตอนต่อไป
ขั้นตอนที่ 2: อัปเดตและเพิ่มคุณสมบัติให้กับ Node-Red
การเชื่อมต่อ PuTTY จะหายไปเมื่อรีสตาร์ทเมื่อสิ้นสุดขั้นตอนก่อนหน้า ให้ปิด PuTTY และหลังจากรอให้ Pi บูต ให้เข้าสู่ระบบอีกครั้งเช่นเดิม
ฉันได้ย้ายไปใช้วิธีการที่ง่ายกว่าและเชื่อถือได้มากขึ้นในการโหลด Node-Red โดยทำตามแนวทางที่ https://nodered.org/docs/hardware/raspberrypi การดำเนินการนี้ใช้สคริปต์และจะติดตั้งหรืออัปเกรด Node-Red ดังนั้นวิธีการนี้จึงเหมือนกับการทำงานจากเวอร์ชันเต็มหรือเวอร์ชันไลต์ของ Raspbian Stretch ป้อน:
bash <(curl -sL
ป้อน Y เมื่อได้รับแจ้ง (สองครั้ง) สคริปต์นี้ยังโหลดไฟล์ที่จำเป็นเพื่อเปิดใช้งานการเริ่มต้นอัตโนมัติของ Node-Red
ดังนั้น ณ จุดนี้เรามี pi ที่โหลดและอัปเดตและด้วยการอัปเดตที่จำเป็นสำหรับ Node Red การรีสตาร์ทก่อนขั้นตอนถัดไปไม่เป็นอันตราย
sudo ปิด -r ตอนนี้
ขั้นตอนที่ 3: การติดตั้ง Mosquitto MQTT
หากคุณยังไม่ได้ทำ ควรดูวิดีโอแนะนำ MQTT ในวิดีโอตั้งแต่เวลา 27:00 น.
นี่คือที่ที่เราต้องใช้เส้นทางอื่น ขั้นตอนที่อธิบายไว้ในวิดีโอใช้ได้กับ Raspian เวอร์ชันเก่าของ Jessie เท่านั้น มีการอภิปรายเกี่ยวกับไซต์ยุง แต่ไม่มีผลลัพธ์ที่ชัดเจนและด้วยเหตุนี้จึงจะยึดติดกับเส้นทางที่ง่ายกว่าและปลอดภัยกว่า
เข้าสู่ระบบโดยใช้ PuTTY และป้อนข้อมูลต่อไปนี้:
sudo apt-get update
sudo apt-get ติดตั้ง mosquitto mosquitto-clients
Y
sudo /etc/init.d/mosquitto หยุด
sudo /etc/init.d/mosquitto start
คำสั่งสองคำสั่งหลังหยุดและเริ่ม mosquitto และแสดงให้เห็นว่าโบรกเกอร์ MQTT ของเราใช้งานได้
สำหรับการทดสอบอย่างรวดเร็ว ให้เปิดเซสชัน PuTTY อีกสองเซสชันแล้วล็อกออนเข้าสู่แต่ละรายการ
ตอนนี้คุณจะรู้ว่า MQTT ทำงานโดยอุปกรณ์ที่ต้องการข้อมูลในการสมัคร 'หัวข้อ' นายหน้าจะส่งข้อมูลใด ๆ ที่มี 'หัวข้อ' เดียวกัน จากนั้นอุปกรณ์ที่ต้องการส่งข้อมูล/คำสั่งจะเผยแพร่ไปยังนายหน้าโดยใช้ 'หัวข้อ' เดียวกัน
ดังนั้นในหนึ่งเซสชัน PuTTY ให้ป้อน:
mosquitto_sub -d -t สวัสดี/โลก
นี่คือคำแนะนำในการสมัครรับข้อมูลในหัวข้อ Hello/world
ในอีกป้อน:
mosquitto_pub -d -t hello/world -m "สวัสดีจากหน้าต่างเทอร์มินัล 2!"
นี่คือคำสั่งเผยแพร่ที่มีหัวข้อเดียวกันกับข้อความ ข้อความ: “สวัสดีจากหน้าต่างเทอร์มินัล 2!” ควรปรากฏในเทอร์มินัลอื่นแล้ว
เก่งมาไกลได้ขนาดนี้ ตอนนี้เรามี Pi โหลดและอัปเดตด้วยการอัปเดตที่จำเป็นสำหรับ Node-Red และด้วยการติดตั้งและทดสอบนายหน้า MQTT ของยุง จากนี้ไปชีวิตจะง่ายขึ้น สนุกขึ้นอีกนิด ปิด PuTTY สองเซสชันที่ใช้สำหรับการทดสอบ MQTT
ขั้นตอนที่ 4: การตั้งค่าอินเทอร์เฟซ Node Red
ก่อนอื่นเราต้องเริ่ม Node Red ป้อนคำแนะนำ:
node-red-pi --max-old-space-size=256
รอให้เริ่มทำงานแล้วคุณจะเห็นข้อความ 'Started flows'
ตอนนี้เปิดเบราว์เซอร์ ฉันใช้ Chrome และป้อนที่อยู่ IP ของ pi ที่ระบุไว้ก่อนหน้านี้ ตามด้วย:1880 เช่น 192.168.0.8:1880
ตอนนี้คุณควรมีหน้าการเขียนโปรแกรม Node Red ในมุมมองด้านล่าง:
ตอนนี้คุณสามารถติดตามตัวอย่าง Node Red ได้ตั้งแต่เวลา 33:00 น. หรือไปที่การตั้งค่าเพิ่มเติมเล็กน้อยและโหลดขั้นตอนแรกที่จะแสดงลิงก์ไปยัง MQTT และพร้อมที่จะขับเคลื่อนสวิตช์ของเรา
การตั้งค่าเพิ่มเติมที่จำเป็นคือการเพิ่มรายการแดชบอร์ดที่เปิดใช้งานเว็บอินเตอร์เฟส
แสดงในวิดีโอเวลา 14:14 น.
ทำตามคำแนะนำเพื่อโหลด node-red-dashboard
ตอนนี้เราสามารถเล่นเล็กน้อยและแสดง MQTT ทำงานและถูกขับเคลื่อนโดย Node-Red นี่ไม่ใช่วิดีโอ แต่เป็นกุญแจสำคัญของโครงการนี้ คุณสามารถทำตามคำแนะนำของฉันและ/หรือนำเข้าโฟลว์จากไฟล์ NRtest1.txt ที่แนบมา
ขั้นแรกให้เพิ่มโหนดการฉีดอินพุตและโหนดเอาต์พุต mqtt แล้วเชื่อมโยงเข้าด้วยกัน
ดับเบิลคลิกที่ inject node (ซึ่งในตอนแรกจะมีป้ายกำกับว่า timestamp) ในส่วน Payload ใช้ twiddly เพื่อเปลี่ยนเป็น string และป้อน: Hello from me ปล่อยให้หัวข้อว่างไว้เพราะเราสามารถป้อนสิ่งนี้ในโหนด MQTT คลิกเสร็จสิ้น
ตอนนี้ดับเบิลคลิกที่โหนด MQTT คลิกไอคอนดินสอทางด้านขวาของส่วนเซิร์ฟเวอร์ ซึ่งจะเปิดกล่องโต้ตอบใหม่ ป้อน: localhost ในส่วนเซิร์ฟเวอร์ คลิกเพิ่ม กลับมาที่ Edit mqtt out node อีกครั้ง ป้อนหัวข้อของเราในหัวข้อ Topic: hello/world ตั้งค่า QoS เป็น 1 คลิกเสร็จสิ้น ตอนนี้คลิกปรับใช้ คุณควรเห็นหยดสีเขียวและ 'เชื่อมต่ออยู่' ใต้โหนด mqtt
ตอนนี้เพิ่มโหนดอีกสองโหนด – อินพุต mqtt และเอาต์พุตดีบัก และเชื่อมต่อสิ่งเหล่านี้เข้าด้วยกัน ตอนนี้ดับเบิลคลิกที่อินพุต mqtt node และป้อน hello/world ในส่วนหัวข้อ เซิร์ฟเวอร์ควรแสดง localhost:1883 แล้ว ตั้งค่า QoS เป็น 1 คลิกเสร็จสิ้น จากนั้นคลิก Deploy และคลิกแท็บ debug ที่บานหน้าต่างด้านขวา ตอนนี้คลิกสี่เหลี่ยมสีเทาทางด้านซ้ายของโหนดการฉีด 'สวัสดีจากฉัน' สิ่งนี้จะส่งข้อความเพย์โหลดไปยังโบรกเกอร์ MQTT พร้อมหัวข้อสวัสดี/โลก นายหน้ารู้ดีว่าโหนดอินพุต mqtt สมัครรับข้อมูลจากหัวข้อเดียวกันและส่งต่อเพย์โหลด จากนั้นโหนดอินพุต mqtt จะส่งข้อมูลนี้ไปยังแท็บดีบัก (RHS) และข้อความ 'สวัสดีจากฉัน' ควรปรากฏขึ้น
นี่เป็นอีกช่องหนึ่งเนื่องจากเรามี Node Red พูดคุยกับโบรกเกอร์ MQTT ของเรา โปรดทราบว่า Node Red เป็นเพียงลูกค้าของโบรกเกอร์ – เช่นเดียวกับอุปกรณ์ Sonoff เราจะเชื่อมต่อในภายหลัง อย่างไรก็ตาม มันเปิดใช้งานระบบอัตโนมัติที่ซับซ้อนและมีส่วนต่อประสานกับผู้ใช้ที่ยอดเยี่ยม
ตอนนี้เราสามารถทำการเปลี่ยนแปลงเล็กๆ น้อยๆ และตั้งค่าโฟลว์สำหรับสวิตช์ Sonoff ของเราได้
ดังนั้นให้ลบโหนดการฉีดอินพุต (คลิกเพื่อไฮไลต์แล้วกดปุ่มลบ) ตอนนี้เพิ่มสวิตช์จากส่วนแดชบอร์ดและเชื่อมต่อกับเอาต์พุต mqtt ดับเบิลคลิกสวิตช์ คลิกดินสอทางด้านขวาของกลุ่ม ใส่ชื่อ: ไลท์. จากนั้นคลิกดินสอทางด้านขวาของ Tab และเข้าสู่ส่วน Name: Lounge คลิก เพิ่ม/อัปเดต และเพิ่ม/อัปเดต อีกครั้ง ตอนนี้ กลับมาที่โหนดสวิตช์แก้ไข ตั้งค่าเปิดและปิดเพย์โหลด ใช้ twidlys เพื่อเลือกสตริงและป้อน ON สำหรับเพย์โหลด On และ OFF สำหรับเพย์โหลด OFF คลิกเสร็จสิ้น
ไปที่แต่ละโหนด mqtt และเปลี่ยนหัวข้อเป็น cmnd/sonoff/POWER หากกำลังคัดลอกและวาง ให้ตรวจสอบว่าคุณไม่ได้ใส่ช่องว่างในตอนท้าย นี่เป็นหัวข้อที่แตกต่างออกไปและจะไม่ทำงานกับ Sonoff การหาพื้นที่หลงทางอาจใช้เวลาหนึ่งชั่วโมงหรือมากกว่านั้น – เชื่อฉันสิ! ฉันยังไปที่แดชบอร์ด>ธีม และเลือก: มืด คลิก Deploy และเลือกแท็บ debug
ตอนนี้เปิดเซสชันเบราว์เซอร์ใหม่ในหน้าต่างใหม่และปรับขนาดเหมือนโทรศัพท์มือถือผ่านเซสชัน Node Red ป้อนที่อยู่: ที่อยู่ IP Pi ของคุณ:1880/ui/#/0 เช่น 192.168.0.8:1880/ui/#/0 คุณควรเห็นหน้าจอพร้อมเลานจ์และแสงและสวิตช์ คลิกสวิตช์เปิดแล้วปิด หน้าต่างการดีบักควรแสดงเพย์โหลดเปิดและปิด ตอนนี้หากคุณต้องการเข้าสู่ระบบผ่านมือถือด้วยเช่นกัน โปรดทราบว่าตำแหน่งสวิตช์ถูกซิงโครไนซ์ ไม่สำคัญว่า Sonoff ของเราจะยังไม่เชื่อมต่อ เมื่อเป็น โดยสมัครรับหัวข้อ มันจะรับข้อความ/เพย์โหลดและดำเนินการกับมัน
ขั้นตอนเล็ก ๆ น้อย ๆ สุดท้ายคือการทำให้ Node Red เริ่มทำงานโดยอัตโนมัติหลังจากที่ Pi บูทขึ้น
Node Red มีคำแนะนำที่:
อย่างไรก็ตาม ไฟล์ที่จำเป็นนั้นโหลดไว้แล้ว ดังนั้นจึงไม่จำเป็นต้องทำการติดตั้ง
หากต้องการเปิดใช้งาน Node-RED ให้ทำงานโดยอัตโนมัติทุกครั้งที่บูตและเมื่อเกิดปัญหาให้ป้อน (เปิดเซสชัน PuTTY):
sudo systemctl เปิดใช้งาน nodered.service
หากคุณต้องการปิดการใช้งานให้ป้อน:
sudo systemctl ปิดการใช้งาน nodered.service
ตอนนี้ปิด pi ด้วยการปิด sudo ทันทีและถอดพลังงานออก
ตอนนี้ Pi ของเราถูกล็อคและโหลดพร้อมสำหรับการดำเนินการ เรามีพีซี/โทรศัพท์มือถือเชื่อมต่อกับ Node Red และสิ่งนี้กำลังคุยกับเซิร์ฟเวอร์ MQTT ของเรา นี่เป็นการเดินทางที่ยาวนานและคุ้มค่ากับการตบหลัง ทำได้ดี. ฉันพบ Arduino bit ต่อไปได้ง่ายขึ้นมาก!
ขั้นตอนที่ 5: การตั้งค่าระบบ Arduino สำหรับการตั้งโปรแกรมอุปกรณ์ Sonoff ใหม่
ข้อมูลทั้งหมดที่ต้องทำคือที่ Sonoff-Tasmota GitHub ส่วนเดียวที่ฉันมีปัญหาคือข้อความหัวข้อ - แต่ฉันมีเล่ห์เหลี่ยมให้คุณป้อนสิ่งนี้แล้ว!
ไปที่
คุณจะพบคำแนะนำการตั้งค่าบนแท็บ Wiki ในส่วนเครื่องมืออัปโหลด:
แทนที่จะทำทุกขั้นตอน ฉันจะจดประเด็นสำคัญๆ ที่รู้สึกว่าสำคัญหรือติดอยู่
คำแนะนำนั้นดี แต่ต้องใส่ใจในรายละเอียดอย่างระมัดระวัง ฉันสะดุดเพราะความต้องการโฟลเดอร์ ESP8266 ภายในโฟลเดอร์ที่อยู่ในโฟลเดอร์อื่นชื่อ ESP8266 และพลาดสองระดับไป
ฉันทำตามคำแนะนำสำหรับการตั้งค่า Arduino ที่แยกจากกันโดยสิ้นเชิง ฉันสร้างโฟลเดอร์ใหม่ชื่อ 'ArduinoSonoff' ซึ่งแยกจากโฟลเดอร์ Arduino ที่มีอยู่ การตั้งค่าค่อนข้างล้ำหน้าและด้วยเหตุนี้การแยกออกจากกันจึงเป็นความคิดที่ดีมาก หากนี่คือการตั้งค่า Arduino ครั้งแรกของคุณ ตรวจสอบให้แน่ใจว่าคุณติดตั้งครั้งที่สองใน 'Arduino' หรือโฟลเดอร์อื่นสำหรับงาน Arduino อื่น ๆ รวมถึงงานบน ESP8266s
ดาวน์โหลด Arduino IDE ล่าสุดได้จาก https://www.arduino.cc/en/Main/Software เปิดเครื่องรูดไฟล์ลงในโฟลเดอร์ใหม่ของคุณ
คำแนะนำรวมถึงการดาวน์โหลดระบบ Sonoff-Tasmoda จาก https://github.com/arendst/Sonoff-Tasmota หน้าหลัก ผ่าน: Clone หรือ Download>Download ZIP เปิดเครื่องรูดไฟล์ลงในโฟลเดอร์ใหม่ของคุณ
ปฏิบัติตามคำแนะนำอย่างระมัดระวัง ฉันไม่ได้ทำตัวเลือก: เตรียมพร้อมสำหรับการอัปโหลด OTA เราจะทิ้งสิ่งนี้ไว้อีกวัน
ตอนนี้เริ่ม Arduino IDE (ดับเบิลคลิก arduino.exe) โหลดภาพร่าง Sonoff-Tasmota ผ่าน File>Sketchbook>sonoff ไม่จำเป็นต้องทำการแก้ไขใดๆ การตั้งค่าทั้งหมดทำได้ผ่านการเชื่อมต่อแบบอนุกรมหลังจากโหลดเฟิร์มแวร์แล้ว สิ่งเหล่านี้ถูกเก็บไว้ใน EEPROM ดังนั้นจึงสามารถอัปเดตเฟิร์มแวร์และคงการตั้งค่าทั้งหมดไว้ นี่เป็นสิ่งที่ค่อนข้างฉลาด อย่างไรก็ตาม คุณสามารถหลีกเลี่ยงความจำเป็นในสองสามขั้นตอนที่นี่โดยไปที่ไฟล์ user-config.h และป้อน wifi SSID และรหัสผ่านและ MQTT_HOST (แทนที่ 'domus1' - ข้อมูลอ้างอิงที่สองด้วยที่อยู่ Pi IP ของคุณ)หลังจากนั้นคุณอาจต้องการป้อนผู้ใช้ MQTT และรหัสผ่านด้วย ก่อนดาวน์โหลด ตรวจสอบการตั้งค่าบอร์ดภายใต้เครื่องมือ สิ่งเหล่านี้จะต้องมีการเปลี่ยนแปลงสองสามอย่างเพื่อให้ตรงกับข้อกำหนดที่กำหนดไว้ใน Wiki ตอนนี้คลิกคอมไพล์ (ติ๊กไอคอน) ควรเรียบเรียงตกลง หากไม่มีหรือไม่มีการตั้งค่าบอร์ดที่จำเป็น ให้กลับไปตรวจสอบแต่ละขั้นตอนของการตั้งค่า
ขั้นตอนที่ 6: ตั้งโปรแกรม Sonoff Switch ใหม่
ตอนนี้เราพร้อมที่จะดาวน์โหลดแล้ว ในขั้นตอนนี้ คุณสามารถเดินตรงไปข้างหน้าและแฟลชสวิตช์ Sonoff หรือสามารถแฟลชโมดูล ESP8266 ก่อนก็ได้ ฉันทำอย่างหลัง ส่วนหนึ่งเป็นเพราะสวิตช์ของฉันยังมาไม่ถึง (เพิ่งมาถึงขณะที่ฉันพิมพ์สิ่งนี้!) แต่เพื่อเป็นการป้องกันไว้ก่อนเนื่องจากการกะพริบของสวิตช์ Sonoff เป็นขั้นตอนเดียวเนื่องจากเฟิร์มแวร์ดั้งเดิมไม่เปิดเผยต่อสาธารณะเท่าที่ รับทราบค่ะ ฉันมีบอร์ด NodeMCU สองสามตัว เชื่อมต่อได้ง่าย โดยมี USB ออนบอร์ดเป็นตัวแปลงซีเรียล อย่างไรก็ตาม วิธีการรีเซ็ต nodemcu ใช้ไม่ได้กับระบบนี้ ดังนั้นปล่อยให้เครื่องมือ> วิธีการรีเซ็ตตั้งค่าเป็น "ck" ทำการตั้งค่าแฟลชแบบแมนนวลตามปกติโดยกดปุ่มแฟลชค้างไว้ (GPIO 0 ลงกราวด์) ขณะที่กดและปล่อยรีเซ็ต (รีเซ็ตเป็นกราวด์) ฉันไม่แน่ใจว่านี่หมดเวลาหรือบางทีฉันอาจไม่ได้ทำให้ GPIO 0 ต่ำนานพอ แต่ฉันต้องพยายามหลายครั้ง รวมถึงการทำเช่นนี้ในขณะที่ Arduino IDE กำลังรวบรวมอยู่!
หากคุณต้องการตรวจสอบการตอบสนอง - เอาต์พุตรีเลย์คือ D6 บนบอร์ด NodeMCU สำหรับ ESP12 นี่คือ GPIO 12 เอาต์พุต LED คือ D7 (NodeMCU) หรือ GPIO 13 (ESP12's)
สวิตช์ Sonoff
คำเตือน: ฉันต้องบอกว่า "อย่าเชื่อมต่อกับแหล่งจ่ายไฟหลักภายใต้สถานการณ์ใดๆ ที่กล่องหุ้มเปิดอยู่" โปรดทราบว่า PCB (อย่างน้อยบน Sonoff Basic (สวิตช์อินไลน์) มีระยะห่าง 'การแยกเดี่ยว' ระหว่างส่วนแรงดันต่ำและไฟหลักเท่านั้น ดังนั้น ควรถือว่าส่วนใดส่วนหนึ่งของวงจร Sonoff เป็นแรงดันไฟหลัก Sonoff- Tasmota GitHub แสดงการเชื่อมต่อของเซ็นเซอร์อุณหภูมิและความชื้นกับ Sonoff S20 ฉันจะไม่ทำเช่นนี้เนื่องจากความกังวลในการแยก – ดังนั้นหากคุณต้องการทำสิ่งนี้ ให้รับโมดูล ESP12 หรือ NodeMCU และตั้งค่าแยกต่างหากด้วยการแยกคู่ที่เหมาะสม หรือแหล่งจ่ายไฟสายดิน
สวิตช์ปลั๊กอิน Sonoff S20 เป็นจุดเริ่มต้นที่ดี เนื่องจากไม่ต้องเดินสายไฟหลัก สามารถเปิดได้โดยการถอดสกรูหนึ่งตัว (ใต้ตราประทับความปลอดภัย) และเปิดฝาออก ภาพด้านล่างแสดงให้เห็นว่าแท็กอยู่ที่ไหน การบีบเคสที่จุดเหล่านี้ช่วยได้
ตัวแปลงอนุกรม USB
ตัวแปลงที่ฉันชอบคือเวอร์ชัน FTDI อย่างไรก็ตาม สิ่งนี้ไม่มีความสามารถเพียงพอในการจัดหาความต้องการ Sonoff 3.3v ข้อกำหนด FTDI ระบุว่าสูงสุด 50ma ทางเลือกที่ดีที่สุดรองลงมาคือทางเลือกหนึ่งที่ใช้ชิป CP2102 อย่างไรก็ตาม มีขีดจำกัด 100ma ที่ยังไม่เพียงพอ เห็นได้ชัดว่าหลายคนใช้ตัวแปลงนี้โดยตรง แต่ก็มีรายงานการโหลดล้มเหลวเช่นกัน ฉันจะจำกัดเวลาที่เชื่อมต่อเพราะมันจะอุ่นขึ้นภายใต้ภาระ ทำสิ่งนี้ด้วยความเสี่ยงของคุณเอง ทางออกที่ดีคือการมีเรกูเลเตอร์ 3.3v ด้วยเช่นกัน เช่น AMS1117 3.3 ฉันสร้าง PCB ขนาดเล็กเพื่อเปิดใช้งานสิ่งนี้ ดูโปรแกรมเมอร์สำหรับอุปกรณ์ Sonoff
ลำดับการเขียนโปรแกรมของฉันมีดังนี้:
เปิด Arduino IDE
ภายใต้ เครื่องมือ ให้ตรวจสอบการตั้งค่าเหมือนกับใน Wiki
ทำการแก้ไขที่จำเป็น user_config.h ฉันตั้งค่า Wifi SSID และรหัสผ่าน และที่อยู่นายหน้า MQTT และรายละเอียดเขตเวลา/เวลาออมแสง
คลิก 'ยืนยัน' เพื่อตรวจสอบว่าคอมไพล์ตกลง
เสียบตัวแปลงอนุกรม USB (ด้วยตัวเอง) กับพีซี สังเกตหมายเลขพอร์ต
ตอนนี้ถอดสายต่ออนุกรม USB ออกจากพีซีแล้วเชื่อมต่อกับสวิตช์ Sonoff ตรวจสอบกราวด์และการเชื่อมต่อ 3v3 เป็นวิธีที่ถูกต้อง (กราวด์เชื่อมต่อกับระนาบกราวด์บน Sonoff PCB)
ถือโปรแกรมเมอร์ไว้เพื่อให้ผู้ติดต่อปลอดภัยในขณะที่กดปุ่มด้วย
ตอนนี้เสียบสาย USB เข้ากับพีซี ตรวจสอบว่าหมายเลขพอร์ตถูกต้อง (ในเครื่องมือ) จากนั้นคลิกดาวน์โหลด
ฉันยังคงกดปุ่มค้างไว้ตลอดการเขียนโปรแกรมเพราะฉันไม่ต้องการรบกวนการเชื่อมต่อ
เมื่อเสร็จแล้วคุณจะเห็นหน้าจอดังนี้:
Sonoff ต้องการข้อมูลสองสามบิตเพื่อเชื่อมต่อกับระบบของเรา: SSID และรหัสผ่าน wifi ของเครือข่ายท้องถิ่น และที่อยู่ IP ของ Pi มีหลายวิธีในการทำเช่นนี้ หนึ่งในนั้นคือการแก้ไขไฟล์ config.ino ดังที่ระบุไว้ก่อนหน้านี้ หากคุณมีสมาร์ทโฟน คุณสามารถทำได้ (หลังจากประกอบสวิตช์อีกครั้ง) ให้กดปุ่ม Sonoff 4 ครั้งอย่างรวดเร็วเพื่อเข้าสู่โหมดเว็บเซิร์ฟเวอร์ ไฟ LED จะกะพริบ ฉันต้องลองหลายครั้งเพื่อให้สิ่งนี้ใช้ได้ผล จากนั้นบนสมาร์ทโฟนของคุณ ให้มองหาเครือข่าย Sonoff ใหม่และเชื่อมต่อ หน้าเว็บจะปรากฏขึ้นซึ่งคุณสามารถตั้งค่าข้อมูลที่ต้องการได้ ที่อยู่ IP ของ Pi จะเข้าสู่ชื่อโฮสต์ ฉันยังเปลี่ยน SSID และรหัสผ่านที่สองเป็นสิ่งที่ยาวและไม่สามารถใช้งานได้โดยทั่วไป
หรือจะตั้งค่าผ่านการเชื่อมต่อแบบอนุกรมหลังจากโหลดเสร็จก็ได้ เปิด Arduino Serial Monitor (ภายใต้เครื่องมือ)
คำสั่งป้อน:
SSId WiFi ของคุณSSID
รหัสผ่าน WiFi ของคุณรหัสผ่าน
MqttHost 192.168.x.y (ที่อยู่ IP PI)
คุณยังสามารถป้อน SSId1 และ Password1 ตามด้วยสิ่งที่ยาวและใช้ไม่ได้เพื่อปิดใช้งานสิ่งนี้อย่างมีประสิทธิภาพ
ตอนนี้คุณสามารถเปิดสวิตช์ Sonoff เปิด Node-Red และแดชบอร์ด Node-red แล้วคลิกปุ่มสวิตช์และดูแท็บดีบักที่ควรรวมการตอบสนองจาก Sonoff ดังนั้นเราจึงมีขั้นตอนสำคัญอีกขั้นที่ประสบความสำเร็จ นั่นคือสวิตช์ตัวแรกของเราขับเคลื่อนจากพีซี/สมาร์ทโฟน
ถึงตอนนี้เรายังไม่ได้กล่าวถึงความปลอดภัย มีความเป็นไปได้ที่จะใช้การสื่อสารที่เข้ารหัส การตั้งค่านี้ค่อนข้างซับซ้อนและอาจเหมาะสมกว่าเมื่อใช้นายหน้าบนคลาวด์ นอกจากนี้ยังมีตัวเลือกในการเพิ่มชื่อผู้ใช้และรหัสผ่านสำหรับอุปกรณ์ที่เชื่อมต่อทั้งหมดและไม่อนุญาตให้ผู้ใช้ที่ไม่ระบุชื่อ การตั้งค่านี้ค่อนข้างง่าย และตอนนี้ถึงการรักษาความปลอดภัย
ขั้นตอนที่ 7: ความปลอดภัย
MQTT อนุญาตชื่อผู้ใช้และรหัสผ่านสำหรับลูกค้าแต่ละราย ติดตั้งง่าย การเปลี่ยนชื่ออุปกรณ์แต่ละเครื่องก่อนแล้วจึงตั้งชื่อผู้ใช้และรหัสผ่านอาจง่ายกว่า ซึ่งสามารถทำได้ผ่านคำสั่ง MQTT และ Node-Red น่าจะเป็นวิธีที่ง่ายที่สุดในการส่งสิ่งเหล่านี้ ขั้นแรกให้ตัดสินใจเกี่ยวกับแบบแผนการตั้งชื่อ ทางเลือกหนึ่งคือการตั้งชื่อตามตำแหน่งและหน้าที่ จากนั้นคุณจะต้องบันทึกชื่อผู้ใช้และรหัสผ่านชื่อ (หัวข้อ) พร้อมกับหัวข้อทางเลือก โปรดทราบว่ายังมี 'ตัวเลือกการรีเซ็ต' เพื่อรีเซ็ตการตั้งค่า Sonoff เป็นการดาวน์โหลดดั้งเดิม (ดูการใช้งาน Wiki> การทำงานของปุ่ม)
เปิดเครื่อง pi และหลังจากนั้นไม่กี่วินาทีให้เปิดเบราว์เซอร์เป็น Node-Red (ที่อยู่ IP: 1880)
ใน Node-Red ให้ตั้งค่า inject node และเชื่อมโยงสิ่งนี้กับเอาต์พุต mqtt และตั้งค่าเซิร์ฟเวอร์ mqtt เป็น localhost ปล่อยหัวข้อ ผู้ใช้ และรหัสผ่านว่างไว้ เนื่องจากเราจะตั้งค่าเหล่านี้ในโหนดหัวฉีด ตั้งค่าโหนดอินพุต mqtt และเชื่อมต่อสิ่งนี้กับโหนดดีบักเพื่อให้เราเห็นการตอบสนอง ตั้งค่าบันทึกอินพุต mqtt เป็น localhost (ควรตั้งค่าไว้แล้ว) และป้อน +/+/+ สำหรับหัวข้อเพื่อให้รับส่งข้อมูลทั้งหมด
ป้อนลำดับการตั้งค่าต่อไปนี้ในโหนดหัวฉีด
ตรวจสอบการเชื่อมต่อกับ.ก่อน
หัวข้อ: cmnd/sonoff/Status
ข้อความ: 6
คลิก 'ฉีดครั้งเดียวเมื่อเริ่มต้น' ปรับใช้. เราควรเห็นการดีบักรวมถึงข้อมูล 7 บรรทัดจาก stat/sonoff/STATUS6
ใส่หัวข้อ: cmnd/sonoff/Topic andMessage: loungelight. ปรับใช้. สิ่งนี้จะเปลี่ยนชื่อสวิตช์จาก sonoff เป็น loungelight
แท็บดีบักควรแสดงให้อุปกรณ์รีสตาร์ทด้วยชื่อ/หัวข้อใหม่
หัวข้อ: cmnd/loungelight/MqttUser
ข้อความ: loungelight
คลิกปรับใช้ ควรดูการดีบักจาก stat/loungelight/RESULT ด้วย {“MtqqUser”:”loungelight”}
หัวข้อ: cmnd/loungelight/MqttPassword
ข้อความ: loungelightPW (โปรดทราบว่าจินตนาการได้มากกว่านี้!)
ล้างแท็บดีบักและปรับใช้
ควรดูการตอบกลับจาก stat/loungelight/RESULT ด้วย {"MqttPassword":"loungelightPW"}
ตอนนี้ป้อน NodeRed และ NodeRedPW เป็นชื่อผู้ใช้และรหัสผ่านในโหนด mqtt out ผ่านทางไอคอนดินสอของเซิร์ฟเวอร์และแท็บความปลอดภัยในหน้าต่างที่เปิดขึ้น สิ่งนี้จะถูกคัดลอกไปยังโหนด MQTT อื่นโดยอัตโนมัติ
ตรวจสอบอีกครั้งกับ
หัวข้อ: cmnd/loungelight/Status and Message: 6. ปรับใช้.
และนั่นคือการตอบกลับที่ถูกส่งไป
ดังนั้น ณ จุดนี้เราได้เปลี่ยนชื่ออุปกรณ์ Sonof ของเราเพื่อที่จะฟังหัวข้อ cmnd/loungelight/…… และจะเข้าสู่เซิร์ฟเวอร์ MQTT ด้วยชื่อผู้ใช้ loungelight และรหัสผ่าน loungelightPW นอกจากนี้เรายังได้ตั้งค่าชื่อผู้ใช้และรหัสผ่านสำหรับ Node-Red
ต่อไปเราต้องบอกเซิร์ฟเวอร์ยุง MQTT ให้ยอมรับเฉพาะลูกค้าที่มีชื่อผู้ใช้และระบุชื่อผู้ใช้และรหัสผ่านที่จะยอมรับ
ขั้นตอนคือ:
- หยุดยุง
- สร้างไฟล์ปรับแต่งเอง
- แก้ไขไฟล์ปรับแต่ง
- สร้างไฟล์รหัสผ่าน
- เพิ่มผู้ใช้/รหัสผ่าน
ดังนั้นให้เข้าสู่ระบบด้วยเซสชัน PuTTY ใหม่และเรียกใช้ผ่านคำสั่งต่อไปนี้:
sudo /etc/init.d/mosquitto หยุด
ซีดี /etc/mosquitto/conf.d/
sudo nano mosquitto.conf เป็นการเริ่มต้นตัวแก้ไข
เพิ่มบรรทัด:
allow_anonymous เท็จ
password_file /etc/mosquitto/conf.d/passwd
require_certificate false
บันทึกและออก (Ctrl+X), Y, ป้อน
sudo touch passwd ซึ่งจะสร้างไฟล์รหัสผ่านและคำแนะนำต่อไปนี้จะเพิ่มชื่อและรหัสผ่าน
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight เลานจ์ไลท์PW
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW
sudo /etc/init.d/mosquitto รีสตาร์ท
หมายเหตุเมื่อเพิ่มอุปกรณ์ใหม่ คุณจะต้องป้อนผู้ใช้และรหัสผ่านผ่านพอร์ตอนุกรมและเพิ่มสิ่งเหล่านี้ลงในไฟล์รหัสผ่านหรือเปลี่ยนไฟล์กำหนดค่า mosquitto ชั่วคราวและแสดงความคิดเห็น (เพิ่ม # ที่จุดเริ่มต้นของบรรทัด) บรรทัด "allow_anonymous false " และ "password_file /etc/mosquitto/conf.d/passwd" จากนั้นรีเซ็ตข้อมูลเหล่านี้เมื่อรายละเอียดถูกส่งไปยังอุปกรณ์และเพิ่มลงในไฟล์รหัสผ่านตามด้านบน
เราได้เปลี่ยนชื่อ sonoff เป็น loungelight ดังนั้นให้อัปเดตโหนดเอาต์พุต mqtt (เชื่อมต่อกับสวิตช์) เพื่อใช้หัวข้อ cmnd/loungelight/POWER
คลิกปรับใช้และตรวจสอบโหนด mqtt แสดง 'เชื่อมต่อแล้ว'
ถัดไป ให้ลองใช้ปุ่มสวิตช์และค้นหาการดีบักที่แสดงสวิตช์ Sonoff ตอบสนอง คุณจะสังเกตเห็นว่าอุปกรณ์แสดงการเปลี่ยนแปลงในหัวข้อ: stat/loungelight/POWER ตอนนี้เปลี่ยนโหนดอินพุตที่ตั้งค่าเป็น cmnd/sonoff/POWER เป็น stat/loungelight/POWER เราสามารถใช้ส่วนนี้ปกปิดช่องว่างในการทำงานของเราได้ ระบบจะซิงโครไนซ์ระบบตามการตั้งค่าเริ่มต้นกับผู้ใช้ที่เข้าสู่ระบบทั้งหมด แต่จะไม่ซิงโครไนซ์กับการเปลี่ยนแปลงสวิตช์ที่ทำขึ้นโดยการกดปุ่มบนสวิตช์ Sonoff ตอนนี้ให้เชื่อมต่อเอาต์พุตของโหนดอินพุต stat/loungelight/POWER mqtt กับอินพุตสวิตช์ (LHS) ตอนนี้ดับเบิลคลิกที่สวิตช์และยกเลิกการเลือก "หากข้อความมาถึงที่อินพุต ให้ส่งผ่านไปยังเอาต์พุต" การดำเนินการนี้จะแสดงตัวเลือกใหม่ - เลือก 'ไอคอนสวิตช์แสดงสถานะของอินพุต' ปรับใช้. ตอนนี้เรามีกระแสตอบรับที่ดีแล้ว ตำแหน่งสวิตช์แผงหน้าปัดจะเปลี่ยนตลอดเวลาเมื่อสวิตช์ Sonoff เปลี่ยนไป โดยไม่คำนึงว่าการเปลี่ยนแปลงเริ่มต้นที่ใด
ดังนั้น ตอนนี้เราจึงมีระบบอัตโนมัติในบ้านที่ปลอดภัยและทำงานแบบสแตนด์อโลน และพร้อมสำหรับการขยายไปสู่สิ่งที่คุณต้องการทำ ในหัวข้อถัดไป ฉันจะพูดถึงการทดลองของฉันและความท้าทายที่ฉันวางแผนจะรับมือ
ขั้นตอนที่ 8: ขั้นตอนเริ่มต้นสำหรับการขยายตัว
ฉันมีบอร์ดพัฒนา LEDs ของเซ็นเซอร์ Sonoff-Tasmota ระบบอัตโนมัติในบ้านที่สอนได้ซึ่งแสดงความสามารถเพิ่มเติมบางอย่างของเฟิร์มแวร์ Sonoff-Tasmota:
การวัดอุณหภูมิและความชื้น
การตรวจจับผู้บุกรุก (สวิตช์อินพุต)
รีโมท IR (สำหรับทีวี ฯลฯ)
สตริง LED - ทั้ง RGB และ NeoPixel (ระบุแอดเดรสได้เป็นรายบุคคล)
เซ็นเซอร์ I2C
สำหรับข้างต้น ฉันใช้ ESP12F และ PCB แบบกำหนดเอง สามารถใช้ NodeMCU และเขียงหั่นขนมได้เท่าเทียมกัน ซึ่งช่วยให้ฟังก์ชันเพิ่มเติมเหล่านี้โดยไม่ต้องเดินสายไปยังอุปกรณ์ Sonoff และด้วยเหตุนี้จึงเป็นแนวทางที่ปลอดภัยกว่ามาก ด้วยการป้อนอุณหภูมิ ฉันสามารถทำให้ผ้าห่มไฟฟ้าของฉันทำงานอัตโนมัติได้สำเร็จ
สามารถเพิ่มเพลงและวิทยุอินเทอร์เน็ตได้อย่างง่ายดาย การดำเนินการนี้จะเปิดตัวเลือกให้เปิดสถานีหรืออัลบั้มเฉพาะตามเวลาที่กำหนดหรืออาจตอบสนองต่อการตรวจพบผู้เยี่ยมชม (โทรศัพท์) คำแนะนำที่เกี่ยวข้องนี้อยู่ที่เครื่องเล่นเพลงคุณภาพสูงและวิทยุอินเทอร์เน็ตพร้อมการควบคุมสมาร์ทโฟน เนื่องจากสิ่งนี้ถูกขับเคลื่อนโดย Node-RED จึงควรมีระบบเสียงมากกว่าหนึ่งระบบและใช้การสื่อสาร MQTT เพื่อขับเคลื่อน
ฉันยังสำรวจ Node-Red รวมถึงการส่งอีเมลและการแจ้งเตือนด้วยเสียง นอกจากนี้ยังมีศักยภาพที่ระบบจะตรวจจับเมื่อคุณเข้า/ออก - โดยการ ping ที่อยู่ IP ของโทรศัพท์มือถือของคุณ Node-Red สามารถเข้าถึงสภาพอากาศและข่าวสารได้ ดังนั้นคุณจึงสามารถเพิ่มข้อมูลและทำงานอัตโนมัติได้
มีเคล็ดลับบางอย่างที่ต้องเรียนรู้ - แต่สิ่งเหล่านี้กลายเป็นเรื่องง่ายในครั้งที่สอง
อีกช่องทางหนึ่งคือการเพิ่มการแสดงผลให้กับ pi เพื่อแสดงแดชบอร์ด นี่คือ 'งานที่กำลังดำเนินการ' - หรือพูดอีกอย่างคือ ฉันไม่มีความสุขเกินไป จอแสดงผลที่ฉันได้รับนั้นหมุนเป็นโหมดแนวตั้งได้ยาก และเบราว์เซอร์ Chromium ทำงานช้ามาก อีกทางเลือกหนึ่งคือหยิบแท็บเล็ตเก่าบนอีเบย์และใช้มัน ฉันอาจลองใช้ Pi 2 และดูว่ามีการปรับปรุงเพียงพอหรือไม่ (รุ่น B ใช้สำหรับการพัฒนานี้)
ฉันหวังว่าสิ่งนี้จะช่วยให้คุณเริ่มต้นและมีจินตนาการของคุณหึ่ง ขอบเขตที่มีศักยภาพนั้นใหญ่มาก หนึ่งสามารถแก้ไขรหัส Sonoff สำหรับเซ็นเซอร์อื่น ๆ ได้หากจำเป็น
โดยรวมแล้วฉันรู้สึกทึ่งกับสิ่งที่ระบบนี้สามารถทำได้ วัตถุประสงค์เดิมของฉันคือเพียงแค่เปลี่ยนจากสมาร์ทโฟนในลักษณะที่เชื่อถือได้ผ่านระบบแบบสแตนด์อโลน ฉันมีวิสัยทัศน์ที่ต้องการจัดการเซิร์ฟเวอร์และไคลเอ็นต์ และเขียน html สำหรับอินเทอร์เฟซผู้ใช้ ท้ายที่สุดสิ่งนี้ก็นำหน้าด้วยความปลอดภัยที่มากขึ้น ความน่าเชื่อถือที่ยอดเยี่ยม ส่วนต่อประสานผู้ใช้ที่ยอดเยี่ยม การเขียนโปรแกรมแบบลากและวาง และศักยภาพมหาศาลสำหรับการขยาย และทั้งหมดนี้ใช้ความพยายามน้อยกว่ามาก
ไมค์
ขั้นตอนที่ 9: ภาคผนวก - กำลังโหลดจาก Raspbian Stretch Lite
ตัวเลือกนี้หลีกเลี่ยง bloatware ที่มาพร้อมกับ Raspbian Stretch เวอร์ชันเต็ม ส่วนใหญ่จะไม่จำเป็นเมื่อใช้ Pi สำหรับระบบอัตโนมัติภายในบ้าน อย่างไรก็ตาม ต้องติดตั้ง Node-Red
ดำเนินการตามขั้นตอนที่ 1 แต่ใช้ Raspbian Stretch Lite แทน Raspbian Stretch
แทนที่จะทำขั้นตอนที่ 2 ให้ทำดังต่อไปนี้:
sudo apt -y ติดตั้ง npm
npm -v ควรส่งคืน: 1.4.21 หรือใหม่กว่า
sudo npm ติดตั้ง -g n
sudo n 8.9.0
ตอนนี้เราสามารถใช้ตัวจัดการแพ็กเก็ตโหนดเพื่อติดตั้ง Node-Red:
sudo npm ติดตั้ง node-red --global --unsafe-perm
สิ่งนี้จะให้ข้อความแสดงข้อผิดพลาดสองสามข้อเนื่องจากที่อยู่ไม่ถูกต้อง อย่างไรก็ตาม ระบบทำ 'ซอร์สคอมไพล์' เพื่อแก้ไขปัญหานี้ หากคุณทำซ้ำคำแนะนำข้างต้น (ไม่จำเป็น) ข้อผิดพลาดจะไม่เกิดขึ้น
ตอนนี้เรามี Node-Red และแพ็คเกจที่รองรับติดตั้งอยู่ และสามารถไปยังขั้นตอนที่ 3 กำลังโหลด mosquitto
รองชนะเลิศการแข่งขันไร้สาย
แนะนำ:
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: 4 ขั้นตอน
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: สวัสดีทุกคน วันนี้ฉันจะแสดงวิธีกำหนดค่าสวิตช์รีเลย์ sonoff wifi ที่ใช้ราสเบอร์รี่ pi และ ESP8266 เพื่อควบคุมเครื่องใช้ในบ้านของคุณจากทุกที่ในโลก ของคำสั่งสอนนี้ ถ้าคุณได้ปฏิบัติตามคำสั่งของฉันอย่างระมัดระวัง
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
Smart LED พร้อม Node Mcu และ Tasker: 9 ขั้นตอน (พร้อมรูปภาพ)
Smart LED พร้อม Node Mcu และ Tasker: ดาวน์โหลด tasker
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ