เอาล่ะครับ เพื่อเป็นการตอบรับ เกี่ยวกับ Internet of Thing ที่กำลังจะมีบทบาท และ จะเป็นส่วนหนึ่งของชีวิตประจำวันของเราต่อไป ทางเราจึงได้ออกบทความชุดแรก เกี่ยวกับ การประยุกต์ สร้าง Sensor Electronic ผ่าน Platform Arduino ซึ่งหาง่าย มาเชื่อมต่อกับเครือข่าย Internet
มารู้จัก Thingspeak
Thingspeak เป็นบริการ Platform as a Services ที่ให้บริการ เก็บข้อมูลแบบ Real-time, แสดงข้อมูลกราฟ จากที่ใดก็ได้ในโลก และ สามารถเปิดดูจากที่ไหนก็ได้ อีกเช่นกัน ซึ่งก็คล้ายกับ data.sparkfun.com แต่สิ่งที่ต่างกัน คือ Thingspeak จะแสดงผลข้อมูลผ่านกราฟได้ และ ดึงข้อมูล (PUT DATA) ไปใช้แสดงผลที่เวปเราได้ผ่าน <iframe> ซึ่งมัน update realtime ด้วย ซึ่งมีทั้งบริการทั้งแบบฟรี และ เสียเงิน แต่ในเวอร์ชั่นฟรี จะยอมให้เราบันทึกข้อมูล ทุกๆ 15 วินาที นะครับ
1. HTTP Request
การส่งข้อมูลจะส่งโดยใช้ GET Method รูปแบบของ HTTP Request แบบที่ data.sparkfun.com ใช้งาน สำหรับ Thinkspeak จะใช้รูปแบบดังรูป
2. REST API (Representational State Transfer)
เป็น Web Service แบบเรียบง่าย โดยเรียกใช้ผ่านทาง HTTP Method GET/POST/PUT/DELETE ซึ่งมันออกแบบไว้เป็น เชื่อมต่อกับจัดการฐานข้อมูล แสดงผล, เพิ่มรายการ, แก้ไขรายการ และ ลบรายการ ซึ่งมันทำได้มากกว่า HTTP Request
Method | การทำงาน | รูปแบบ URI |
---|---|---|
GET | เรียกข้อมูลมาแสดงหลายรายการ | http://example.com/tests/ |
เรียกข้อมูลมาแสดงทีละรายการ | http://example.com/tests/123 | |
POST | เพิ่มข้อมูล | http://example.com/tests/ |
PUT | แก้ไขข้อมูล | http://example.com/tests/123 |
DELETE | ลบข้อมูล | http://example.com/tests/123 |
ซึ่งใน API ของ Thinkspeak ใช้แค่ GET และ POST ครับ ซึ่งเราจะใช้แบบ HTTP Request เหมือนเดิมก็ได้นะครับ แต่ในบทความนี้ ทางผมจะเลือกใช้ REST API บ้าง เพื่อให้ที่พวกเราเห็นวิธีการส่งข้อมูล หลากหลายรูปแบบครับ ซึ่งใครอยากลอง HTTP Request ลองเอง ก็ได้ครับ ไม่ยาก แค่จัด format ที่จะ Request ใหม่เท่านั้น
เริ่มต้นกันเลย
- สิ่งที่แรกที่ต้องทำ ลงทะเบียนกับทาง เวป ThingSpeak
- สร้างช่องของคุณ Channels page โดยการ click Create New Chaanel
- จากนั้นเราจะได้ API Key สำหรับ เขียนข้อมูลเข้า Server
- จากนั้นเราส่งข้อมูลเข้า Server ได้เลย ครับ
สร้าง Package สำหรับส่งให้ Web Server
Package ข้อมูลที่ จะใช้ส่งไปยัง WebServer ซึ่งจะประกอบไปด้วยค่าของ API Key และ ข้อมูลของ field
โดยใน Arduino เราจะสร้าง Package นี้โดย ซึ่งใน tsData จะเป็นข้อมูลอื่น ก็ได้นะครับ หรือ จะต่อมากกว่า 1 ข้อมูล ก็ได้นะครับ
client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: "+writeAPIKey+"\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(tsData.length()); client.print("\n\n"); client.print(tsData);
ดูเพิ่มเติมจาก https://thingspeak.com/docs/channels
เข้าไปดูโค๊ดทั้งหมดได้ที่ลิงค์นี้ Thinkspeak_rest.ino
เอาล่ะครับ คงได้เห็นการประยุกต์ ESP8266 ไมโครคอนโทรลเลอร์ Standalone ตัวเดียวที่ใช้ ส่งข้อมูลเข้า Server ได้ ตอนนี้ก็อยู่ที่เราล่ะจะเอาไปประยุกต์อะไรกัน
เพิ่มเติม
- A Beginner’s Guide to HTTP and REST มาทำความเข้าใจการใช้ RESTFul
ดีมากเลยครับ ขอบคุณครับ