21-12-2023, 05:02 PM
ESP8266 DHT11 ส่งข้อมูล อุณหภูมิและความชื้น ขึ้น Thingsboard Server 2 Server พร้อมกัน
โค้ด:
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <ThingsBoard.h>
// Replace with your WiFi credentials
const char* ssid = "ชื่อไวไฟ";
const char* password = "รหัสไวไฟ";
// Replace with your ThingsBoard server information
const char* thingsboardServer1 = "ce.iotbb.com";
const char* deviceToken1 = "token1";
const char* thingsboardServer2 = "pe.iotbb.com";
const char* deviceToken2 = "token2";
// Create a DHT object
#define DHTPIN D2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Create ThingsBoard clients
WiFiClient espClient1;
ThingsBoard tb1(espClient1);
WiFiClient espClient2;
ThingsBoard tb2(espClient2);
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Connect to ThingsBoard servers
tb1.connect(thingsboardServer1, deviceToken1);
tb2.connect(thingsboardServer2, deviceToken2);
}
void loop() {
float temperature, humidity;
// Read temperature and humidity from DHT sensor
temperature = dht.readTemperature();
humidity = dht.readHumidity();
if (!isnan(temperature) && !isnan(humidity)) {
Serial.println("DHT11 Readings:");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Send data to ThingsBoard servers
tb1.sendTelemetryFloat("temperature", temperature);
tb1.sendTelemetryFloat("humidity", humidity);
tb2.sendTelemetryFloat("temperature", temperature);
tb2.sendTelemetryFloat("humidity", humidity);
Serial.println("Data sent to ThingsBoard");
} else {
Serial.println("Failed to read DHT11 data. Check connections and try again.");
}
delay(5000); // Delay for 5 seconds before reading data again
}