#include <HardwareSerial.h>
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char DEVICE_LOGIN_NAME[] = "5f3240b0-38d8-4486-927b-a9d54739461b";
const char SSID[] = "Wokwi-GUEST";
const char PASS[] = "";
const char DEVICE_KEY[] = "@zY3Hk23hodSKi@XD!HUW7oWL";
// void onDataChange();
// void onPotChange();
// void onSrvChange();
// void onLdChange();
// void onSwChange();
void onTempChange();
void onHumidChange();
void onPIRChange();
void onServoChange();
HardwareSerial Serialok(1);
// String data;
// int pot;
// int srv, srv1;
// bool ld, ld1;
// bool sw;
float temp_val;
float hum_val;
bool pir_val;
int servo_val, servo_val_ctrl;
void initProperties() {
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
// ArduinoCloud.addProperty(data, READWRITE, ON_CHANGE, onDataChange);
// ArduinoCloud.addProperty(pot, READWRITE, ON_CHANGE, onPotChange);
// ArduinoCloud.addProperty(srv, READWRITE, ON_CHANGE, onSrvChange);
// ArduinoCloud.addProperty(ld, READWRITE, ON_CHANGE, onLdChange);
// ArduinoCloud.addProperty(sw, READWRITE, ON_CHANGE, onSwChange);
ArduinoCloud.addProperty(temp_val, READ, ON_CHANGE, onTempChange);
ArduinoCloud.addProperty(hum_val, READ, ON_CHANGE, onHumidChange);
ArduinoCloud.addProperty(pir_val, READ, ON_CHANGE, onPIRChange);
ArduinoCloud.addProperty(servo_val, READWRITE, ON_CHANGE, onServoChange);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
void setup() {
Serial.begin(9600);
Serialok.begin(9600, SERIAL_8N1, 4, 2);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
// if (ld != ld1) {
// Serial.print("b");
// Serial.println(ld);
// Serialok.print("b");
// Serialok.println(ld);
// data = "b" + String(ld);
// }
// ld1 = ld;
// if (srv != srv1) {
// Serial.print("d");
// Serial.println(srv);
// Serialok.print("d");
// Serialok.println(srv);
// data = "d" + String(srv);
// }
// srv1 = srv;
// if (Serialok.available()) {
// char awal = Serialok.read();
// int nilai = Serialok.parseInt();
// if (Serialok.read() == char(13)) {
// if (awal == 'a') sw = nilai;
// if (awal == 'c') pot = nilai;
// data = awal + String(nilai);
// }
// }
if (servo_val != servo_val_ctrl) {
Serial.print("d");
Serial.println(servo_val);
Serialok.print("d");
Serialok.println(servo_val);
}
servo_val_ctrl = servo_val;
if (Serialok.available()) {
char sensor_id = Serialok.read();
int value = Serialok.parseInt();
if (Serialok.read() == char(13)) {
if (sensor_id == 'a') temp_val = value;
if (sensor_id == 'b') hum_val = value;
if (sensor_id == 'c') pir_val = value;
}
}
}
// void onDataChange() {
// }
// void onPotChange() {
// }
// void onSrvChange() {
// }
// void onLdChange() {
// }
// void onSwChange() {
// }
void onTempChange() {
}
void onHumidChange() {
}
void onPIRChange() {
}
void onServoChange() {
}