Часы на esp8266 и max7219 + android управление

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 28 авг 2017.

?

Вы повторили это проект?

  1. Нет (просто ознакомился)

    35 голосов
    13,3%
  2. Да, один раз (попробовал)

    111 голосов
    42,0%
  3. Да, не однократно

    122 голосов
    46,2%
Можно выбрать сразу несколько вариантов.
  1. spazmalgon

    spazmalgon Нерд

    Сейчас сделаю.
     
  2. Ивaн_С

    Ивaн_С Нерд

    Здравствуйте. Сегодня опробовал последнюю прошивку. Заливал бинарником. И столкнулся с проблемой того что часовой пояс +2.0 по умолчанию, я выбираю другой, но сохранить не могу, собственно у меня нет сохранения под этой поправкой. Из-за этого у меня часы через какое-то время возвращают значение с поправкой +2.0, даже когда я выставляю время вручную.
     
  3. spazmalgon

    spazmalgon Нерд

    Проблема устранилась путём входа в веб - с 10 (й) - винды. Она работает по шустрее.
    Ivan UA - благодарю за помощь.
     
  4. SteinMark

    SteinMark Гик

    Последнее редактирование: 7 май 2023
  5. ivan_alexoff

    ivan_alexoff Гик

    Погода openweathermap, значение температуры "Ощущается как" показывает 0 что в вебе что на экране.
     
  6. IvanUA

    IvanUA Гуру

    Под кнопкой сохранить - какое сообщение появляется?
    Спасибо, внес Ваши правки в проект.
    Да. Немного изменился запрос. Обновил прошивку.
    Кстати опенватер добавили еще порывы ветра, но у них нету индекс UV.
    Короче сейчас данные должны отображаться корректно.

    ПС. Прошивку и флеш обновил на гите.

    [​IMG]
     
    Последнее редактирование: 8 май 2023
  7. Ивaн_С

    Ивaн_С Нерд

    Спасибо, но уже все понял.
    Я не очень слежу за темой. Может что упускаю. Но заметил что точка росы считается только при условии что выбран АНТхО. По крайней мере в строке температуры, других датчиков на влажность у меня нет.
    Ну а в общем пока ведут себя стабильно.
    Благодарю!
     

    Вложения:

  8. IvanUA

    IvanUA Гуру

    Расчет точки росы происходит по температуре и влажности. Для этого в часах должен быть установлен датчик который меряет температуру и влажность или несколько датчиков. Главное что бы часы увидели эти датчики и они появились в меню выбора.

    PS. Поставил в часы вот такой датчик
    изображение_viber_2023-05-11_12-57-41-362.jpg

    По идее это si7021 с адресом 0х40.
    Хотел показать что работает расчет точки росы...
    А прошивка его не видет(((
    Сканер адреса - пишет что 0х40...
    Короче пришлось ставить библиотеку под HTU21.
    Ну и ввиду того что как я понял у этих датчиков (Si7021 / HTU21 / SHT21) адрес один (библиотеки разные)
    я в прошивке сделал выбор этих датчиков одним пунктом (в компорт пишет какой конкретно датчик нашел), все одно может одновременно работать только один....
    Ну и собственно обновил прошику и вот результат расчета точки росы
    Безымянный.jpg
     
    Последнее редактирование: 11 май 2023
    Vladis_a и Ивaн_С нравится это.
  9. viktor6

    viktor6 Нерд

    Подскажите будет ли поддержка датчика AM2320 или нет ждать это или искать что другое?
     
  10. ivan_alexoff

    ivan_alexoff Гик

    По поводу
    Изначально при прошивке был установлен датчик АНТ10. Все работало. Сегодня захотелось поэкспериментировать с этим датчиком, а конкретней сравнить его собственные показания точки росы с показаниями часов. Поскольку он у меня на данный момент один в наличии снял его и подключил к другой esp. При этом заметил что часы продолжили отображать значение температуры, правда нулевое. Зашел в web - датчик присутствует. Снял его в настройках, сохранил. После чего web начал очень сильно тупить. Через некоторое время перестала отображаться погода - невозможно получить данные. Перезагрузил часы физически, работа восстановилась. Выключил их и подключил назад датчик. После включения часов датчик не определился. Выбрал его в настройках в ручную. Я так понимаю что датчик определяется только при первом запуске часов и дальше его наличие или отсутствие часами не контролируется? Жаль нет исходников, может тогда не задавал бы таких вопросов.
     
  11. IvanUA

    IvanUA Гуру

    Сделать то не проблема. Вопрос только в том, на сколько этот датчик необходим (распрастранен). Ну скажем так его целесообразность. Чем он уникален и лучше к примеру того же AHТ10.
    Я бы не рекоммендовал на "гарачую" отключать и подключать датчики. Так можно лишиться датчика, а то и ЕСП.
    Часы только при включении проверяют наличие установленных датчиков, и если датчик найден то он появится в меню выбора датчиков.
    А вот с этого момента если возможно то по подробнее.

    ПС. На сколько мне было известно то наши датчики типа АНТ10 могут измерять температуру и относительную влажность (та что в %). А вот точку росы (температура при которой конденсируется влага) и абсолютную влажность (количество влаги в м3) можно рассчиать.
     
  12. ivan_alexoff

    ivan_alexoff Гик

    Я не настолько "гарачий", ессно отключал перед этим питание
    библиотека для aht10 тоже выдает точку росы GetDewPoint()
    ну вот у меня почему-то после снятия датчика и включения часов он в web-е продолжил отображаться и показывать 0-ю температуру/ После возвращения датчика на место тоже пришлось его ручками выбирать в настройках
     
    Последнее редактирование: 16 май 2023
  13. viktor6

    viktor6 Нерд

    Ну не знаю насколько он популярный просто валяется пару штук.
     
  14. IvanUA

    IvanUA Гуру

    Библиотек много. Я использовал на мой взгляд самую распространенную от Адафруит.
    В этой библиотеке нет такого параметра
    Код (C++):

    typedef struct {
      int32_t version;   /**< must be sizeof(struct sensors_event_t) */
      int32_t sensor_id; /**< unique sensor identifier */
      int32_t type;      /**< sensor type */
      int32_t reserved0; /**< reserved */
      int32_t timestamp; /**< time is in milliseconds */
      union {
        float data[4];              ///< Raw data */
        sensors_vec_t acceleration; /**< acceleration values are in meter per second
                                       per second (m/s^2) */

        sensors_vec_t
            magnetic; /**< magnetic vector values are in micro-Tesla (uT) */
        sensors_vec_t orientation; /**< orientation values are in degrees */
        sensors_vec_t gyro;        /**< gyroscope values are in rad/s */
        float temperature; /**< temperature is in degrees centigrade (Celsius) */
        float distance;    /**< distance in centimeters */
        float light;       /**< light in SI lux units */
        float pressure;    /**< pressure in hectopascal (hPa) */
        float relative_humidity; /**< relative humidity in percent */
        float current;           /**< current in milliamps (mA) */
        float voltage;           /**< voltage in volts (V) */
        float tvoc;              /**< Total Volatile Organic Compounds, in ppb */
        float voc_index; /**< VOC (Volatile Organic Compound) index where 100 is
                              normal (unitless) */

        float nox_index; /**< NOx (Nitrogen Oxides) index where 100 is normal
                              (unitless) */

        float CO2;       /**< Measured CO2 in parts per million (ppm) */
        float eCO2;      /**< equivalent/estimated CO2 in parts per million (ppm
                            estimated from some other measurement) */

        float pm10_std;  /**< Standard Particulate Matter <=1.0 in parts per million
                            (ppm) */

        float pm25_std;  /**< Standard Particulate Matter <=2.5 in parts per million
                            (ppm) */

        float pm100_std; /**< Standard Particulate Matter <=10.0 in parts per
                            million (ppm) */

        float pm10_env;  /**< Environmental Particulate Matter <=1.0 in parts per
                            million (ppm) */

        float pm25_env;  /**< Environmental Particulate Matter <=2.5 in parts per
                            million (ppm) */

        float pm100_env; /**< Environmental Particulate Matter <=10.0 in parts per
                            million (ppm) */

        float gas_resistance;   /**< Proportional to the amount of VOC particles in
                                   the air (Ohms) */

        float unitless_percent; /**<Percentage, unit-less (%) */
        sensors_color_t color;  /**< color in RGB component values */
      };                        ///< Union for the wide ranges of data we can carry
    } sensors_event_t;
    Но в любом случае, точка росы - это расчетаная величина. А ее точность зависит только от формулы расчета.
    Когда вы открываете веб - вы видете сохраненные параметры. Если у вас датчик был до этого сохранен, то он и будет отображаться.
    0 - это начальное показание, датчика нет - оно не меняется.
    А вот когда вы открываете выбор датчиков - то там уже будут отображаться только доступные в системе датчики.
    Я умышленно скрыл весь список датчиков, а вывел только найденые.
    Если вы откроете текстовую версию страницы то там увидете что все датчики присутствуют но скрыты, а то что есть в системе виден))))
    [​IMG]

    Я даже больше скажу. Можно ручками отредактировать на странице видимость датчиков и тогда вы сможете выбрать и даже сохранить любой датчик, даже если его сейчас нет в системе.

    [​IMG]

    Вот теперь вопрос. А надо ли? Попробуйте его для начала потестить посмотреть как он работает, может он выдает такие же среднепотолочные показания как DHT11... Тогда смысл делать список из 1000 датчиков?
    Другое дело что если он действительно точный - классный датчик, то есть смысл его купить, добавить в код, и использовать)))
     
    Последнее редактирование: 16 май 2023
    viktor6 нравится это.
  15. ivan_alexoff

    ivan_alexoff Гик

    Эта с расчетом точки росы
     
  16. IvanUA

    IvanUA Гуру

    Код (C++):
    float AHT10Class::GetDewPoint(void)
    {
      float humidity = GetHumidity();
      float temperature = GetTemperature();

      // Calculate the intermediate value 'gamma'
      float gamma = log(humidity / 100) + WATER_VAPOR * temperature / (BAROMETRIC_PRESSURE + temperature);
      // Calculate dew point in Celsius
      float dewPoint = BAROMETRIC_PRESSURE * gamma / (WATER_VAPOR - gamma);

      return dewPoint;
    }
    В принципе как я и говорил расчетная величина. Получают температуру + влажность и делают расчет.

    У нас тоже самое, только расчет делается для любого датчика который может мерить температура и влажность....

    ПС. А не сравнивали расчет на часах и этой библиотеки?
     
  17. ivan_alexoff

    ivan_alexoff Гик

    Сравнивал, разница на 1-цу была, но это скорее всего из-за разных показаний влажности. Температура сравнялась, а влажность не стал ждать пока устаканится
     
    IvanUA нравится это.
  18. ivan_alexoff

    ivan_alexoff Гик

    @IvanUA, если не сложно, сделайте какие-то более осмысленные имена сохраненных файлов конфигурации или что-то типа подсказки в web-е. А то при восстановлении настроек сидишь и вспоминаешь WiFi - это wifi.json или ssids.json, часы - times или times2 ну и т.д. ...
     
    viktor6 нравится это.
  19. urg2000

    urg2000 Нерд

    Добрый день!
    Иван пишет что выложил новую прошивку, на гитхабе её нет.
    Дайте ссылку на крайнюю версию потестирую тоже
     
  20. IvanUA

    IvanUA Гуру

    Да надо)))
    https://github.com/IZ76/CLOCK_ESP8266