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

Делюсь опытом По многочисленным просьбам - narodmon ОЧЕНЬ ПРОСТО.

Тема в разделе "Скетчи для Arduino IDE", создана пользователем Алекс, 4 янв 2018.

  1. Алекс

    Алекс Читатель

    Сообщения:
    92
    Симпатии:
    16
    В связи с кучей вопросов и порой очень глупых выдаю упрощенный скетч для отправки данных на народный мониторинг.

    Схема подключения.

    [​IMG]

    Собственно сам скетч. Вам надо поменять параметры WIFI на свои. И все. Отправка показаний с 1 датчика DS18B20.

    Код (Text):
    1. #include <ESP8266WiFi.h>
    2. #include <ESP8266WiFiMulti.h>
    3. #include <OneWire.h>
    4. #include <DallasTemperature.h>
    5. #include <Ticker.h>
    6.  
    7. ESP8266WiFiMulti WiFiMulti;
    8. Ticker sender;
    9. bool sendtonm;
    10. OneWire oneWire(2); // DS18B20 подключен по схеме https://goo.gl/HJ9TB9 Зеленый проводок подключен к GPIO2
    11. DallasTemperature sensors(&oneWire);
    12.  
    13. void setup() {
    14.     WiFi.mode(WIFI_STA); // Режим станции
    15. // Здесь настройки ВАШЕГО WIFI  
    16.     WiFiMulti.addAP("SSID", "PASSWORD"); // Данные вашего WiFi <<<<< ---------------  ОБРАТИТЕ ВНИМАНИЕ.
    17. // Здесь настройки ВАШЕГО WIFI  
    18.     sender.attach(305, STM); // Создаем событие отправки данных каждые 305 сек (5 мин + 5 сек, чтобы народный мониторинг не ругался если мы на секунду раньше отправили)
    19.     sensors.begin(); //Запуск DS18B20
    20. }
    21.  
    22. void STM() {sendtonm = true;} // Отправка данных разрешена
    23.  
    24. void loop() {
    25.     if((WiFiMulti.run() == WL_CONNECTED)) {
    26.      if (sendtonm) { // Если прошло 5 минут, и можно отправлять - работаем.
    27.       sendtonm = false; // отключаем флаг отправки данных
    28.       sensors.requestTemperatures(); // Команда на замер температуры.
    29.       delay(1000); // Задержка для того чтобы датчик успел провести замер.
    30.       DeviceAddress tempDeviceAddress; // Переменная для получения адреса датчика
    31.       String buf; // Буфер для отправки на NarodMon
    32.       buf="#ESP" + WiFi.macAddress()+ "\r\n";buf.replace(":", ""); //формируем заголовок
    33.       sensors.getAddress(tempDeviceAddress, 0); // Получаем уникальный адрес датчика
    34.       buf = buf + "#";
    35.       for (uint8_t i = 0; i < 8; i++) {if (tempDeviceAddress[i] < 16) buf = buf + "0"; buf = buf + String(tempDeviceAddress[i], HEX);} // адрес датчика в буфер
    36.       buf = buf + "#" + String(sensors.getTempCByIndex(0))+ "\r\n"; //и температура
    37.       buf = buf + "##\r\n"; // закрываем пакет
    38.       WiFiClient client;
    39.       client.connect("narodmon.ru", 8283); //Подключаемся
    40.       client.print(buf); // И отправляем данные
    41.       }
    42.     }
    43. }
    44.  
    PS. Код комментирован чуть ли не до запятых. Читаем, разбираемся самостоятельно.
     
    Последнее редактирование: 4 янв 2018
  2. Ers

    Ers Новичок

    Сообщения:
    12
    Симпатии:
    3
    по даташиту при 12-битном разрешении время измерения до 750 мс.
    в библиотеке DallasTemperature есть примеры асинхронного измерения температуры без использования delay
     
    Алексей. нравится это.
  3. Алекс

    Алекс Читатель

    Сообщения:
    92
    Симпатии:
    16
    Скетч писался ПРОСТОЙ. Поэтому кому надо больше - пусть дописывает. Строчку, которая вас насторожила - поправил. Так пойдет ? Успеет замерить ?
     
  4. Ers

    Ers Новичок

    Сообщения:
    12
    Симпатии:
    3
  5. Bozhuk

    Bozhuk Новичок

    Сообщения:
    4
    Симпатии:
    0
    Прошу прощение. С одним датчиком температуры все понятно, а как реализовать 2 датчика ?
     
  6. Sergey12345

    Sergey12345 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Скиньте кто-нибудь фото, как это подключали, пожалуйста!
     
  7. Sergey12345

    Sergey12345 Новичок

    Сообщения:
    2
    Симпатии:
    0
    не мог бы кто нибудь скинуть ссылки на упомянутые в скетче библиотеки ? Никак не могу найти...
     

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