#include <WiFi.h>
#include "PubSubClient.h"
#include "ThingsBoard.h"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PAROL ""
#define TOKEN "XjM05VRiBgueQBm60k4g"
#define THINGSBOARD_SERVER "thingsboard.k-tech.uz"
const int RelayPin = 21; // Relay modulining pin raqami
const int ButtonPin = 12; // Tugma pin raqami
int ButtonState = 0; // Tugma holatini saqlash uchun o'zgaruvchi
int lastButtonState = 0; // Oldingi tugma holatini saqlash uchun o'zgaruvchi
bool RelayState = false; // Relay holatini saqlash uchun o'zgaruvchi
WiFiClient espClient;
ThingsBoard tb(espClient);
void setup() {
Serial.begin(115200);
pinMode(RelayPin, OUTPUT);
pinMode(ButtonPin, INPUT);
digitalWrite(RelayPin, LOW); // Boshlang'ich holatda Relay o'chiq
WiFi.begin(WIFI_SSID, WIFI_PAROL);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi tarmog'iga ulandi");
}
void loop() {
if (!tb.connected()) {
if (!tb.connect(THINGSBOARD_SERVER, TOKEN)) {
Serial.println("ThingsBoard serveriga ulanishda xato");
delay(1000);
return;
}
}
int reading = digitalRead(ButtonPin);
if (reading != lastButtonState) {
if (reading == HIGH) {
RelayState = !RelayState;
digitalWrite(RelayPin, RelayState ? HIGH : LOW);
tb.sendAttributeBool("relay_holati", RelayState);
}
delay(50); // Debouncing uchun kechikish
}
lastButtonState = reading;
tb.loop();
}