สารบัญ:

ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red: 9 ขั้นตอน (พร้อมรูปภาพ)
ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: 🏠 ทำไมต้องใช้ Home Assistant | Home Automation วันศุกร์ #2 2024, พฤศจิกายน
Anonim
ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red
ระบบอัตโนมัติภายในบ้านอันทรงพลัง - Pi, Sonoff, ESP8266 และ Node-Red

คู่มือนี้ควรนำคุณไปสู่ฐานแรกที่คุณสามารถเปิด/ปิดไฟหรืออุปกรณ์ผ่านอุปกรณ์ใดๆ ที่สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณ และด้วยเว็บอินเทอร์เฟซที่ปรับแต่งได้อย่างดี ขอบเขตสำหรับการขยาย/เพิ่มคุณสมบัตินั้นกว้างใหญ่ รวมถึงการส่งอีเมล ข้อความ 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

การแข่งขันไร้สาย
การแข่งขันไร้สาย
การแข่งขันไร้สาย
การแข่งขันไร้สาย

รองชนะเลิศการแข่งขันไร้สาย

แนะนำ: