|
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <MicroGear.h>
const char* ssid = "IoT99";
const char* password = "iot0837286389";
#define APPID "wissanukorn99"
#define KEY "dWqtOmkdZtyCGCH"
#define SECRET "77Xsf7l2thoCS4UxhsVZpK5je"
#define ALIAS "led"
long timesenddata = 0;
#define LDR A0
#define LED D6
#define FEEDID "fatefeed"
#define MAX_TEMP 100
#define MAX_HUMID 100
#define MAX_TEMP 100
#define MAX_LDR 1030
WiFiClient client;
#define DHTTYPE DHT22 //Define sensor type
#define DHTPIN D5 // Define sensor pin
DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor
MicroGear microgear(client);
void onMsghandler(char *topic, uint8_t* msg, unsigned int msglen) {
String m = "";
for (int i=0;i<msglen;i++) m += (char)msg[i];
Serial.println(topic);
Serial.println(m);
if(m == "A"){
digitalWrite(LED, HIGH);
Serial.println("ON");
}else if(m == "a" ){
digitalWrite(LED, LOW);
Serial.println("OFF");
}
readpin();
}
void onConnected(char *attribute, uint8_t* msg, unsigned int msglen) {
Serial.println("Connected to NETPIE...");
microgear.setAlias(ALIAS);
}
void setup(){
dht.begin();
pinMode(LED, OUTPUT);
Serial.begin(115200);
Serial.println("Starting...");
if (WiFi.begin(ssid, password)) {
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
microgear.on(MESSAGE,onMsghandler);
microgear.on(CONNECTED,onConnected);
microgear.init(KEY,SECRET,ALIAS);
microgear.connect(APPID);
}
void loop(){
if (microgear.connected()) {
microgear.loop();
if ( millis() - timesenddata > 2500) {
timesenddata = millis();
float humid = dht.readHumidity();
float temp = dht.readTemperature();
int valLDR = analogRead(LDR);
String datastring1 = (String)temp;
String datastring2 = (String)humid;
String datastring3 = (String)valLDR;
microgear.publish("/status","พร้อมใช้งาน");
delay(250);
microgear.publish("/temp",datastring1);
microgear.publish("/humid",datastring2);
delay(250);
microgear.publish("/LDR",datastring3);
Serial.println("send");
Serial.print(datastring1+" "+datastring2+" "+datastring3+"\n");
delay(15000);
String data = "{\"humid\":";
data += humid ;
data += ", \"temp\":";
data += temp ;
data += ", \"LDR\":";
data += valLDR;
data += "}";
if (isnan(humid) || isnan(temp) || humid >= MAX_HUMID || temp>= MAX_TEMP || valLDR >= MAX_LDR) {
Serial.println("Failed to read from DHT sensor!");
}else{
Serial.print("Sending -->");
Serial.println(data);
microgear.writeFeed(FEEDID,data); //YOUR FEED ID, API KEY
}
Serial.println();
}
}else {
Serial.println("connection lost, reconnect...");
delay(250);
microgear.connect(APPID);
}
}
void readpin() {
if(digitalRead(LED) == HIGH){
microgear.publish("/led","ON");
}else if (digitalRead(LED) == LOW){
microgear.publish("/led","OFF");
}
}
|
|