Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Cloudmqtt.com примеры с инета не пашут

Тема в разделе "Android приложения (разработка и готовые решения)", создана пользователем Serrous, 27 июн 2017.

  1. Serrous

    Serrous Новичок

    Сообщения:
    34
    Симпатии:
    3
    Осваиваю wemos. Хочу порулить через cloudmqtt.com.
    Что сделано
    1. Заведен mqtt брокер с именем home.
    2. в телефоне поставлено mqtt dashboard. Оформлена подписка на тему home/temp. Добавлен виджет паблишера svetik.
    3. Скетч в порт выдает
    Код (Text):
    1.  
    2. Connecting to xxxxx...
    3. WiFi connected
    4. IP192.168.4.105
    5. Connecting to MQTT server
    6. Connected to MQTT server
    7. 1
    8. 1
    9. 1
    10.  
    НО в дашбоард эта единичка не прилетает. И светодиодом поморгать не могу... уже и видео посмотрел ... что то похоже не сделал .. а вот что хз...
    Если при подключеном дашборде сменить состояние светодиода, отключится и снова сменить то при подключении оно восстанавливается.. так что связь телефон cloudmqtt есть... проблемка со стороны wemos`a

    а как он вообще должен читать я не пойму... процедура проверки паблика запукается только при подключении к брокеру... я правильно понял ?

    Или подкиньте рабочий код. Можно к другому брокеру.

    Счетч
    Раскрыть Спойлер

    Код (Text):
    1. #include <MQTT.h>
    2. #include <PubSubClient.h>
    3. #include <ESP8266WiFi.h>
    4.  
    5. const char *ssid =  "xxxxx";  // Имя вайфай точки доступа
    6. const char *pass =  "xxxxxx"; // Пароль от точки доступа
    7.  
    8. const char *mqtt_server = "m11.cloudmqtt.com"; // Имя сервера MQTT
    9. const int mqtt_port = 17427; // Порт для подключения к серверу MQTT
    10. const char *mqtt_user = "xxxxxxx"; // Логи от сервер
    11. const char *mqtt_pass = "xxxxxxx"; // Пароль от сервера
    12.  
    13. WiFiClient wclient;
    14. PubSubClient client(wclient, mqtt_server, mqtt_port);
    15.  
    16. int tm, temp;
    17.  
    18. void setup() {
    19.   // put your setup code here, to run once:
    20.   pinMode (D1, OUTPUT);
    21.   Serial.begin(115200);
    22.  
    23. }
    24.  
    25. void loop() {
    26.   // put your main code here, to run repeatedly:
    27.  
    28.  
    29.   if (WiFi.status() != WL_CONNECTED) { // подключаемся к WIFI
    30.     Serial.print("Connecting to ");
    31.     Serial.print(ssid);
    32.     Serial.println("...");
    33.     WiFi.begin(ssid, pass);
    34.  
    35.     if (WiFi.waitForConnectResult() != WL_CONNECTED)
    36.       return;
    37.     Serial.println("WiFi connected");
    38.     Serial.print ("IP");
    39.     Serial.println(WiFi.localIP());
    40.   }
    41.  
    42.   // подключаемся к MQTT серверу
    43.   if (WiFi.status() == WL_CONNECTED) {
    44.     if (!client.connected()) {
    45.       Serial.println("Connecting to MQTT server");
    46.       if (client.connect(MQTT::Connect("arduinoClient2")
    47.                          .set_auth(mqtt_user, mqtt_pass))) {
    48.         Serial.println("Connected to MQTT server");
    49.         client.set_callback(callback);
    50.         client.subscribe("Home/svetik"); // подписывааемся по топик с данными для светодиода
    51.       } else {
    52.         Serial.println("Could not connect to MQTT server");
    53.       }
    54.     }
    55.  
    56.   }
    57.  
    58.   if (client.connected()) {
    59.     client.loop();
    60.     TempSend();
    61.   }
    62.  
    63. }
    64.  
    65. // Функция отправки показаний с термодатчика
    66. void TempSend() {
    67.   if (tm == 0)
    68.   {
    69.     temp = 1;
    70.     client.publish("Home/temp", String(temp)); // отправляем в топик для термодатчика значение температуры
    71.     Serial.println(temp);
    72.     tm = 300;  // пауза меду отправками значений температуры  коло 3 секунд
    73.   }
    74.   tm--;
    75.   delay(10);
    76. }
    77.  
    78. void callback(const MQTT::Publish & pub)
    79. {
    80.   Serial.print(pub.topic());   // выводим в сериал порт название топика
    81.   Serial.print(" => ");
    82.   Serial.print(pub.payload_string()); // выводим в сериал порт значение полученных данных
    83.  
    84.   String payload = pub.payload_string();
    85.  
    86.   if (String(pub.topic()) == "Home/svetik") // проверяем из нужного ли нам топика пришли данные
    87.   {
    88.     int stled = payload.toInt(); // преобразуем полученные данные в тип integer
    89.     digitalWrite(D1, stled); //  включаем или выключаем светодиод в зависимоти от полученных значений данных
    90.   }
    91. }
     
    Последнее редактирование: 28 июн 2017
  2. Serrous

    Serrous Новичок

    Сообщения:
    34
    Симпатии:
    3
    Никто не подскажет ?
     
  3. Slacky

    Slacky Читатель

    Сообщения:
    202
    Симпатии:
    10
    Проверь своего брокера mqtt-spy
     
  4. Serrous

    Serrous Новичок

    Сообщения:
    34
    Симпатии:
    3
    Разобрался спасибо. Слешей не хватало перед топиками.
     

Поделиться этой страницей