NB-IOT : Mega2560 – DHT22
ว่าแล้วก็ลอง NB-IOT ในการส่งค่า จาก DHT22 ร่วมกับบอร์ด Mega2560
// DHT Temperature & Humidity Sensor // Unified Sensor Library Example // Written by Tony DiCola for Adafruit Industries // Released under an MIT license. // Depends on the following Arduino libraries: // - Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor // - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library // Use 3V3 GIOP 2 ESP32 Dev Module // Programmer AVRSIP mkll #include <Adafruit_Sensor.h> #include <DHT.h> // กรณีนี้ต้องใช้คู่กันกับ DHT_U.h #include <DHT_U.h> #define DHTPIN 31 // Pin which is connected to the DHT sensor. // Uncomment the type of sensor in use: //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // See guide for details on sensor wiring and usage: // https://learn.adafruit.com/dht/overview DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS; #include <AltSoftSerial.h> /* supported board and hardware competible Arduino UNO please use software serial on pin8=RX pin9=TX and pin4=RST Arduino MEGA please use software serial on pin48=RX pin46=TX and pin4=RST NUCLEO_L476RG please use Hardware serial on pin2=RX pin8=TX and pin4=RST NodeMCU-32S please use Hardware serial on RX2=RX TX2=TX and 3V3=IOREF Pre required install library - Altsoftserial Example for post random data to Magellan IoT Platform please use payload with json format e.g. {"Temperature":25.5,"Humidity":90.4} and {"Location":["13.001","100.44"]} for plot the location on MAP | | latitude longitude and {"Lamp":0} or {"Lamp":1"} for show the Lamp status on dashboard */ #include "Magellan.h" Magellan magel; char auth[]="caf1b1b0-0ba8-11ea-810a-f990cf998f9d"; //Token Key you can get from magellan platform float Temp ; float Humid ; String Temperature ; String Humidity ; String payload; void AM2302_setup() { //Serial.begin(115200); // Initialize device. dht.begin(); Serial.println("DHTxx Unified Sensor Example"); // Print temperature sensor details. sensor_t sensor; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Temperature"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" *C"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" *C"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" *C"); Serial.println("------------------------------------"); // Print humidity sensor details. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Humidity"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println("%"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println("%"); Serial.println("------------------------------------"); // Set delay between sensor readings based on sensor details. delayMS = sensor.min_delay / 1000; } void setup() { Serial.begin(9600); magel.begin(auth); //init Magellan LIB AM2302_setup(); } void loop() { /* Example send random temperature and humidity to Magellan IoT platform */ AM2302_loop(); //String Temperature=String(dht.temperature()); //String Humidity=String(dht.humidity()); Temperature = String(Temp); Humidity = String(Humid); payload="{\"Temperature\":"+Temperature+",\"Humidity\":"+Humidity+"}"; //please provide payload with json format magel.post(payload); //post payload data to Magellan IoT platform } void AM2302_loop() { // Delay between measurements. delay(delayMS); // Get temperature event and print its value. sensors_event_t event; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Error reading temperature!"); } else { Serial.print("Temperature: "); Serial.print(event.temperature); Temp = event.temperature; Serial.println(" *C"); } // Get humidity event and print its value. dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println("Error reading humidity!"); } else { Serial.print("Humidity: "); Serial.print(event.relative_humidity); Humid = event.relative_humidity; Serial.println("%"); } }