#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
#include <AltSoftSerial.h>
#include "PMS.h"
#include "DHT.h"
#include <Wire.h>
#include <BC95Udp.h>
#include <CoAP.h>
DHT dht;
PMS pms(Serial);
PMS:
ATA data;
AltSoftSerial bc95serial;
LiquidCrystal_I2C lcd(0x27, 16, 4);
BC95UDP udp;
Coap coap(udp);
#define iSYNC_KEY "5f2ce7daa592c1105dc194c4"
void responseHandler(CoapPacket *packet, IPAddress remoteIP, int remotePort) {
char buff[6];
Serial.println("#iSYNC -> NBIoT");
Serial.print("#[");
sprintf(buff, "%d.d", packet->code >> 5, packet->code & 0b00011111);
Serial.print(buff);
Serial.print("]-> DATA : ");
Serial.println();
Serial.println("#---");
}
void setup() {
bc95serial.begin(9600);
BC95.begin(bc95serial);
BC95.reset();
Serial.begin(9600);
dht.setup(2);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(F("PM2.5 = ")); //พิมพ์ข้อความ
lcd.setCursor(0, 2); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(F("humi = ")); //พิมพ์ข้อความ
lcd.setCursor(0, 3); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 1 บรรทัดที่ 1
lcd.print(F("temp = ")); //พิมพ์ข้อความ "arduinoall.com"
Serial.println(F("Starting..."));
while (!BC95.attachNetwork()) {
Serial.println("...");
delay(1000);
}
coap.response(responseHandler);
coap.start();
}
void loop() {
if (pms.read(data)) {
String pm2_5 = String(data.PM_AE_UG_2_5);
String pm1_0 = String(data.PM_AE_UG_10_0);
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
String humi = String (humidity);
String temp = String (temperature);
lcd.setCursor(7, 0); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(pm2_5 + String(" ug/m3")); //พิมพ์ข้อความ
lcd.setCursor(6, 2); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(humidity + String("%")); //พิมพ์ข้อความ
lcd.setCursor(6, 3); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 1 บรรทัดที่ 1
lcd.print(temperature + String("C") ); //พิมพ์ข้อความ "arduinoall.com"
String payload = "{\"pm2\":" + pm2_5 + ",\"pm10\":" + pm1_0 + ",\"hum\":" + humi + ",\"tem\":" + temp + "}";
Serial.println("#iSYNC <- NBIoT");
Serial.print("#DATA : ");
Serial.println(payload);
coap.iSYNC_POST(iSYNC_KEY, payload);
Serial.println("#---------------------------------------------------");
delay(10000); //10 วินาที
//delay(21600000); // 6 ชั่วโมง
//delay(1440000); // 4 ชม.
//delay(21600000);
}
}
คือผมเพิ่ม จอ lcd มา เเล้วไม่ยอมวนลูป แก้ยังไงครับ
ช่วยเเก้หน่อยครับ ไม่ยอมวนลูป
#include <LiquidCrystal_I2C.h>
#include <AltSoftSerial.h>
#include "PMS.h"
#include "DHT.h"
#include <Wire.h>
#include <BC95Udp.h>
#include <CoAP.h>
DHT dht;
PMS pms(Serial);
PMS:ATA data;
AltSoftSerial bc95serial;
LiquidCrystal_I2C lcd(0x27, 16, 4);
BC95UDP udp;
Coap coap(udp);
#define iSYNC_KEY "5f2ce7daa592c1105dc194c4"
void responseHandler(CoapPacket *packet, IPAddress remoteIP, int remotePort) {
char buff[6];
Serial.println("#iSYNC -> NBIoT");
Serial.print("#[");
sprintf(buff, "%d.d", packet->code >> 5, packet->code & 0b00011111);
Serial.print(buff);
Serial.print("]-> DATA : ");
Serial.println();
Serial.println("#---");
}
void setup() {
bc95serial.begin(9600);
BC95.begin(bc95serial);
BC95.reset();
Serial.begin(9600);
dht.setup(2);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(F("PM2.5 = ")); //พิมพ์ข้อความ
lcd.setCursor(0, 2); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(F("humi = ")); //พิมพ์ข้อความ
lcd.setCursor(0, 3); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 1 บรรทัดที่ 1
lcd.print(F("temp = ")); //พิมพ์ข้อความ "arduinoall.com"
Serial.println(F("Starting..."));
while (!BC95.attachNetwork()) {
Serial.println("...");
delay(1000);
}
coap.response(responseHandler);
coap.start();
}
void loop() {
if (pms.read(data)) {
String pm2_5 = String(data.PM_AE_UG_2_5);
String pm1_0 = String(data.PM_AE_UG_10_0);
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
String humi = String (humidity);
String temp = String (temperature);
lcd.setCursor(7, 0); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(pm2_5 + String(" ug/m3")); //พิมพ์ข้อความ
lcd.setCursor(6, 2); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 0 บรรทัดที่ 0
lcd.print(humidity + String("%")); //พิมพ์ข้อความ
lcd.setCursor(6, 3); // กำหนดตำแหน่งเคอร์เซอร์ที่ แถวที่ 1 บรรทัดที่ 1
lcd.print(temperature + String("C") ); //พิมพ์ข้อความ "arduinoall.com"
String payload = "{\"pm2\":" + pm2_5 + ",\"pm10\":" + pm1_0 + ",\"hum\":" + humi + ",\"tem\":" + temp + "}";
Serial.println("#iSYNC <- NBIoT");
Serial.print("#DATA : ");
Serial.println(payload);
coap.iSYNC_POST(iSYNC_KEY, payload);
Serial.println("#---------------------------------------------------");
delay(10000); //10 วินาที
//delay(21600000); // 6 ชั่วโมง
//delay(1440000); // 4 ชม.
//delay(21600000);
}
}
คือผมเพิ่ม จอ lcd มา เเล้วไม่ยอมวนลูป แก้ยังไงครับ