Датчик температуры, влажности, давления, движения и освещенности на ESP-12F

Тема в разделе "Глядите, что я сделал", создана пользователем kmaximv, 17 янв 2016.

  1. kmaximv

    kmaximv Гик

    В библиотеке NTP такого функционала нет, либо искать другую библиотеку, либо писать самому.
     
  2. serenky

    serenky Нерд

    В этой библиотеке есть функция getEpochTime() которая возвращает timestamp время, и уже можно посчитать дату при помощи дополнительной функции.
    [​IMG]


    Может возьмете себе на заметку. Если нужно, код функции я сброшу.
     
  3. kmaximv

    kmaximv Гик

    Кидайте, добавлю в библиотеку.
     
  4. serenky

    serenky Нерд

    Я сделал, так :
    Код (C++):
    #ifdef NTP_ON
      if (atoi(JConf.ntp_enable) == 1) {
        ntpTimeString = timeClient.getFormattedTime();
        if ( timeClient.getHours() == 0) dateFlag = true;
        if (dateFlag) {
          unsigned long unixTime = timeClient.getEpochTime();
          ntpDateString = UnixToDate(unixTime);
          dateFlag = false;
        }
      }
    #endif
    и сама функция расчета:
    Код (C++):
    String UnixToDate ( unsigned long unixtime) {
      int iyear, imonth, iday, iwday, ihour, imin;
      unsigned long usec, jd, jdn, utime, t1, a, b, c, d, e, m;
      jd  = ((unixtime + 43200) / (86400 >> 1)) + (2440587 << 1) + 1;
      jdn = jd >> 1;
      utime = unixtime;
      t1 = utime / 60;
      usec  = utime - t1 * 60;
      utime = t1;
      t1 = utime / 60;
      imin  = utime - t1 * 60;
      utime = t1;
      t1 = utime / 24;
      ihour = utime - t1 * 24;
      iwday = jdn % 7;
      a = jdn + 32044;
      b = (4 * a + 3) / 146097;
      c = a - (146097 * b) / 4;
      d = (4 * c + 3) / 1461;
      e = c - (1461 * d) / 4;
      m = (5 * e + 2) / 153;
      iday = e - (153 * m + 2) / 5 + 1;
      imonth  = m + 3 - 12 * (m / 10);
      iyear = 100 * b + d - 4800 + (m / 10);
      String Sday = iday < 10 ? "0" + String(iday) : String(iday);
      String Smonth = imonth < 10 ? "0" + String(imonth) : String (imonth);
      String Syear = String(iyear);
      String Sdate = Sday + "." + Smonth + "." + Syear;
    return Sdate;
    }
     
  5. mvn77

    mvn77 Нерд

    Может кто подскажет схему подключения PZEM 004T Не хочется спалить железяку.
    Все вроде подключали, я никак не могу понять какой провод куда идет. В основной схеме нигде не указывается. Через код тоже пока не могу найти через какие пины реализован UART[​IMG]
    В инете схема есть вот такая, она пойдет?[​IMG]
     
    Последнее редактирование: 27 янв 2017
  6. zingreen

    zingreen Нуб

    #204 было тут
     
  7. mvn77

    mvn77 Нерд

    в общем по схеме из интернета не завелась. А втор еще утверждал что какой то пин идет на сброс - вот интересно какой?
     
  8. mvn77

    mvn77 Нерд

    В общем PZEM не завелась ни по какой схеме, либо сжег пока схему искал либо не та фаза луны. Еще не могу понять - у меня в вебке показывает 2,7 вольт напряжение, хотя на выводах 3,3 Это у всех так?
     
  9. zingreen

    zingreen Нуб

    собрал по этой схеме, работало отлично. Правда каким то образом сжег rx/tx в ESP в итоге.
    И напряжение также показывает совершенно разные значения, но никак не 3.3.
     
  10. mvn77

    mvn77 Нерд

    Все заработало -надо было R17 заменить на 500 ом.
     
    Последнее редактирование: 27 янв 2017
  11. serenky

    serenky Нерд

     
  12. woow

    woow Гик

    Ну что такое, примерно три недели назад ещё всё работало, а теперь прошил 12 версию через Arduino IDE результат- синий глаз на ESP моргает с секундной частотой и не какой IP не транслируется, компиляция и прошивка без проблем. Прошил *.bin v.12 результат тот же. Стенд использую прежний, что и раньше, с обвязкой не должно быть проблем.
    Может кто то уже решал такие проблемы, скорей всего что то не досмотрел, но не могу найти.

    Отдельно другой вопрос, а этот скетч можно прирезать к Majordomo по MQTT, протокол публикуется, как бы должно пойти?
     
  13. kmaximv

    kmaximv Гик

    Какая версия до этого стояла?
     
  14. woow

    woow Гик

    Cчас не дома но по моему 9. ESP менял, даже на wemos D1 ставил (прежняя и на ней кое как но работала)
     
  15. kmaximv

    kmaximv Гик

    После прошивки нужно через Arduino ESP8266 filesystem uploader 3.0 залить папку "data". Конфиг не сохранится, нужно будет потом заново настройку сделать.
     
  16. kmaximv

    kmaximv Гик

    Если плата типа wemos D1, то из-за неё, нужно смотреть куда подключен ADC пин. У меня на 12 платах напряжение показывает правильное.
     
  17. woow

    woow Гик

    Залил
    Вы про этот который в файле json_config.h ?
    А как это? Если её невижу не по IP ...4.1 не по усоновленому
     
  18. kmaximv

    kmaximv Гик

    Тогда ставим в json_config.h :
    Код (C++):
        char serial_log_level                [2]  = "5"                  ;
    и смотрим что сыпется в Uart
     
  19. woow

    woow Гик

    загнал в NODEMCU китайский не оригинал и всё закрутилось. Так если через UART в Arduno IDE Programmer какой должен быть (может здесь не туда вешаю).
    Выкладываю лог, кроме множества краказябров в начале лога и нескольких в конце.


    setup: Failed to load config
    module_id : ESP8266
    wifi_mode : STA
    wifi_phy_mode : 11G
    wifi_channel : 12
    wifi_auth : WPA2_PSK
    sta_ssid : *******
    sta_pwd : *******
    ap_pwd : *******
    static_ip : 192.168.1.143
    static_gateway : 192.168.1.1
    static_subnet : 255.255.255.0
    ntp_server : europe.pool.ntp.org
    my_time_zone : +6
    mqtt_server : 192.168.1.140
    mqtt_port : 1883
    mqtt_user : *******
    mqtt_pwd : *******
    mqtt_name : _BedM
    publish_topic : /stateSub/
    subscribe_topic : /statePub/
    command_pub_topic : /commandPub/
    light_pin : 13
    lightoff_delay : 5
    lighton_lux : 10
    light_smooth : 0
    light2_pin : 12
    light2off_delay : 5
    light2on_lux : 10
    light2_smooth : 0
    reset_pin : 2
    motion_pin : 14
    dht_pin : 2
    get_data_delay : 10
    publish_delay : 10
    subscribe_delay : 60
    motion_read_delay : 10
    reboot_delay : 1800
    sys_log_host : 192.168.1.150
    sys_log_port : 514
    sys_log_level : 5
    serial_log_level : 0
    web_log_level : 0
    static_ip_enable : 0
    ntp_enable : 0
    mqtt_enable : 0
    mqtt_auth_enable : 0
    bme280_enable : 0
    sht21_enable : 0
    bh1750_enable : 0
    motion_sensor_enable : 0
    pzem_enable : 0
    mhz19_enable : 0
    dht_enable : 0
    ds18x20_enable : 0

    Для чего sys_log_host ?

    Так в этой строке только 5 надо вписть вместо 2? и как бы разнисы не заметил.
    Код (C++):
    char serial_log_level                [2]  = "5"  
     
    Последнее редактирование: 3 фев 2017
  20. kmaximv

    kmaximv Гик

    Почему sys_log_level : 5 ? Нужно у serial_log_level менять уровень логгирования.

    sys_log_host это хост, куда ЕСП скидывает логи. Подробнее здесь https://github.com/kmaximv/Wi-Fi-Sensor/wiki/Syslog-Server
     
    woow нравится это.