#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 onTempChange();
void onHumidChange();
void onPIRChange();
void onServoChange();
HardwareSerial Serialok(1);
float dht22_humi;
float dht22_temp;
bool pir;
int servo, servo_val_ctrl;
void initProperties() {
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.addProperty(dht22_humi, READ, ON_CHANGE, onHumidChange);
ArduinoCloud.addProperty(dht22_temp, READ, ON_CHANGE, onTempChange);
ArduinoCloud.addProperty(pir, READ, ON_CHANGE, onPIRChange);
ArduinoCloud.addProperty(servo, 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 (servo != servo_val_ctrl) {
Serial.print("d");
Serial.println(servo);
Serialok.print("d");
Serialok.println(servo);
}
servo_val_ctrl = servo;
if (Serialok.available()) {
char sensor_id = Serialok.read();
float value = Serialok.parseFloat();
if (Serialok.read() == char(13)) {
if (sensor_id == 'a') dht22_temp = value;
if (sensor_id == 'b') dht22_humi = value;
if (sensor_id == 'c') pir = bool(value);
}
}
}
void onTempChange() {
}
void onHumidChange() {
}
void onPIRChange() {
}
void onServoChange() {
}