วันอาทิตย์ที่ 27 มีนาคม พ.ศ. 2559

mosquitto คำสั่ง publish และ คำสั่ง subscribe

กรณี ต้องการรับค่า จาก server (bloger) ชื่อ m10.cloudmqtt.com  โดยมีค่า port คือ 13487
และมี user/password ที่ได้รับอนุญาต รับค่าได้ คือ test/test
โดยรับค่าเฉพาะ /room02/ ทั้งหมด มาแสดง จะต้องใช้ดังนี้

mosquitto_sub -h m10.cloudmqtt.com -p 13487 -u test -P test -t /room02/# -v

-------------------------------------------------------------------------------
สำหรับในการส่งค่าขึ้น mosquitto ที่เรียกว่า publish จะใช้คำสั่งดังนี้

mosquitto_pub -h m10.cloudmqtt.com -p 13487 -u test -P test -t /room02/Temperature -m 20.4

-------------------------------------------------------------------------------

วันอาทิตย์ที่ 20 มีนาคม พ.ศ. 2559

Sonoff Hack! ขา pin ต่างๆ สำหรับ upload โคดเอง


ขา pin ของ Sonoff เป็นไปตามภาพนี้

*ข้อควรระวัง ขา Rx ฝั่งนึง จะต่อกับขา Tx อีกฝั่งนึงเสมอ
และก่อนเสียบ USB to TTL ให้กดปุ่ม GPIO 0 ค้างไว้ หลังเสียบเสร็จค่อยปล่อย

ที่เหลือก็  upload/flash ได้ตามปกติ และจะได้ครั้งเดียว ต้องถอดเสียบใหม่ทำเหมือนเดิม



วันพฤหัสบดีที่ 3 มีนาคม พ.ศ. 2559

วิธีสำเนาโปรแกรมในรอมของ NodeMCU / Witty Node ESP8266


บางครั้ง การ compile และ upload ตัวโปรแกรมลงสู่รอมของ NodeMCU ที่ซ้ำๆกันจำนวนมาก
เสียเวลาต้องมา compile เพื่อ upload ใหม่

เรามาดูวิธีการดูด โปรแกรมที่ upload ขึ้นรอมไปแล้ว กันดีกว่า
โดยตัวโปรแกรมรอมที่ได้จะเป็น binary ไม่ใช่ source code
(คือไม่สามารถดู source code ได้แต่ไว้ทำสำเนา)


ขั้นตอนคือ ใช้โปรแกรม esptool เลย
โดย esptool เราจะพึ่ง script ที่เป็นภาษา python

ฉะนั้น ต้องลง python ให้เรียบร้อยเสียก่อน
และไปหา esptool.py มาใช้งาน

สำหรับคำสั่งการดูดตัว rom ออกมา ในช่วง 1Mb แรก ที่เป็นพื้นที่ปกติของ NodeMCU / WittyNode
ที่เอาไว้ใส่ rom binary มีดังนี้

python esptool.py -b 115200 --port COM3 read_flash 0x000000 0x100000 flash_1M.bin


ให้เปลี่ยน ค่า port ให้ตรงกับที่ NodeMCU/WittyNode เสียบไว้อยู่
กำหนดความเร็วที่ 115200
เพื่อทำการอ่านตั้งแต่ address 0x000000 โดยมีขนาด 0x100000
(หรือ 1Mb อันเป็นพื้นที่สูงสุดในส่วนไว้ลงโปรแกรมทำให้ NodeMCU/ WittyNode ทำงาน)

จะใช้เวลาดูดออกมาสักพัก และไปอยู่ที่ไฟล์ชื่อ flash_1M.bin


จากนั้น ก็เอา NodeMCU / WittyNode Esp8266 อีกตัวมา upload รอมที่ได้เข้าไป ด้วยคำสั่ง

python esptool.py -b 115200 --port COM9 write_flash --flash_freq 80m 0x000000 flash_1M.bin

แก้ค่า port ให้ตรงกับ NodeMCU ตัวใหม่ที่เสียบให้ถูกต้อง
ก็เป็นอันสำเนารอมให้ตรงกับตัวแรกทุกประการ โดยไม่ต้องทำการ compile ใหม่




วันพุธที่ 2 มีนาคม พ.ศ. 2559

การ Flash NodeMCU/ Witty Node คราวละหลายๆ อัน


หลังจากการทำโปรแกรมเสร็จ
หากต้องการทำ flash ทีละหลายๆ อันพร้อมๆกันให้ทำดังนี้

1. flash ปกติชิ้นงานอันแรกด้วย ArduinoIDE* จะได้ ไฟล์ bin ออกมา ให้ save เก็บไว้
ตัวอย่างจะใช้ blink.ino ของ esp8266 เป็นตัวอย่าง

(* สำหรับ ArduinoIDE 1.6.7 หาก เป็น 1.6.8 จะถูกซ่อนไปแล้วต้องใช้ search file นามสกุล .bin เอา )





หลัง sketch/flash ผ่าน Arduino จะได้ Blink.ino.bin ออกมา ให้ save เก็บไว้
เพื่อจะนำไป flash ต่อเองภายหลังที่ address 0x00000000



2. เราใช้ โปรแกรม NodeMCU Firmware Programmer
เปิดหลายๆหน้าต่าง เพื่อทำการ flash  Blink.ino.bin พร้อมๆกันได้ตามต้องการเลย