• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MQTT и HTTP сервер

leon013

New member
Задача проста. Основная работа ESP это MQTT клиент. Но для запуска нужны параметры WiFi и MQTT брокера. Решил задействовать EEPROM. Логика такая считываем данные из памяти и начинаем коннектится к вифи. Смогли - то запуск mqtt клиента, если нет то запускаем точку доступа с сервером , на странице которого ввод всех параметров . После ввода все записывается в EEPROM. Подскажите как правильно запустить или сервер или клиента. Пока не запускаю mqtt клиента, а его настройка только в setup{} точка доступа с сервером работает отлично. Стоит расскомментировать все что касаемо mqtt клиента. К точке доступа еще подключиться можно, а вот страница для данных уже не загружается.
С mqtt клиентом тоже самое, он запускается, коннектится с брокером , но получить данные топика не получает.
По отдельности все исходники рабочие....
 

leon013

New member
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
#include <PubSubClient.h>


String str = "";
String _ssid;
String _password;
//char *mqtt_server;
String mqtt_server ;
unsigned int mqtt_port;
//char *mqtt_user;
String mqtt_user ;
//char *mqtt_pass;
String mqtt_pass ;
unsigned int count;

boolean conf = false;

String html_header = "<html>\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\
<head>\
<title>ESP8266 Settings</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>";

ESP8266WebServer server(80);
WiFiClient wclient;
//PubSubClient client(wclient, mqtt_server, mqtt_port);


void setup(void)
{
pinMode(16, OUTPUT);
digitalWrite(16, HIGH);
Serial.begin(115200);
eep_init();
WiFi_Init();

}
void loop() {
int i;
//mqtt_client();


delay(1);
count++;
if(count < 10){
digitalWrite(16, LOW);
}
else{digitalWrite(16, HIGH);}
if(count > 500) count = 0;
}
вот так все серверное работает.
как только раскомментирую //PubSubClient client(wclient, mqtt_server, mqtt_port); все кранты работе сервера
 
Сверху Снизу