การทำ cloud iot ด้วย thingsboard ไว้ใช้เองครับ
ปัจจุบันอุปกรณ์พวก IOT เช่น Arduino หรือ Raspberry ถูกนำมาใช้กันอย่างแพร่หลาย เมื่อต้องการเก็บข้อมูลเราต้องใช้บริการพวก cloud iot ที่มีอยู่อย่างหลากหลายเช่น Netpie , Thingspeak ,iottweet และอีกหลากหลาย แต่บริการเหล่านี้ เราต้องฝากข้อมูลไว้ที่ข้างนอก ซึ่งอาจจะไม่ปลอดภัย ทางที่ดีที่สุด คือ เราควรเก็บข้อมูลเหล่านั้นไว้เอง thingsboard จึงเป็นทางเลือกที่หน้าสนใจ และเป็น open source ด้วย และมี widget graph ต่างๆ สวยงาม
การติดตั้งบนระบบปฏิบัติการ windows
ให้ติดตั้ง webserver ให้เรียบร้อยก่อน เช่น wamp หรือ xampp เป็นต้น
1. install java 8 https://java.com/en/download/
2. install (คู่มือ https://thingsboard.io/docs/user-guide/install/windows/ )
DataStax 64 bit http://downloads.datastax.com/community/datastax-community-64bit_3.0.9.msi
DataStax 32 bit http://downloads.datastax.com/community/datastax-community-32bit_3.0.9.msi
3.สร้าง folder สำหรับไฟล์ เช่น "C:\thingsboard"
จากนั้นก็ให้ ดาวน์โหลดไฟล์ แตกไฟล์ ใส่ในโฟล์เดอร์ที่เราสร้าง จากที่นี่ https://github.com/thingsboard/thingsboard/releases/download/v1.2.2/thingsboard-windows-1.2.2.zip
จากนั้น เข้า command prompt แบบ administrator คือ ให้คลิ๊กขวาเลือก run administrator แล้ว สั่งติดตั้งโดยให้เข้าไปที่ folder ที่เราสร้าง แล้ว พิมพ์ install.bat แล้วกด enter
C:\thingsboard>install.bat
Detecting if it is 32 bit machine CurrentVersion 1.8 Java 1.8 found! Installing thingsboard ... 2017-01-31 02:26:50,704 INFO - Starting ServiceWrapper in the CLI mode 2017-01-31 02:26:50,907 INFO - Completed. Exit code is 0 DONE.
พิมพ์ตามนี้ครับ
cqlsh> source 'c:\thingsboard\data\schema.cql';
cqlsh> source 'c:\thingsboard\data\system-data.cql';
cqlsh> source 'c:\thingsboard\data\demo-data.cql';
เป็นอันติดตั้งเรียบร้อย
ต่อไปเป็นการเปิดการใช้งาน
net start thingsboard
ผลลัพธ์
The Thingsboard Server Application service is starting.
The Thingsboard Server Application service was started successfully.
ตัวอย่างหน้าจอครับ
user & password สำหรับใช้งาน
System Administrator
- login - sysadmin@thingsboard.org.
- password - sysadmin
Demo Tenant
- login - tenant@thingsboard.org.
- password - tenant.
Demo tenant customers:
- Customer A users - customer@thingsboard.org or customerA@thingsboard.org.
- Customer B users - customerB@thingsboard.org.
- Customer C users - customerC@thingsboard.org.
- all users have “customer” password.
////// จบการติดตั้ง /////
ตัวอย่างใช้งาน esp8266 กับ DHT22 ส่งข้อมูลอุณหภูมิและความชื้น ขึ้นไปเก็บ
การตั้งค่าบน server
เข้าไปที http://localhost:8080 แล้ว login ด้วย user password ข้างล่าง
- login: tenant@thingsboard.org
- password: tenant
1. ไปที่เมนู “Devices” แล้ว Click “+” button
2. create device แล้วตั้งชื่อว่า “DHT11”.
3. หลังจากสร้างเรียบร้อยแล้วเปิดขึ้นมา และ click “Manage credentials” ให้ Copy auto-generated access token เพื่อนำ $ACCESS_TOKEN ไปใช้งาน
ตัวอย่าง code ครับ
#include "DHT.h"
#include <PubSubClient.h>
#include <ESP8266WiFi.h>
#define WIFI_AP "ssid"
#define WIFI_PASSWORD "wifi_password"
#define TOKEN "ehoNfBono2DGWGyx7wO6" // thingsboard token
// DHT
#define DHTPIN 5
#define DHTTYPE DHT11
char thingsboardServer[] = "192.168.1.6";
WiFiClient wifiClient;
// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);
PubSubClient client(wifiClient);
int status = WL_IDLE_STATUS;
unsigned long lastSend;
void setup()
{
Serial.begin(115200);
dht.begin();
delay(10);
InitWiFi();
client.setServer( thingsboardServer, 1883 );
lastSend = 0;
}
void loop()
{
if ( !client.connected() ) {
reconnect();
}
if ( millis() - lastSend > 1000 ) { // Update and send only after 1 seconds
getAndSendTemperatureAndHumidityData();
lastSend = millis();
}
client.loop();
}
void getAndSendTemperatureAndHumidityData()
{
Serial.println("Collecting temperature data.");
// Reading temperature or humidity takes about 250 milliseconds!
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
// if (isnan(h) || isnan(t)) {
// Serial.println("Failed to read from DHT sensor!");
// return;
//}
h = 60.00;
t = 38.00;
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
String temperature = String(t);
String humidity = String(h);
// Just debug messages
Serial.print( "Sending temperature and humidity : [" );
Serial.print( temperature ); Serial.print( "," );
Serial.print( humidity );
Serial.print( "] -> " );
// Prepare a JSON payload string
String payload = "{";
payload += "\"temperature\":"; payload += temperature; payload += ",";
payload += "\"humidity\":"; payload += humidity;
payload += "}";
// Send payload
char attributes[100];
payload.toCharArray( attributes, 100 );
client.publish( "v1/devices/dht11/", attributes );
Serial.println( attributes );
}
void InitWiFi()
{
Serial.println("Connecting to AP ...");
// attempt to connect to WiFi network
WiFi.begin(WIFI_AP, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
status = WiFi.status();
if ( status != WL_CONNECTED) {
WiFi.begin(WIFI_AP, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
Serial.print("Connecting to Thingsboard node ...");
// Attempt to connect (clientId, username, password)
if ( client.connect("ESP8266 Device", TOKEN, NULL) ) {
Serial.println( "[DONE]" );
} else {
Serial.print( "[FAILED] [ rc = " );
Serial.print( client.state() );
Serial.println( " : retrying in 5 seconds]" );
// Wait 5 seconds before retrying
delay( 5000 );
}
}
}
การตรวจสอบข้อมูลที่ส่งขึ้นไป
- login: tenant@thingsboard.org
- password: tenant
ให้ไปที่ “Devices” แล้วเลือก “ESP8266 Demo Device”
ต้องตั้งค่าให้อนุญาต ไม่งั้นมันจะไม่ยอมให้เรา connect
control panel -> windows firewall -> advance setting -> new rule -> protocol and ports
เลือก TCP -> specitfic local ports 8080 , 1883 , 5683 -> allow the connection
ที่มา https://thingsboard.io/docs/user-guide/install/windows/
รบกวนสอบถามครับ.
ตอบลบInstall.bat ไม่ได้ครับ. Fail Port 8080 (เปิด Firewall port แล้วครับ.)
"Connector configured to listen on port 8080 failed to start Thingsboard installation fialed!"
ความคิดเห็นนี้ถูกผู้เขียนลบ
ลบรบกวนขออีมเมลหรือเบอร์ติดต่อเจ้าของ Blog ด้วยครับผม
ตอบลบ