Thanapon Tapala

Backend Developer

Embedded Developer

Smart Farmer

Maker

Thanapon Tapala

Backend Developer

Embedded Developer

Smart Farmer

Maker

Blog Post

[ESP8266-Sonoff] มาลอง TASMOTA firmware สำหรับ Sonoff กันครับ

November 27, 2019 ESP32, ESP8266, NodeJs, SONOFF, TASMOTA
[ESP8266-Sonoff] มาลอง TASMOTA firmware สำหรับ Sonoff กันครับ

สวัสดีครับหลังจากที่หายไปหลายเดือน

พอดีได้มีโอกาสไปลองเล่น Sonoff มา ซึ่งรุ่นที่ได้ลองจะเป็น Module Sonoff Basic ลักษณะจะคล้ายๆกับบัลลาสต์เลยครับแต่ขนาดตัวจะเล็กกว่าประมาณครึ่งเลยที่เดียวครับ โดยปกติแล้วหลักจากที่เราซื้อ Sonoff มาทางผู้ผลิตเขาก็ได้ให้แอพพลิเคชั่นมาด้วยชื่อว่า eWeLink รองรับทั้ง Android และ iOS นะครับสามารถลองโหลดมาเล่นได้ซึ่งภายในแอพจะเป็นควบคุมการเปิด-ปิดไฟตามสไตล์ของ Smart Home ครับ

Image for post

อุปกรณ์หลักๆภายใน Sonoff Basic รุ่นนี้จะใช้ ESP8266, Relay Module และ Power Supply สำหรับแปลงไฟ 220 VAC ไป 5 VDC ส่วนตารางข้างล่างนี้จะเป็นสเปคคร่าวๆนะครับ

Image for post

เข้าเรื่องเลยละกันครับ จากรูป Schematic ของ Sonoff Basic ข้างบนเราจะสังเกตเห็นว่า เอ๊ะ มันมีพอร์ทสำหรับ UART หรือ Serial-TTL ให้เราด้วยซึ่งถ้าคนที่เคยเรียนรู้เกี่ยวกับ Hardware มาจะเข้าใจว่าเป็นพอร์ทสำหรับการส่งข้อมูลและรับข้อมูลสำหรับ Microcontroller นะครับ ใช่ครับ! หลักจากนั้นผมก็ได้ตามไปศึกษาเกี่ยวกับ sonoff แล้วก็ได้พบว่าเราสามารถสร้าง Custom Firmware ของเราขึ้นมาได้เอง แต่วันนี่เราคงไม่พูดถึงนะครับ

โดยวันนี้ผมจะมาแนะนำ Firmware ที่คิดว่าความสามารถครอบคลุมในเรื่องของ Smart Home ชื่อว่า Tasmota กันนะครับ

What is Tasmota ?

Tasmota คือ Opensouce Firmware สำหรับ ESP8266 ซึ่งถูกสร้างขึ้นมาสำหรับ Sonoff โดยเฉพาะสามารถรองรับ Sonoff ได้หลายๆโมดูลครับไม่ว่าจะเป็น Sonoff Basic, Sonoff T1 1Ch จนถึง Sonoff T1 3Ch ครับ จริงๆสามารถเข้าไปเช็คดูว่า Firmware นี้ Compatibility รุ่นไหนบ้างได้จากตรงนี้เลยครับ >> Sonoff Module Compatibility

Firmware Tasmota นี้จะเพิ่มความสามารถให้ Sonoff ของเราคือ

  • Web UI config
  • Control over MQTT, HTTP
  • Timer, Schedule
  • Web Admin Authentication
  • OTA firmware update
  • Integration with Smart home System: Home Assistant

เนื่องจากเป็น Opensorce Firmware ทาง Developer เขาก็ได้แจก code มาด้วย ผู้ใช้งานสามารถแก้ไข source code ได้ผ่าน Arduino IDE และ Platform IO ด้วยครับ

Requirement

  • Sonoff Basic
  • USB to Serial
  • Single Row Male Pin Header
  • Soldering Iron & Soldering Lead
  • Firmware Flashing Tool : Esptool.py
  • Tasmota Firmware

ของพร้อมคนพร้อมเริ่มกันเลยนะครับ

  • แกะ Sonoff ให้เหลือแค่บอร์ดสีเขียวๆกันก่อนนะครับ
  • จากนั้นให้นำก้างปลาตัวผู้มาเสียบที่รู 4 รู เล็กๆ ซึ่งจะอยู่ใกล้ๆกับตัวเก็บประจุและปุ่มกด
  • บัดกรีไปเลยครับ เป็นอันเสร็จขั้นตอนการเตรียมอุปกรณ์ หลังจากนั้นไปยังฝั่งซอร์ฟแวร์บ้าง
Image for post
  • ต่อสายระหว่าง USB to Serial กับ Sonoff Basic ก่อนนะครับ
    **ในระหว่างต่อสาย USB to Serial ห้ามต่อ Sonoff เข้ากับไฟบ้านโดยเด็ดขาดนะครับ และควรใช้ USB to Serial แบบที่ VCC = 3.3v นะครับเพราะถ้ามากกว่านี้อาจจะไปทำลาย Microcontroller ของ Sonoff ได้ครับ**
Image for post
Image for post
  • หลังจากต่อสายเสร็จแล้วให้เรานำ USB to Serial เสียบเข้ากับคอมพิวเตอร์ของเราเพื่อจะทำการอัพโหลดเฟิร์มแวร์ โดยก่อนจะเสียบเข้ากับคอมนั้นให้เรากดปุ่มที่อยู่บนบอร์ดก่อนเพื่อให้ Sonoff ของเราเข้าสู่โหมด Upload ก่อนครับ วิธีกดก็กดค้างไว้เลยพร้อมกับเสียบสาย USB to Serial
Image for post
  • เมื่อ Sonoff Basic ของเราพร้อมสำหรับการอัพโหลดแล้วให้เราทดสอบโดยการใช้ esptool เช็คค่า MAC Address ของ Sonoff ก่อน หลังจากที่ได้ MAC Address มา Sonoff จะ Reset ตัวเองด้วยนะครับ ฉะนั้นเราจำเป็นต้องทำการเสียบ USB to Serial ใหม่พร้อมกับกดปุ่มด้วยนะครับเพื่อเข้าสู่โหมด Upload
    **ในขั้นตอนนี้ผมจะใช้ esptool สำหรับการอัพโหลดนะครับโดย esptool นั้นจะรันผ่าน Windows PowerShell (Windows) และ Terminal (Linux) ท่านผู้อ่านต้องทำการติดตั้ง esptool ก่อนนะครับ**
- esptool.py -p COM3 read_mac //read mac address of sonoff
Image for post
  • จากนั้นทำการอัพโหลด Tasmota firmware กันครับ หลังจากที่ esptool อัพโหลดเฟิร์มแวร์เสร็จแล้ว Sonoff เราจะต้องทำการ restart Sonoff 1 รอบนะครับเพื่อให้ Sonoff ของเราเข้าสู่โหมด Normal โดยสังเกตจากการกะพริบของหลอดไฟ
- esptool.py --port COM3 erase_flash //erase flash memory of sonoff
- esptool.py --port COM3 write_flash -fs 1MB -fm dout 0x0 tasmota.bin //upload tasmota firmware
Image for post
  • เมื่ออัพโหลดเฟิร์มแวร์เสร็จแล้ว ขั้นต่อไปทำการเชื่อมโทรศัพท์ของเราเข้ากับ WIFI Access point ของ Sonoff โดยชื่อจะขึ้นต้นเป็น sonoff-xxx ครับ เมื่อเชื่อมต่อเสร็จสิ้นระบบจะ redirect URL มาที่ 192.168.4.1 ซึ่งจะเป็น IP ของ Sonoff เพื่อให้เราใส่ชื่อ AP และ Password สำหรับเชื่อมต่อกับเน็ตที่บ้านของเรา
Image for post
Image for post
  • หลังจาก Sonoff เชื่อมต่อกับ WIFI ที่บ้านเราแล้ว ถัดมาเราจะสามารถควบคุม Sonoff ผ่าน Web UI โดยจำเป็นต้องเข้าผ่าน IP ของ Sonoff ซึ่ง IP นี้จะเป็น IP Address ที่ Router ที่บ้านของเราเป็นคนจ่ายให้กับตัวอุปกรณ์ซึ่งเราสามารถใช้ โปรแกรม IP Scanner สแกนหาได้เลยครับแล้วก็เข้าตาม IP Address นั้น
Image for post

เสร็จสิ้นการอัพโหลด Tasmota Firmware สำหรับ Sonoff แล้วครับ จากความเห็นส่วนตัวผมคิดว่า Tasmota นั้นไม่ได้มีดีแค่หน้า Web UI นะครับส่วนหลักๆที่ผมคิดว่าเจ๋งคือน่าจะเป็น Wifi config manager และการเชื่อมต่อกับ MQTT ได้ ซึ่งเราน่าจะเอาไปประยุกต์ใช้กับหลายๆโปรเจคได้เหมือนกันครับ ไว้เดี๋ยวเรื่องต่อไปผมจะมาเขียนการเชื่อมต่อ MQTT กับ Tasmota Firmware ให้นะครับ

สำหรับวันนี้ขอบคุณและสวัสดีครับ

https://github.com/arendst/Tasmota

Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX.

https://www.itead.cc/wiki/Sonoff

Home automation is “The Internet of Things”. It simply means the way all devices or appliances are networked together to provide customers with a ..
Taggs: