BMS-HOSxP Community

HOSxP => นอกเรื่อง => ข้อความที่เริ่มโดย: manoi ที่ เมษายน 26, 2020, 12:06:38 PM

หัวข้อ: ESP-8266 และ HW-655 Relay (STC15F104W)
เริ่มหัวข้อโดย: manoi ที่ เมษายน 26, 2020, 12:06:38 PM
ผมคิดอยู่นานว่าจะเขียนเรื่องนี้ไว้ดีมั้ย เพราะมันไม่เกี่ยวกับ HOSxP แต่ไหนๆ ก็ไหนๆ แล้ว อีกทั้งผมไม่อยากให้สิ่งที่ผมค้นหามันสูญเปล่า และเผื่อจะมีประโยชน์กับคนที่เจอปัญหาแบบเดียวกัน

ช่วงนี้ BMS มีหลาย Project ที่ต้องยุ่งกับระบบ IoT หนึ่งในตัวที่ได้ใช้มากที่สุดตอนนี้ก็คือตัว ESP8266 Relay ซึ่งมีหน้าตาเป็นแบบนี้ครับ

[attach=1 width=350]
[attach=5 width=350]

ปัญหาก็คือ ผมซื้อมาทดสอบไว้หลายตัว ทั้งที่ราคาถูกและราคาปานกลาง ปัญหาคือ ตัวที่ราคาถูก โดยเฉพาะที่สั่งมาจากจีน มันจะใช้ไม่ได้ เวลาเปิดใช้มันจะมีอาการ Relay ทำงานเปิดและปิดทุก 0.5 วินาที

คล้ายๆ video นี้

https://www.youtube.com/watch?v=5Le9kNT_Bm4

เมื่อไปค้นข้อมูลดูก็พบว่าเป็นเพราะ ตัว microcontroller ที่มากับ board ยังไม่ถูกโปรแกรม ทำให้ยังใช้งานไม่ได้ หลังจากเสียเวลาลองผิดลองถูกอยู่หลายวันตามแหล่งข้อมูลนี้

https://cmheong.blogspot.com/2020/01/hacking-hw-655-esp8266-wifi-iot-relay.html
และ
https://github.com/libretto/RelayMCU

ก็พบว่าวิธีการที่ใช้มันไม่ถูกต้อง วิธีการโปรแกรม STC MCU ที่ถูกต้อง ต้องใช้โปรแกรมที่มาจาก Vendor คือ ตัวนี้ (และต้องเป็น รุ่นใหม่ด้วย รุ่นเก่ามันจะ Error เวลาเขียนข้อมูล)

http://www.stcisp.com/_download_stcisp_new.html

[attach=2]

มีคนมีปัญหาแบบเดียวกับผมเหมือนกัน คือไม่อยากโยนทิ้งไป ถึงแม้มันจะไม่แพงมาก แต่ก็ยังอยากให้มันใช้งานได้ ถ้ามันมีวิธี สุดท้ายหลังจากที่พยายามครั้งสุดท้ายกับข้อมูลนี้ (คือซื้อของถูก แต่ดันไปเจอของเลียนแบบที่ไม่ได้ทำมาให้พร้อมใช้)

https://www.esp8266.com/viewtopic.php?f=160&t=13164&start=104#

ก็พบว่า วิธีการต่อสายตาม link ใน github เหมือนจะใช่ แต่จริงๆ แล้วผิด เวลาจะ program board  ต้องต่อสายตาม Label ที่ระบุบน board เลยคือ Ground -> Ground, Rx -> Rx , Tx -> Tx, Vcc -> Vcc

ขั้นตอนการ reprogram ด้วย STC-ISP ก็คือ

0. เลือก MCU Type เป็น STC15F104W
1. เลือก port ที่เชื่อมต่อผ่าน USB to Serial
2. กดปุ่ม Open Code File เพื่อ Load Hex Code ที่จะ program
[attach=3]
3. กดปุ่ม Download/Program

และเวลาจะ program ก่อนกดปุ่ม ต้องดึงสาย Vcc ออกก่อน และเมื่อกดปุ่ม program แล้วถึงค่อยเสียบสาย Vcc

ส่วนอันนี้เป็น Code ของ Arduino IDE สำหรับ ESP8266 ให้สั่งให้ Relay ทำงานผ่าน Wifi

[attach=4]