Review : ESPresso Lite จาก ESPert

27 Dec 2015 Review : ESPresso Lite จาก ESPert

ถ้าพูดถึง ESP8266 น้อยคนที่จะไม่รู้จัก  เพราะกระแส IoT เค้ามาแรงมาก ๆ  ก็เลยทำให้ช่วงที่ผ่านมามีโมดูล ESP8266  ออกมาหลายรุ่น   ตั้งแต่ ESP01 – ESP13 และคาดว่าจะมีออกมาอีก  ซึ่งแต่ละโมดูลจะใช้ชิพ ESP8266 ตัวเดียวกัน (ESP8266EX)  แต่จะต่างกันที่ขนาดของ Flash Memory และ Pin Out ของแต่ละโมดูลนั่นเอง   สำหรับบอร์ด ESPresso Lite นั้นจะใช้โมดูล ESP-WROOM-02 ซึ่งออกแบบโดย Espreesif (ผู้ผลิตชิพ ESP8266)  และยังมี   FCC, CE, TELEC, and SRRC certifications. อีกด้วย (อ้างอิงจาก CNX-SOFTWARE)

หลังจากมีโมดูล ESP8266 ออกมาหลายรุ่น  ก็มีคนออกแบบบอร์ดสำหรับนักพัฒนาโดยใช้โมดูลรุ่นต่าง  ๆ  เช่น NodeMCU ซึ่งเป็นการนำโมดูล ESP8266 มาต่อกับ USB2Serial และออกแบบ PinOut ให้นักพัฒนาได้ใช้งานง่ายขึ้น  ซึ่งนักพัฒนาจะก็จะต้องต่ออุปกรณ์ต่าง ๆ บน Breadboard เพื่อเรียนรู้และพัฒนางานต่าง ๆ

 

espresso_lite_prototype

ต่อมาทางทีม ESPert โดยคุณหมอจิมมี่ (@mozeal) และ คุณ William (@willhooi) ก็ได้ออกแบบบอร์ด ESPresso Lite สำหรับ Maker  นอกจากตัวบอร์ดแล้วยังมี Platform รองรับ  ทำให้นักพัฒนาเรียนรู้และเข้าใจ IoT ได้ง่ายขึ้นอีกด้วย    ซึ่งบอร์ดนี้เหมาะสำหรับผู้ต้องการศึกษาการทำงานของ IoT  เพราะจะได้เห็นภาพรวมการทำงานทั้ง Platform เลยครับ    เกริ่นมาซะยาวเลย   เรามาดูบอร์ด ESPresso Lite กันเลยดีกว่าครับ

espresso-arduino_qhgely

มาเริ่มกันด้วย ESP-WROOM-02 Features

  • IEEE 802.11b/g/n at 2.4 GHz
  • Integrated low power 32-bit MCU
  • Integrated 10-bit ADC
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • Integrated PLL, regulators, and power management units
  • Various interfaces available, including SDIO, HSPI, UART, I2C, I2S, IR, PWM, GPIO, etc.
  • Supports antenna diversity
  • Deep sleep power <10uA, Power down leakage current < 5uA
  • Wake up and transmit packets in < 2ms
  • Standby power consumption of < 1.0mW (DTIM3)
  • +20dBm output power in 802.11b mode
  • Operating temperature range -40C ~ 125C
  • FCC, CE and TELEC certified

Espresso Lite IO

  • มีช่องสำหรับเสียบเซนเซอร์วัดอุณหภูมิ DHT22 เชื่อมต่อกับ GPIO12 และ GPIO14
  • มีช่องสำหรับเสียบจอ Oled เชื่อมต่อผ่าน I2c
  • มี LED 1 ดวง เชื่อมต่อกับ GPIO16
  • มี Switch 1 ตัวเชื่อมต่อกับ GPIO2
  • Serial Port Pinout สำหรับ Flash Program
  • IO อื่น ๆ ตาม Diagram

 

จะเห็นว่าเราสามารถใช้ ESPresso Lite  ศึกษาเรื่องการใช้งาน GPIO เป็น Input และ Ouput ได้เลยจากการใช้งาน LED และ Switch   และสามารถใช้ต่ออุปกรณ์ยอดฮิต  เพื่อแสดงผลอุณหภูมิและความชื้น อย่าง Oled และ DHT22 ได้  นอกจากนี้ก็ยังมี PinOut สำหรับต่อ IO อื่น ๆ อีกด้วย  ถึงตรงนี้หลายคนอาจจะบอกว่าบอร์ดตัวอื่นก็ทำได้เหมือนกัน  ….  ใช่ครับ บอร์ดอื่นๆ ก็ทำได้เหมือนกัน   แต่ ….. อย่างที่บอกว่าเค้าทำมาเป็น Platform มันไม่ได้มีดีแค่บอร์ดแน่นอน   งั้นเรามาดูส่วนอื่นกันต่อเลยดีกว่า

 ESPert Library (Arduino IDE Compatible)

เราสามารถไปดาวน์โหลด Library ของ ESPert ได้จาก https://github.com/JimmySoftware/ESPert  ซึ่งรองรับการใช้บน Arduino IDE   โดยจะมีตัวอย่างการใช้งานหลายตัวอย่างเลยครับ

espert_lib_01

สำหรับการใช้งานก็เพียงแค่สร้าง Object ESPert ขึ้นมาก็เรียกใช้งานได้เลยครับ  ง่ายมาก ๆ

espert_lib_oled

ส่วนที่จะไม่พูดถึงไม่ได้เลยของ Library ESPert คือการตั้งค่า WIFI  เพราะเป็นปัญหาสำหรับ Maker หลาย  ๆ คนว่าจะเก็บค่า Config พวก SSID และ Password ยังไงดี   บางคนก็ฝังลงไปในโค้ดเลย  พอเปลี่ยนรหัสทีก็ Flash โค้ดเข้าไปใหม่  คือมันยุ่งยากพอสมควรครับ

เนื่องจากอุปกรณ์ IoT เราต้องเชื่อมต่ออินเตอร์เน็ต ดังนั้นค่า Config ที่เราจำเป็นต้องเก็บก็คือค่า SSID และ Password ซึ่งทำงานใน Station mode เพื่อให้ ESPresso Lite สามารถเชื่อมต่อกับ Access Point ตัวอื่นได้   ดังนั้น ESPert จึงออกแบบให้เราสามารถแก้ไขค่า Config ได้ 2 วิธี  คือ

espert_ap_config
1.  เข้า AP Mode แล้วให้ User เข้ามาแก้ไข Config ผ่านหน้าเว็บ
2. แก้ไขค่า Config ผ่าน SmartConfig ซึ่งต้องใช้ App ช่วยในการส่งค่า Config

เราสามารถเข้า Config Mode โดยการกดสวิตต์ (S3) ค้างไว้  ตอนที่บอร์ดกำลัง Initial ค่า WIFI ครับ

MQTT Broker & MQTT Websocket Client

mqtt_websocket_client

ESPert จะมี MQTT Broker ไว้ให้เราใช้งานอยู่ที่ mqtt.espert.io และมี MQTT WebSocket Client อยู่ที่ https://www.espert.io/mqtt ทำให้เราสามารถ Publish หรือ Subscribe ดูข้อมูลจากหน้าเว็บได้เลย  ตรงนี้ค่อนข้างมีประโยชน์  เพราะเราสามารถใช้ MQTT WebSockert Client สำหรับ Debug ดูข้อมูลได้  โดยไม่ต้องไปหา MQTT Client ตัวอื่นมาใช้งาน  สำหรับคนที่ยังงงอยู่ว่า MQTT มันคืออะไร  แนะนำให้ไปอ่าน Blog ของน้องพลอยดูครับ

ในตัวอย่างด้านบนจะเป็นตัวอย่างง่าย ๆ คือ การส่ง  Button Status  ซึ่งสามารถทดลองได้เลยโดยไม่ต้องต่ออุปกรณ์อื่น ๆเพิ่มเติม  เมื่อมีการกดหรือปล่อย Button บอร์ด ESPresso Lite ก็จะ Publish ข้อมูลไปยัง MQTT Broker  สามารถดูตัวอย่าง Code ได้จาก Github ครับ

 

FreeBoard

mqtt_freeboard

หลังจากที่เราเข้าใจการใช้งาน MQTT แล้ว และอยากนำข้อมูลที่ได้จากการ Subscribe มาแสดงในรูปแบบของ GUI ทาง ESPert ก็ได้เตรียม Freeboard ไว้ให้   โดยเข้าไปใช้งานได้ที่  https://www.espert.io/freeboard/ สำหรับวิธีใช้งานโดยละเอียดเหมือนเดิมครับไปดูได้ที่ Blog น้องพลอย ฮ่า ๆ

Smart Phone & Push Notification

espert_ios_push

เนื่องจากในหัวข้อนี้เราไม่มีมือถือ Android และ ยังติดปัญหาเรื่องการลง ESPert บน iOS   ก็จะพูดถึงหัวข้อนี้คร่าว ๆ นะครับ  สำหรับคนที่มีมือถือ Android สามารถโหลด App มาใช้งานได้เลย  โดยสามารถเข้าไป Download App ได้ที่นี่

ความสามารถหลัก ๆ คือ เราสามารถส่ง Push Notification เข้ามือถือโดยใช้แค่การส่ง HTTP GET  พูดง่าย ๆ ก็คือเราสามารถให้ตัว ESPresso Lite ส่ง Push Notification เข้ามือถือเราได้เลย   อาจจะไปประยุกต์ใช้กับการแจ้งเตือนต่าง ๆ ได้   เช่น อ่านค่าอุณหภูมิ  แล้วแจ้งเตือนไปยังมือถือ  เมื่ออุณหภูมิสูงกว่าหรือต่ำกว่าค่าปกติ   ซึ่งใน Github ก็จะมีตัวอย่างการแจ้งเตือนเมื่อกดสวิต์บนบอร์ดครับ

 

สำหรับใครที่มีบอร์ดอยู่ในมือแล้วสามารถเข้าไปดูบทความ 5 ขั้นตอนง่าย ๆ เพื่อเริ่มใช้งาน ESPresso Lite ได้เลย

Comments

comments