#include "ClosedCube_HDC1080.h"
#include "Magellan_SIM7020E.h"
Magellan_SIM7020E magel;
ClosedCube_HDC1080 hdc1080;
const int lightSensorPin=34;
String payload;
String sw;
const int Relay = 13;
String sw_state;
const int soimoiture_Sensor=12;
int soimoiture;
String sw_state2;
String sw2;
int setsoil = 20;
int mapsoimoiture;
void setup()
{
Serial.begin(115200);
magel.begin();
Serial.println("ClosedCube HDC1080");
hdc1080.begin(0x40);
hdc1080.begin(0x40);
payload="{\"sw\":0}";
payload="{\"sw2\":0}";
magel.report(payload);
pinMode(Relay, OUTPUT);
Serial.print("Manufacturer ID=0x");
Serial.println(hdc1080.readManufacturerId(), HEX); // 0x5449 ID of Texas Instruments
Serial.print("Device ID=0x");
Serial.println(hdc1080.readDeviceId(), HEX); // 0x1050 ID of the device
magel.begin(); //Init Magellan LIB
}
void loop()
{
Serial.print("sw ");
Serial.println(sw);
Serial.print("sw2 ");
Serial.println(sw2);
String temperature=String(hdc1080.readTemperature());
String humidity=String(hdc1080.readHumidity());
String Light=String(analogRead(lightSensorPin));
int soimoiture=(analogRead(soimoiture_Sensor));
int mapsoimoiture = map(soimoiture, 0, 4095, 100, 0);
String soimoiture_1 = String(mapsoimoiture);
payload="{" + sw2 + "}";
payload="{\"temperature\":"+temperature+",\"humidity\":"+humidity+",\"light\":"+Light+",\"soimoiture_1\":"+soimoiture_1+"," + sw + "}"; //Please provide payload with json format
magel.report(payload); //Report sensor data
delay(1000); //Delay 5 second
sw_state=magel.getControl("sw");
if(sw_state.indexOf("sw")==-1) //Response data is not 40300
sw_state2=magel.getControl("sw2");
if(sw_state2.indexOf("sw2")==-1) //Response data is not 40300
if (sw_state == "1") {
digitalWrite(Relay, HIGH); // ส่งให้ไฟติด
payload = "{\"sw\":1}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
payload = "{\"sw2\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
}
if (sw_state == "0"){
digitalWrite(Relay, LOW); // ส่งให้ไฟติด
payload = "{\"sw\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
payload = "{\"sw2\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
}
if (sw_state2 == "1") {
if(mapsoimoiture < setsoil ){
digitalWrite(Relay, HIGH);
payload = "{\"sw2\":1}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
payload = "{\"sw\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
}
if(mapsoimoiture >= setsoil ){
digitalWrite(Relay, LOW);
payload = "{\"sw2\":1}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
payload = "{\"sw\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
}
}
if (sw_state2 == "0"){
digitalWrite(Relay, LOW); // ส่งให้ไฟติด
payload = "{\"sw2\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
payload = "{\"sw\":0}"; //Please provide payload with json format
magel.report(payload); //Initial switch data to Magellan
}
}
แต่ตอนนี้ฟังชั่นการสั่งงานควบคุม relay แบบ อัตโนมัติที่ใช้ set soil กับmap มันทำงานไม่ถูกต้องตามที่ต้องการ
ต้องการให้ถ้าค่าความชื้นเยอะให้ตัดแต่บางครั้งก็ไม่ตัด รบกวนช่วยแนะนำหน่อยครับ