การใช้งานระบบเก็บข้อมูลออนไลน์ด้วย ThingSpeak®
ThingSpeak®
ThingSpeak® เป็นเว็บแอปพลิเคชันที่ให้บริการเก็บข้อมูลแบบต่อเนื่องตามเวลา หน้าเว็บ thingspeak.com
แสดงดังรูปที่ ข.1 โดยการใช้เว็บแอปพลิเคชันนี้ทำให้เราสามารถเก็บข้อมูลที่อ่านได้จากเซนเซอร์ผ่านไมโครคอนโทรลเลอร์ได้อย่างต่อเนื่อง
ซึ่งเหมาะสำหรับการจัดเก็บข้อมูลบางประเภท โดยเราจะต้องอาศัยการสื่อสารข้อมูลผ่านระบบอินเตอร์เน็ต
ซึ่งเราหรือบุคคลอื่นที่เราอนุญาตสามารถเรียกดูและนำข้อมูลที่จัดเก็บออกมาได้ผ่านเว็บแอป-พลิเคชันนี้ โดย ThingSpeak มีให้บริการทั้งในรูปแบบมีค่าใช้จ่าย และไม่มีค่าใช้จ่าย ซึ่งสำหรับการบริการแบบไม่มีค่าใช้จ่ายนั้น
ผู้ให้บริการได้จำกัดการบันทึกข้อมูลไว้ด้วยอัตราสูงสุด 1 ครั้ง ในช่วงเวลา 15
วินาที
รูปที่
ข.1
แสดงหน้าเว็บ ThingSpeak.com
การใช้งาน
ThingSpeak
เบื้องต้น
ก่อนเริ่มใช้งาน ThingSpeak เราจะต้องสมัคร (Sign Up) เสียก่อน โดยการเข้าที่เว็บ
https://thingspeak.com เพื่อทำการสมัครสมาชิก กรอกข้อมูลเพื่อลงทะเบียนเปิดใช้งาน
เมื่อทำการสมัครสมาชิกเสร็จสิ้น ทำการ Sign In
เพื่อทำการสร้าง Channel โดยให้เรากดไปที่ My Channel
แล้วเลือก New Channel จะปรากฎหน้าต่าง ดังแสดงในรูปที่
ข.2
รูปที่
ข.2
หน้าต่างแสดงการกำหนด Channel
ในการบันทึกข้อมูล
จากนั้นจึงทำการการกำหนดชื่อของ Channel กรอกคำอธิบาย กรอกชื่อชนิดของข้อมูลที่ต้องการบันทึก ตัวอย่างในรูปที่ ข.2
แสดงการบันทึกชื่อที่กำหนดในการอ่านค่าจากเซนเซอร์ LDR
โดยกำหนดชื่อ LDR ในฟิลด์ของข้อมูล
Field 1 หลังจากนั้นจึงเลื่อนลงมาเพื่อบันทึก (Save
Channel)
รูปที่
ข.3
หน้าต่างแสดงปุ่มบันทึก Channel
ที่สร้าง
จากนั้นเราจะตรวจพบ Channel ที่เราสร้างขึ้นภายใต้เมนู
My Channel โดยเมื่อเลือกเมนู จะพบปุ่ม API Key (รูปที่ ข.4) ซึ่งเราจะต้องทำการจดบันทึกค่า ID และ API
Key เพื่อนำไปใส่ในโปรแกรมที่เขียนลงในไมโครคอนโทรลเลอร์ เพื่อระบุเส้นทางการส่งข้อมูล
เมนู ตัวอย่างค่า ID และ API Key แสดงดังรูปที่
ข.5
รูปที่
ข.4 หน้าต่างแสดง
Channel
ที่สร้างขึ้น
รูปที่
ข.5 หน้าต่างแสดง
ID
และ API Key
การเชื่อมต่อกับ
ThingSpeak®
ThingSpeak® ได้จัดเตรียมไลบรารีและตัวอย่างไฟล์สำหรับการเชื่อมต่อไว้
โดยผู้ใช้สามารถดาวน์โหลดได้จาก https://github.com/mathworks/thingspeak-arduino และ https://github.com/nothans/thingspeak-esp-examples เมื่อผู้ใช้ได้ทำการติดตั้งไลบรารีแล้วก็จะสามารถเรียกใช้ไลบรารีใน ThingSpeak ได้โดยใช้คำสั่ง #include
Thing Speak.h สำหรับแนวการเขียนโค้ดเบื้องต้นในการส่งข้อมูลจากสัญญาณ
A0 ไปเก็บยัง ThingSpeak ผู้ใช้สามารถศึกษาได้จากโค้ดตัวอย่าง (จากไฟล์ A0_to_ThingSpeak.ino ที่อยู่ใน thingspeak-esp-examples-master) โดยในตัวอย่างที่แสดงนี้จะมีคำอธิบายจากผู้พัฒนาอยู่ด้วย ดังแสดงข้างล่างนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 353 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
/* ESP8266 --> ThingSpeak
Channel This sketch sends the value of Analog
Input (A0) to a ThingSpeak
channel using the ThingSpeak API */ #include "ThingSpeak.h" #include "secrets.h" unsigned long myChannelNumber
= SECRET_CH_ID; const char * myWriteAPIKey
= SECRET_WRITE_APIKEY; #include <ESP8266WiFi.h> char ssid[] = SECRET_SSID; char pass[] =
SECRET_PASS; WiFiClient
client; void setup() {
Serial.begin(115200);
delay(100);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client); } void loop() {
// Connect or reconnect to WiFi if (WiFi.status() != WL_CONNECTED) {
Serial.print("Attempting
to connect to SSID:"); Serial.println(SECRET_SSID); while (WiFi.status() != WL_CONNECTED) { WiFi.begin(ssid, pass); Serial.print("."); delay(5000); } Serial.println("\nConnected.");
}
// Measure Analog Input (A0)
int valueA0 = analogRead(A0); // Write value to Field 1 of a ThingSpeak Channel
int httpCode = ThingSpeak.writeField(myChannelNumber, 1, valueA0, myWriteAPIKey);
if (httpCode == 200) { Serial.println("Channel
write successful.");
}
else { Serial.println("Problem
writing to channel. HTTP error code " + String(httpCode));
}
// Wait 20 seconds to
update
the channel again
delay(20000); } |
โดยไฟล์ Secrets.h ที่เรียกในตอนแรก จะใช้เก็บ SSID
และรหัสผ่านของระบบเครือข่ายที่ NodeMCU เชื่อมต่ออยู่
และเก็บ ID และ API Key ของผู้ใช้ ThingSpeak (ดูรูปที่ ข.5)
เมื่อทำการอัปโหลดโปรแกรมแล้วปล่อยให้
NodeMCU
ทำงานไปสักพักหนึ่ง (เนื่องจากข้อมูลจะเก็บทุก ๆ 20 วินาที
ตามโค้ดที่แสดงข้างบน) เราก็จะสามารถเรียกดูข้อมูลที่เก็บในเว็ป ThingSpeak ได้ ตัวอย่างข้อมูลแสดงดังรูปที่
ข.6 โดยผู้ใช้สามารถนำข้อมูลที่บันทึกไว้ออกมาหรือนำข้อมูลไปวิเคราะห์ร่วมกับข้อมูลอื่น
ๆ ได้ในลำดับต่อไป
รูปที่
ข.6 หน้าต่างแสดงข้อมูลที่บันทึกไว้