вопросы esp8266

kalbas0000
Offline
Зарегистрирован: 02.09.2016

 добрый день ! уважаемые форумчане ! вопрос следующий  мне нужно допустим еспишка в выключателе света а я на работе забыли выключить свет. врубаю 3g на трубе захожу на mqtt dashboard и вижу переключатель в положении вкл ! вот код .


#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define BUTTON_1 2
#define RELAY_1 0 
int REL1;
boolean rState1 = false;
boolean btnPress = false;
boolean lastbtnStat = true;
const char *ssid = ""; 
const char *pass = ""; 
const char *mqtt_server = ""; 
const int mqtt_port = ; 
const char *mqtt_user = ""; 
const char *mqtt_pass = "";
void callback(const MQTT::Publish& pub)
{
String payload = pub.payload_string();
if(String(pub.topic()) == "kalbas") 
{
float stled = payload.toInt(); 
if(stled == 1)
{
digitalWrite(RELAY_1, HIGH);
REL1 = 1;
}
if(stled == 0)
{
digitalWrite(RELAY_1, LOW);
REL1 = 0;
}
}
}
WiFiClient wclient; 
PubSubClient client(wclient, mqtt_server, mqtt_port);
void setup() {
pinMode(RELAY_1, OUTPUT);
pinMode(BUTTON_1, INPUT_PULLUP);
}

void buttonWF() {

 btnPress = digitalRead(BUTTON_1);
  
  if (btnPress && !lastbtnStat){
    delay(30); // защита от дребезга
    btnPress = digitalRead(BUTTON_1);
    
    if(btnPress && REL1 == 1){
      rState1 = !rState1;
      digitalWrite(RELAY_1, rState1);
      client.publish("kalbas", "0");    
       
    }

    if(btnPress && REL1 == 0){
      rState1 = !rState1;
      digitalWrite(RELAY_1, rState1);
      client.publish("kalbas", "1");    
       
    }
  
}
lastbtnStat = btnPress;
}
void loop() {

if (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
if (WiFi.waitForConnectResult() != WL_CONNECTED)
return;
}
if (WiFi.status() == WL_CONNECTED) {
if (!client.connected()) {
if (client.connect(MQTT::Connect("arduinoClient2")
.set_auth(mqtt_user, mqtt_pass))) {
client.set_callback(callback);
client.subscribe("kalbas");
} 
}
if (client.connected()){
client.loop();
}
}
buttonWF();
}



 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Что надо конкретно?

приложение? программу на есп8266? mqtt поднять локалный на распберри к примеру? настроить mqtt удаленный?

Это раздел помощи возмездно!

89995897024