วันศุกร์ที่ 16 มิถุนายน พ.ศ. 2560

Thingspeak


การทดลองใช้งาน Thingspeak.com สำหรับบริการด้าน IoT

บทความนี้กล่าวถึง การทดลองใช้งาน Thingspeak.com ซึ่งระบบ Cloud Service ที่ให้บริการด้าน IoT (Internet of Things) หรือ "อินเทอร์เน็ตของสิ่งต่างๆ" สามารถเก็บ แบ่งปัน และแสดงผลข้อมูล (Save, Share, Visualize Data) ตามรูปแบบหรือสถาปัตยกรรมทางซอฟต์แวร์ที่เรียกว่า RESTful Web Services ผ่านโปรโตคอลแบบ HTTP และสะดวกต่อการนำไปพัฒนา Web Apps

IoT 

 IoT: Internet of Things (บางทีเรียก IoE : Internet of Everything) หรือ “อินเตอร์เน็ตในทุกสิ่ง”หมายถึงการที่สิ่งต่างๆถูกเชื่อมโยงทุกสิ่งทุกอย่างสู่โลกอินเตอร์เน็ตทำให้มนุษย์สามารถสั่งการควบคุมการใช้งานอุปกรณ์ต่างๆ ผ่านทางเครือข่ายอินเตอร์เน็ต เช่น การเปิด-ปิด อุปกรณ์เครื่องใช้ไฟฟ้า รถยนต์ โทรศัพท์มือถือ เครื่องมือสื่อสาร เครื่องมือทางการเกษตร อาคาร บ้านเรือน เครื่องใช้ในชีวิตประจำวันต่างๆ ผ่านเครือข่ายอินเตอร์เน็ต เป็นต้น


ควบคุมหลอดไฟ LED ผ่าน Internet

Create Thing & Channels
Thing ก็คือ อุปกรณ์ที่เชื่อมต่อกับ Anto เช่น NodeMCU , ESP8266 เป็นต้น
Channel ก็คือ ช่องเก็บข้อมูลต่างๆ เช่น ข้อมูลของเซนเซอร์วัดอากาศ ข้อมูลการกดปุ่ม เป็นต้น
ตัวอย่างเช่น ในโปรเจคนี้
เราใช้ NodeMCU หนึ่งตัวในการควบคุม LED 3 หลอด
สรุปที่เราต้องสร้างก็คือ เรามี NodeMCU (1 Thing) ที่ต้องการเก็บค่าในการควบคุม LED (3 Channel)

ขั้นตอนการสร้าง
Login เข้าสู่เว็บไซค์ https://thingspeak.com/ กรอก Username และ Pasword ให้ถูกต้อง
กดเข้าไปที่ Thing จากเมนูทางด้านซ้าย
กด  + Add new thing ในการสร้าง Thing กรอกรายละเอียด



สร้าง Channel



เข้ามาที่แถบเมนู Key ทางด้านซ้ายมือเพื่อเข้ามาสร้าง key ในการเชื่อมต่อฮาร์ดแวร์
สร้าง Key
แล้วกดเลือก Permission ให้กับ Chanal ทั้ง 3 เป็น Read และ Update ดังรูป
แล้วกด Add new 



เขียนโปรแกรม
เปิดเข้าโปรแกรม Arduino IDE เลือกบอร์ดที่ใช้เป็น WeMos D1 mini
เลือก Port ในการลงโปรแกรม
Add Anto Lib
เปิดโปรแกรม File à Example à Anto à DigitalOutputGPIO
แก้ไขส่วน Anto
-          USER Name :
-          Key :
-          Thing Name :
-          Name ของแต่ละ Channel :
แก้ไขส่วน Wifi for WeMos
-          SSID :
-          Password :

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <Wire.h>
#include "ClosedCube_HDC1080.h"
ClosedCube_HDC1080 hdc1080;
int StepCount = 1;
String thinkKey = "UGH983OMQO0YURAJ";
const char* ssid = "Dream";
const char* password = "dream1234";
const char* host = "api.thingspeak.com";
const int httpsPort = 443;
// Use web browser to view and copy
// SHA1 fingerprint of the certificate
const char* fingerprint = "CF 05 98 89 CA FF 8E D8 5E 5C E0 C2 E4 F7 E6 C3 C7 50 DD 5C";
void setup() {
Serial.begin(115200);
Serial.println();
Serial.print("connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Use WiFiClientSecure class to create TLS connection
hdc1080.begin(0x40);
}
void loop() {
//https://api.thingspeak.com/update…
if (StepCount % 30 == 0) {
WiFiClientSecure client;
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpsPort)) {
Serial.println("connection failed");
return;
}
if (client.verify(fingerprint, host)) {
Serial.println("certificate matches");
} else {
Serial.println("certificate doesn't match");
}
String url = "/update?api_key=" + thinkKey + "&field1=";
Serial.print("requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + hdc1080.readTemperature() + "&field2=" + hdc1080.readHumidity() + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
Serial.println("request sent");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
String line = client.readStringUntil('\n');
if (line.toInt()>0) {
Serial.println("Push Sucess !!");
} else {
Serial.println("Fail!!!");
}
Serial.println("reply was:");
Serial.println("==========");
Serial.println(line);
}
delay(1000);
Serial.print("Time: ");
Serial.println(StepCount++);
}

เมื่อแก้ไขโค้ดเสร็จแล้วก็ Upload โปรแกรมเป็นอันเสร็จสิ้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

NI labview 2014

NI labview 2014 โปรแกรม LabVIEW ย่อมาจาก Laboratory Virtual Instrument Engineering Workbench โปรแกรมที่ พัฒนาขึ้นมาโดยใช้ LABVIEW ...