สารบัญ:

วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch แบบ ESP8266: 3 ขั้นตอน (พร้อมรูปภาพ)
วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch แบบ ESP8266: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch แบบ ESP8266: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch แบบ ESP8266: 3 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การตั้งค่าโปรแกรมวงจรล้างรถหยอดเหรียญ 1 Channel 2024, พฤศจิกายน
Anonim
วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch ที่ใช้ ESP8266
วิธีการแฟลชเฟิร์มแวร์ MicroPython บนสวิตช์ Sonoff Smart Switch ที่ใช้ ESP8266

Sonoff คืออะไร?

Sonoff เป็นอุปกรณ์สำหรับ Smart Home ที่พัฒนาโดย ITEAD หนึ่งในอุปกรณ์ที่ยืดหยุ่นและราคาไม่แพงที่สุดจากกลุ่มผลิตภัณฑ์ดังกล่าว ได้แก่ Sonoff Basic และ Sonoff Dual สวิตช์เหล่านี้เป็นสวิตช์ที่เปิดใช้งาน Wi-Fi ซึ่งใช้ชิปที่ยอดเยี่ยม ESP8266 แม้ว่าโครงสร้างพื้นฐานของ Sonoff อาจทำงานได้ดีสำหรับผู้ใช้ขั้นพื้นฐาน คนอื่นๆ อาจต้องการแฮ็กเข้าไปในฮาร์ดแวร์นั้นและเรียกใช้โค้ดของตนเอง ฮาร์ดแวร์ของ Sonoff Smart Switches นั้นน่าทึ่งเมื่อพิจารณาจากราคาที่ต่ำ:

  • ESP8266 พร้อมแฟลช 1MB
  • อะแดปเตอร์แปลงไฟแบบรวม 220V AC
  • รีเลย์ 10A (หรือสองตัวใน Sonoff Dual)
  • LED ออนบอร์ด (หรือสองตัวใน Sonoff Dual)
  • ปุ่มออนบอร์ด

หากคุณต้องการควบคุมฮาร์ดแวร์นี้อย่างสมบูรณ์โดยใช้ภาษาการเขียนโปรแกรมที่คุณชื่นชอบ บทช่วยสอนนี้เหมาะสำหรับคุณ

ขั้นตอนที่ 1: แฮ็คฮาร์ดแวร์

การแฮ็กฮาร์ดแวร์
การแฮ็กฮาร์ดแวร์
การแฮ็กฮาร์ดแวร์
การแฮ็กฮาร์ดแวร์
การแฮ็กฮาร์ดแวร์
การแฮ็กฮาร์ดแวร์

ESP8266 ได้รับการตั้งโปรแกรมผ่านพอร์ตอนุกรม ทั้ง Sonoff Basic และ Sonoff Dual มีอยู่ใน PCD

คุณอาจต้องบัดกรีส่วนหัวของพินบน PCB เพื่อเชื่อมต่ออะแดปเตอร์ USB-UART อย่างง่ายดาย

ขั้นตอนที่ 2: การเตรียมการแฮ็กซอฟต์แวร์

กำลังเตรียมแฮ็คซอฟต์แวร์
กำลังเตรียมแฮ็คซอฟต์แวร์

ฉันรัก Python ดังนั้นฉันจะใช้เฟิร์มแวร์ MicroPython คุณยังสามารถใช้ SDK ที่รองรับได้ มาดำเนินการแฟลช MicroPython แทนเฟิร์มแวร์ Sonoff ที่เป็นกรรมสิทธิ์:

ติดตั้งแพ็คเกจ esptool python ที่ทำให้การแฟลช ESP8266 ง่ายขึ้น:

pip ติดตั้ง esptool

ดาวน์โหลดเฟิร์มแวร์ MicroPython ที่เสถียรล่าสุดจากหน้าดาวน์โหลด MicroPython เชื่อมต่ออะแดปเตอร์ USB-UART เข้ากับบอร์ด เพื่อความปลอดภัย ขอแนะนำให้จ่ายไฟให้กับบอร์ดจากอแดปเตอร์แทนเต้ารับไฟ AC 220V โปรดทราบว่าคุณสามารถใช้ 3.3V ได้เท่านั้น หากคุณเชื่อมต่อชิป ESP8266 กับแหล่งจ่ายไฟ 5V ชิปจะตาย

บูต ESP8266 เข้าสู่โหมดแฟลช คุณสามารถทำได้โดยดึงพิน GPIO0 ลงขณะเปิดเครื่อง:

  • บน Sonoff Basic GPIO0 เป็นเพียงปุ่มเดียว เชื่อมต่ออะแดปเตอร์ USB-UART กับพีซีของคุณในขณะที่กดปุ่มและคุณอยู่ในโหมดแฟลช
  • ใน Sonoff Dual สิ่งต่าง ๆ ยากขึ้นเล็กน้อย คุณต้องลัดวงจรแผ่นสองแผ่นบน PCB ในขณะที่เปิดเครื่อง แผ่นอิเล็กโทรดที่จำเป็นแสดงอยู่ในภาพด้านบน ใช้แหนบหรือบัดกรีลวดขนาดเล็กระหว่างพวกเขา

เมื่อ ESP8266 อยู่ในโหมดแฟลช ไฟ LED ของบอร์ดไม่ควรกะพริบ

ตรวจสอบให้แน่ใจว่าคุณสามารถเข้าถึงพอร์ตอนุกรมที่เปิดโดยอะแดปเตอร์ USB-UART บน Linux อาจเป็น \dev\ttyUSB0 บน Mac คุณควรค้นหาบางอย่างเช่น “usbserial” หรือ “usbmodem” ในเอาต์พุตคำสั่ง ls \dev\cu.* หรือ ls \dev\tty.* บน Windows ควรเป็น COM3 หรือสูงกว่า. ติดตั้งไดรเวอร์อะแดปเตอร์ USB-UART หากจำเป็น

ลบแฟลชโดยใช้ esptool แทนที่ /dev/ttyUSB0 สำหรับพอร์ตของคุณหากจำเป็น:

esptool.py --port /dev/ttyUSB0 Erase_flash

คุณอาจต้องเรียกใช้ esptool.py ในฐานะ superuser เพื่อเข้าถึงพอร์ตอนุกรม

ขั้นตอนที่ 3: กระพริบ

แวบวับ
แวบวับ

หากการลบสำเร็จ ให้ตัดกระแสไฟของบอร์ด บูต ESP8266 ในโหมดแฟลชอีกครั้ง และแฟลชเฟิร์มแวร์ของคุณ:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=ตรวจจับ 0 esp8266-20170823-v1.9.2.bin

หากการกะพริบสำเร็จ ให้ตัดกระแสไฟของบอร์ด เชื่อมต่ออีกครั้งโดยไม่ต้องกดปุ่ม และเปิดพอร์ตอนุกรมในเทอร์มินัล บน Linux และ Mac คุณสามารถใช้หน้าจอ /dev/ttyUSB0 115200 (แทนที่ /dev/ttyUSB0 สำหรับพอร์ตของคุณ หากจำเป็น) บน Windows คุณสามารถใช้ PuTTY (อัตรารับส่งข้อมูลเริ่มต้นคือ 115200) เมื่อคุณเชื่อมต่อแล้ว ให้กด Enter และหากคุณเห็นวงเล็บเหลี่ยมสามมุมของ Python shell แสดงว่าทุกอย่างทำงานได้!

>> >>> ช่วย () ยินดีต้อนรับสู่ MicroPython! สำหรับเอกสารออนไลน์ โปรดไปที่ https://docs.micropython.org/en/latest/esp8266/ สำหรับข้อมูลการวินิจฉัยที่จะรวมไว้ในรายงานข้อบกพร่อง ให้ดำเนินการ 'import port_diag' การกำหนดค่า WiFi พื้นฐาน: นำเข้าเครือข่าย sta_if = network. WLAN(network. STA_IF); sta_if.active(True) sta_if.scan() # สแกนหาจุดเชื่อมต่อที่ใช้ได้ sta_if.connect("", "") # เชื่อมต่อกับ AP sta_if.isconnected() # ตรวจสอบการเชื่อมต่อที่สำเร็จ # เปลี่ยนชื่อ/รหัสผ่านของ AP ของ ESP8266: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") คำสั่งควบคุม: CTRL-A -- ในบรรทัดว่าง ให้ป้อน raw REPL mode CTRL- B - ในบรรทัดว่าง เข้าสู่โหมด REPL ปกติ CTRL-C - ขัดจังหวะโปรแกรมที่ทำงานอยู่ CTRL-D - ในบรรทัดว่าง ทำการซอฟต์รีเซ็ตบอร์ด CTRL-E - ในบรรทัดว่าง ให้ป้อน paste โหมด สำหรับความช่วยเหลือเพิ่มเติมเกี่ยวกับวัตถุเฉพาะ พิมพ์ help(obj) >>>

ในคำแนะนำถัดไป เราจะอธิบายวิธีโต้ตอบกับแพลตฟอร์ม Cloud4RPi ผ่านโปรโตคอล MQTT

แนะนำ: