вопросы esp8266
- Войдите на сайт для отправки комментариев
Сб, 16/09/2017 - 10:52
Здраствуйте уважаемые форумчане ! такой вопрос ! есть такой код для еиспишки принцип дублирование кнопки через mqtt так вот ! вродебы все работает но ! как сделать чтоб нажали тактовую кнопку светодиод загорелся на андроиде запустили 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 * "";
const int mqtt_port = 1883;
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();
}
#556
я понял но мне нужно допустим еспишка в выключателе света а я на работе забыли выключить свет врубаю 3g на трубе захожу на mqtt dashboard и вижу переключатель в положении вкл !
я понял но мне нужно допустим еспишка в выключателе света а я на работе забыли выключить свет врубаю 3g на трубе захожу на mqtt dashboard и вижу переключатель в положении вкл !
Ищу исполнителя