สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ติดตั้งเฟิร์มแวร์
- ขั้นตอนที่ 2: การตั้งค่า Wi-Fi และ HomeKit
- ขั้นตอนที่ 3: การตั้งค่าแบบกำหนดเอง
วีดีโอ: Apple HomeKit WS2812B LED Controller: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
มีโครงการมากมายที่ใช้แถบ LED WS2812B แต่ส่วนใหญ่ใช้โฮมบริดจ์หรือโซลูชันอื่น ๆ ซึ่งส่วนใหญ่ใช้ MQTT เพื่อสื่อสารกับ HomeKit
บางโปรเจ็กต์ก็ใช้เอฟเฟกต์ผ่าน Apple HomeKit เหมือนกัน แต่ไม่มีโปรเจ็กต์ใดที่รองรับ HomeKit แบบสแตนด์อโลนโดยไม่ต้องใช้บริดจ์ ฉันใช้ WS2812B LEDs เกือบ 3-4 ปีแล้วกับ HomeKit ในตอนนี้ และพวกมันก็ทำงานได้ดีมาก
เนื่องจากโค้ดมีความซับซ้อนมาก และฉันใช้ไลบรารีที่กำหนดเองมามากมาย ฉันจึงได้สร้างไฟล์เฟิร์มแวร์ที่คอมไพล์ไว้ล่วงหน้าแล้ว สำหรับผู้ที่สนใจสร้างโปรเจ็กต์ HomeKit ดั้งเดิม ซอร์สโค้ดสำหรับ esp-homekit มีให้ที่นี่
ข้อมูลพื้นฐาน:
- ปัจจุบันรองรับเฉพาะแถบ LED WS2812B, WS2812B ECO และ WS2813 เท่านั้น!
- จำนวนไฟ LED สูงสุดถูกจำกัดไว้ที่ 500 สำหรับการบันทึก RAM
- ต้องใช้ตัวแปลงระดับลอจิก (สำหรับการแปลงข้อมูล 3.3V ถึง 5V)
- แหล่งจ่ายไฟ 5V คุณภาพดีก็จำเป็นเช่นกัน
- ข้อมูลเพิ่มเติมสามารถพบได้ใน GitHub. ของฉัน
- Adafruit Überguide สามารถช่วยได้:-)
การออกแบบ PCB:
ฉันได้ออกแบบ PCB อย่างง่ายสำหรับการขับ NeoPixel LED ตามวิธีที่เหมาะสมที่อธิบายไว้ใน NeoPixel Überguide ของ Adafruit โดยใช้ SN74HCT125N Logic Level Converter IC ล่าสุดและตัวเก็บประจุ 1000uF ที่แนะนำ:-) ฉันกำลังใช้ PCB นี้กับแหล่งจ่ายไฟ 5V 10A ไม่มีปัญหา (อุณหภูมิ):-)
นอกจากนี้ฉันมีรุ่น USB Type-C สำหรับแถบ LED ที่สั้นกว่าด้วย!
คุณสามารถสั่งซื้อ PCB ได้จากที่นี่และที่นี่
คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ PCB ได้ที่นี่
คุณสมบัติ:
- เปลี่ยนสี
- เปลี่ยนความสว่าง
- เปลี่ยนอุณหภูมิสี (ไม่ต้องใช้แถบ RGBW)
- เอฟเฟกต์แสง WS2812FX (เบต้า!!!)
- การตั้งค่าจำนวน LED WS2812B (ในการบู๊ตครั้งแรกตั้งแต่ 1 ถึง 500)
- ลักษณะการทำงานของ Power (สีเริ่มต้น / ใช้ล่าสุดเมื่อเริ่มต้นผ่านแอพ Eve)
- การเปลี่ยนผ่าน (รวดเร็ว / ค่าเริ่มต้น / ปานกลาง / สงบผ่านแอพ Eve)
- ล็อคป้องกันเด็ก (ปุ่มเปิด/ปิด กดปุ่มผ่านแอพ Eve)
- ดาวน์โหลดคู่มือการใช้งาน (ผ่านแอพ Eve)
- ปุ่มเปิด/ปิด/รีเซ็ต
เสบียง
ในการสร้าง PCB แบบกำหนดเอง คุณจะต้องมีหัวแร้งราคาถูกหรือสถานีบัดกรีแบบนี้หรือแบบนี้ ปืนบัดกรีลมร้อนก็มีประโยชน์เช่นกัน! สำหรับการอัปโหลดรหัส คุณอาจต้องซื้ออะแดปเตอร์ USB TTL ด้วย
อะไหล่ที่จำเป็น:
- NodeMCU หรือ Wemos D1 Mini
- IC ตัวแปลงระดับลอจิก
- WS2812B แถบ LED
- ขั้วต่อตัวเมีย JST 3 ขา
- แหล่งจ่ายไฟ 5V 2-10A v1 หรือ 5V 2-10A แหล่งจ่ายไฟ v2
- สายจัมเปอร์
ชิ้นส่วน PCB:
- ESP12F/E
- ESP-01S (แฟลช 1MB)
- ตัวต้านทาน SMD 0805
- ตัวเก็บประจุ SMD 0805
- AMS1117-3.3
- ปุ่มสัมผัส
- หัว 2.54 มม.
- SN74HCT125N
- ตัวเก็บประจุ SMD 10.5x10.5 1000uF
- ขั้วต่อ DC
- ขั้วต่อสกรู 3 พิน
- กล่องฟิวส์
- ฟิวส์
ขั้นตอนที่ 1: ติดตั้งเฟิร์มแวร์
คุณสามารถดาวน์โหลดเฟิร์มแวร์ได้จากหน้า GitHub ของฉัน
Windows
สำหรับ Windows คุณสามารถใช้ Firmware Download Tool อย่างเป็นทางการโดย Espressif
การตั้งค่าที่อยู่แฟลช (0x2000) ขนาดแฟลช (1MB/8mbit, 4MB/32mbit) และโหมดแฟลช (DIO/QIO) เป็นขั้นตอนที่สำคัญมาก แต่การตั้งค่าเหล่านี้อาจเปลี่ยนแปลงได้ตามโมดูลที่คุณใช้! นอกจากนี้ ฉันขอแนะนำให้ลบแฟลชก่อนอัปโหลดไฟล์.bin!
การตั้งค่า:
- อัตราบอด 115200
- ขนาดแฟลช 4MB หรือ 32mbit (ขึ้นอยู่กับโมดูลของคุณ)
- โหมดแฟลช QIO (หรือ DIO ขึ้นอยู่กับโมดูลของคุณ)
- 0x0000 rboot.bin
- 0x1000 blank_config.bin
- 0x2000 ledstrip.bin
- 40MHz
MacOS
สำหรับ MacOS คุณสามารถใช้เครื่องมือกะพริบนี้ได้
การตั้งค่า:
- ลบแฟลช - ใช่
- อัตราบอด 115200
- ขนาดแฟลช 4MB หรือ 32mbit (ขึ้นอยู่กับโมดูลของคุณ)
- โหมดแฟลช QIO (หรือ DIO ขึ้นอยู่กับโมดูลของคุณ)
- ไฟล์: ledstrip.bin
- 40MHz
แฟลชด้วยตนเอง
เราต้องติดตั้ง esptool.py บน Mac เพื่อให้สามารถแฟลชโมดูล ESP ได้ ในการทำงานกับ esptool.py คุณจะต้องติดตั้ง Python 2.7, Python 3.4 หรือ Python ที่ใหม่กว่าในระบบของคุณ เราขอแนะนำให้ใช้ Python เวอร์ชันล่าสุด ดังนั้นไปที่เว็บไซต์ของ Python และติดตั้งในคอมพิวเตอร์ของคุณ
เมื่อติดตั้ง Python แล้ว ให้เปิดหน้าต่าง Terminal และติดตั้ง esptool.py รุ่นล่าสุดที่เสถียรด้วย pip:
pip ติดตั้ง esptool
หมายเหตุ: ด้วยการติดตั้ง Python บางอย่างคำสั่งอาจไม่ทำงานและคุณจะได้รับข้อผิดพลาด หากเป็นกรณีนี้ ให้ลองติดตั้ง esptool.py ด้วย:
pip3 ติดตั้ง esptool python -m pip ติดตั้ง esptool pip2 ติดตั้ง esptool
หลังจากติดตั้ง คุณจะมี esptool.py ติดตั้งอยู่ในไดเร็กทอรี Python executables ที่เป็นค่าเริ่มต้น และคุณจะสามารถเรียกใช้มันได้ด้วยคำสั่ง esptool.py ในหน้าต่าง Terminal ของคุณ ให้รันคำสั่งต่อไปนี้:
esptool.py
ด้วยการติดตั้ง esptool.py บนคอมพิวเตอร์ของคุณ คุณสามารถแฟลชบอร์ด ESP8266 ด้วยเฟิร์มแวร์ได้อย่างง่ายดาย
ขั้นแรกคุณต้องดาวน์โหลดไฟล์ bin สามไฟล์: rboot.bin และ blank_config.bin และรุ่นล่าสุด rboot.bin มี bootloader สำหรับ ESP8266 และ blank_config.bin ในไฟล์ปรับแต่งเปล่าและ ledstrip.bin มีเฟิร์มแวร์ ตอนนี้เชื่อมต่ออุปกรณ์ของคุณกับอะแดปเตอร์ FTDI ในโหมดแฟลช
ลิงค์มิเรอร์:
rboot.binblank_config.binledstrip.bin
การนำอุปกรณ์เข้าสู่โหมดแฟลช
ในการเปิดใช้งานเฟิร์มแวร์ ESP8266 จะต้องดึงพิน GPIO0 ที่กระพริบของเฟิร์มแวร์ให้ต่ำในขณะที่เปิดเครื่อง ด้วย PCB ที่กำหนดเองของฉัน มีปุ่ม nodeMCU ยังมีปุ่มแฟลช และ Wemos จะทำงานโดยอัตโนมัติโดยใช้ USB ในทางกลับกัน สำหรับการบู๊ตปกติ GPIO0 จะต้องดึงให้สูงหรือลอยตัว เริ่มในโหมดแฟลช
ไปที่ไดเร็กทอรีที่คุณสร้างไว้ซึ่งคุณใส่ไฟล์ rboot.bin blank_config.bin ที่ดาวน์โหลดไว้ก่อนหน้านี้ (เช่น ดาวน์โหลด)
เปิดแอพเทอร์มินัล คลิกไอคอน Finder ในท่าเรือของคุณ คลิกไป คลิกยูทิลิตี้ คลิกสองครั้งที่เทอร์มินัล เปลี่ยนเป็นไดเร็กทอรีดาวน์โหลด
คุณจะต้องใช้อะแดปเตอร์ USB TTL เพื่อเชื่อมต่อกับ ESP8266 หากคุณใช้เฉพาะ Wemos D1 Mini ต้องใช้สาย microUSB แสดงว่า Wemos มีอะแดปเตอร์ TTL ในตัว
ดาวน์โหลดซีดี
หมายเหตุ: หากคุณใช้ไลบรารีอื่นเพื่อจัดเก็บไฟล์.bin สามไฟล์ ให้ไปที่ไลบรารีนั้นโดยใช้คำสั่ง `cd`:
ใช้ esptool.py เพื่อแฟลชอุปกรณ์ของคุณ ก่อนอื่นเราต้องลบแฟลช:
esptool.py -p /dev/ Erase_flash
โดยปกติ ESPPort ของคุณจะมีลักษณะดังนี้ /dev/cu.usbserial-`xxxxxx` จากนั้น ตั้งค่าอุปกรณ์ของคุณในโหมดแฟลชอีกครั้ง และแฟลชเฟิร์มแวร์ใหม่:
esptool.py -p /dev/cu.wchusbserial1420 --baud 115200 write_flash -fs 32m -fm dio -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 ledstrip.bin
ขั้นตอนที่ 2: การตั้งค่า Wi-Fi และ HomeKit
การตั้งค่า Wi-Fi
คุณต้องกำหนดค่าเครือข่าย wifi ก่อนเพิ่มอุปกรณ์เสริมไปยัง HomeKit ในการกำหนดการตั้งค่า Wi-Fi อุปกรณ์จะสร้าง Wi-Fi ของตัวเองในโหมด AP คุณต้องเชื่อมต่อเพื่อตั้งค่าเครือข่าย Wi-Fi ของคุณ เพียงนำอุปกรณ์ iOS ของคุณไปที่การตั้งค่า -> Wi-Fi แล้วค้นหา SSID ชื่อ HomeKid- ตามด้วยที่อยู่ MAC ของโมดูลและเชื่อมต่อ เพื่อความปลอดภัย AP ได้รับการป้องกันด้วยรหัสผ่าน!รหัสผ่าน AP เริ่มต้น: 12345678
รอสักครู่จนกว่าเว็บจะปรากฏขึ้นเพื่อแสดงเครือข่าย Wi-Fi ทั้งหมดที่อุปกรณ์พบ เลือกของคุณและป้อนรหัสผ่าน! หลังจากนั้นคุณสามารถเพิ่มจำนวน LED ที่แน่นอนในแถบ LED ของคุณได้! ป้อนตัวเลขตั้งแต่ 1 ถึง 500! จากนั้นคลิกปุ่มเข้าร่วม! โมดูลจะพยายามเชื่อมต่อเครือข่าย Wi-Fi ที่เลือก ซึ่งจะใช้เวลาสองสามวินาที
หมายเหตุ: หากรหัสผ่านที่ระบุไม่ถูกต้อง คุณสามารถรีเซ็ตการตั้งค่า Wi-Fi ได้โดยกดปุ่มรีเซ็ตเป็นเวลา 10 วินาที
การตั้งค่า HomeKit
ในอุปกรณ์ iOS ของคุณ ให้เปิดแอพ Home และทำตามขั้นตอนปกติเพื่อเพิ่มอุปกรณ์เสริมใหม่ การตั้งค่าการจับคู่ใช้เวลาประมาณ 30 วินาที
รหัส HomeKit เริ่มต้นคือ 021-82-017
นอกจากนี้ คุณสามารถสแกนรหัส HomeKit QR นี้:
หมายเหตุ: หากการจับคู่ล้มเหลว คุณสามารถยกเลิกการจ่ายไฟให้อุปกรณ์ เปิดเครื่องใหม่ และเริ่มการตั้งค่า HomeKit อีกครั้ง (การตั้งค่า WiFi ยังคงได้รับการกำหนดค่าไว้) หลังจากจับคู่สำเร็จ แถบ LED จะกะพริบเป็นสีขาว 3 ครั้ง!
ปัญหาทั่วไป:
- บางครั้งการเพิ่มอุปกรณ์เสริมหลายรายการโดยใช้รหัส QR ล้มเหลว หาก HomeKit รายงานว่า "เพิ่มอุปกรณ์เสริมแล้ว" เพียงเพิ่มรหัสการจับคู่ด้วยตนเองแทนการสแกนรหัส QR!
- ในกรณีที่มีบางอย่างผิดพลาด คุณสามารถดูไฟล์บันทึกได้โดยใช้จอภาพอนุกรมของ Arduino และไม่สามารถเปิดปัญหาบน GitHub ได้
ขั้นตอนที่ 3: การตั้งค่าแบบกำหนดเอง
น่าเศร้าที่แอป Home ไม่สนับสนุนคุณลักษณะของบุคคลที่สามที่กำหนดเอง ดังนั้น คุณจะต้องใช้แอป Elgato EVE เพื่อเปลี่ยนการตั้งค่าเหล่านี้และใช้เอฟเฟกต์ WS2812B อุปกรณ์เสริมยังทำหน้าที่เหมือนอุปกรณ์เสริม Fake Eve Light Strip เมื่อคุณเพิ่มผ่านแอพ Eve ?
การเปลี่ยนแปลงและพฤติกรรมกำลัง
แถบ Eve Light ดั้งเดิมรองรับคุณสมบัติทั้งสองนี้ ด้วย Transitions คุณสามารถเปลี่ยนความเร็วของแถบ LED ได้เมื่อใช้ WS2812FX Effects! การตั้งค่าเป็น "ด่วน" จะปิดการเฟดเข้า/ออก และจะเปิดขึ้นอย่างรวดเร็ว!
ด้วย Power Behavior คุณสามารถเปลี่ยนสีเริ่มต้นเมื่อแถบ LED เปิดขึ้น! โดยค่าเริ่มต้น จะมีการตั้งค่าเป็น Last Used Color ดังนั้นเมื่อคุณปิดแถบ LED มันจะจำสีสุดท้ายที่คุณใช้เสมอ! เมื่อตั้งค่าเป็น Default White ทุกครั้งที่คุณปิดแถบ LED สีจะกลับไปเป็นสีขาว!
รีเซ็ต
รหัสนี้มีฟังก์ชันรีเซ็ตในกรณีที่มีสิ่งผิดปกติเกิดขึ้น รอประมาณ 5 วินาทีเพื่อให้อุปกรณ์บูตได้อย่างสมบูรณ์ จากนั้นกดปุ่มค้างไว้อย่างน้อย 10 วินาที!
นำการตั้งค่าที่กำหนดค่าไว้ทั้งหมดออกแล้วและอุปกรณ์กำลังรีสตาร์ท การดำเนินการนี้จะลบการตั้งค่า HomeKit และ Wi-Fi และอุปกรณ์ของคุณจะไปที่โหมดจุดเข้าใช้งานในครั้งต่อไปเพื่อกำหนดค่า Wi-Fi ใหม่
หมายเหตุ: การกดปุ่มเดียวกันเพียงครั้งเดียวจะเป็นการเปิดหรือปิดแถบ LED
แนะนำ:
เครื่องลดความชื้น Apple HomeKit Wi-Fi ตาม ESP8266 ?: 6 ขั้นตอน (พร้อมรูปภาพ)
Apple HomeKit Wi-Fi Dehumidifier ตาม ESP8266 หรือไม่: น่าเสียดายที่มี DeHumidifiers เพียงหนึ่งหรือสองตัวที่รองรับ Apple HomeKit แต่สิ่งเหล่านี้มีราคาสูงมาก (300$+) ดังนั้นฉันจึงตัดสินใจสร้างเครื่องลดความชื้น Apple HomeKit ที่สามารถใช้ Wi-Fi ของตัวเองโดยอิงจากเครื่องราคาถูกที่ฉันมีอยู่แล้ว ผม
สร้างอุปกรณ์เซ็นเซอร์อุณหภูมิ HomeKit ของ Apple โดยใช้ ESP8266 และ BME280: 10 ขั้นตอน
สร้างอุปกรณ์เซ็นเซอร์อุณหภูมิ HomeKit ของ Apple โดยใช้ ESP8266 และ BME280: ในคำแนะนำของวันนี้ เราจะสร้างเซ็นเซอร์อุณหภูมิ ความชื้น และความชื้นต้นทุนต่ำโดยอิงจากเซ็นเซอร์อุณหภูมิ/ความชื้น AOSONG AM2302/DHT22 หรือ BME280, เซ็นเซอร์ความชื้น YL-69 และแพลตฟอร์ม ESP8266/Nodemcu และสำหรับการแสดง
การรวม Arduino และ Apple HomeKit - ควบคุมบ้านของคุณจาก Siri! IoT มาแล้ว: 6 ขั้นตอน
การรวม Arduino และ Apple HomeKit - ควบคุมบ้านของคุณจาก Siri! IoT อยู่ที่นี่: คำแนะนำนี้จะช่วยให้คุณเพิ่มบอร์ด Arduino ลงใน HomeKit ของ Apple บนอุปกรณ์ iOS ได้อย่างรวดเร็วและง่ายดาย มันเปิดโอกาสทุกประเภทรวมถึงสคริปต์ที่ทำงานบนเซิร์ฟเวอร์ รวมกับ Apples HomeKit "ฉาก" มันทำให้
สร้างอุปกรณ์ Apple HomeKit Temperature Sensor (DHT22) โดยใช้ RaspberryPI และ DHT22: 11 ขั้นตอน
สร้างอุปกรณ์ Apple HomeKit Temperature Sensor (DHT22) โดยใช้ RaspberryPI และ DHT22: ฉันกำลังมองหาเซ็นเซอร์อุณหภูมิ / ความชื้นราคาประหยัดที่ฉันสามารถใช้เพื่อตรวจสอบสิ่งที่เกิดขึ้นในพื้นที่รวบรวมข้อมูลของฉัน เนื่องจากฉันพบว่าฤดูใบไม้ผลินี้เปียกมาก และมีความชื้นมาก ดังนั้นฉันจึงมองหาเซ็นเซอร์ราคาสมเหตุสมผลที่ฉันสามารถ
สร้าง Apple HomeKit Temperature Sensor (BME280) โดยใช้ RaspberryPI และ BME280: 5 ขั้นตอน
สร้าง Apple HomeKit Temperature Sensor (BME280) โดยใช้ RaspberryPI และ BME280: ฉันได้ลองใช้งานอุปกรณ์ IOT ในช่วงไม่กี่เดือนที่ผ่านมา และได้ปรับใช้เซ็นเซอร์ต่างๆ ประมาณ 10 ตัวเพื่อตรวจสอบสภาพรอบๆ บ้านและกระท่อมของฉัน และเดิมทีฉันเริ่มใช้เซ็นเซอร์วัดความชื้นสัมพัทธ์ AOSONG DHT22