Часы на ESP-01(NodeMCU) + MAX7219 + WEB интерфейс

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

?

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

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

    7 голосов
    10,0%
  2. Да, один раз (попробовал)

    22 голосов
    31,4%
  3. Да, не однократно

    41 голосов
    58,6%
Можно выбрать сразу несколько вариантов.
  1. Sandr

    Sandr Нерд

    Иван добрый день! Подскажи пожалуйста. Где копать. Пытаюсь вывести статически показания Атмосферного давления вместо 765 выходит 760. Формулу вставил ту, что Обсчитывает температуру .Не пойму может она больше сотни не пересчитывает показания. прошивка 5.21
    t3 =0;
    t4 =0;
    if((payload[0]>=48&& payload[0]<58)|| payload[0]==45){
    if(payload[0]==45){
    t5 =-1;
    if(payload[1]>=48&& payload[1]<58){
    t3 = payload[1]-48;
     
  2. IvanUA

    IvanUA Гик

    Эту формулу надо переделывать, она рассчитана на значения от -99,9 до 99,9
    Надо убрать проверку на отрицательные числа и на запятую после второго знака...
     
  3. Sandr

    Sandr Нерд

    А Как ? Иван поправь пожалуйста. Не долго ведь когда знаешь. А тоя уже третий вечер мучаюсь. всё перепробовал.Так и понял что она не считает больше 99,9.
    Может кому тоже ещё пригодится.
     
  4. IvanUA

    IvanUA Гик

    Не, не не, спасибо, мне не интересно)))
    Неужели Вам самим не интересно сделать?

    Я вот сегодня к примеру сделал что бы когда меняешь язык меню - то текст на странице сам тоже меняется в зависимости от выбранного языка.... Вот это мне действительно было интересно и доставило удовольствие наблюдать результат в конце моих стараний)))))))))

    [​IMG][​IMG]
     
    Последнее редактирование: 9 июн 2018
    MIchaell и Deniskyn нравится это.
  5. Sandr

    Sandr Нерд

    Мне интересно . Но я не знаю как .Даже в инете нет этой формулы .хотя бы её описания. Если есть где ссылка у Вас дайте хоть почитать. А так я не знаю как.Я не понимаю эти закарючки.
    А так я почти всё сделал только дело вот из за этой формулы встало.
     
  6. Sandr

    Sandr Нерд

    Если бы не было интересно. То я бы тупо вкачал последнюю прошивку. А мне хочется что то сделать под себя. Но не всё так просто. Вот по этому и обращаюсь к вам за помощью. Не зная языка программирования ,это тоже самое, что писать по китайски.Но я всё равно чему то учусь.

    Ладно нет так нет.
     
  7. IvanUA

    IvanUA Гик

    Формулы нет, я ее делал сам, но могу помочь и немного добавить комментариев....
    Код (C++):
        tMqtt3 = 0;
        tMqtt4 = 0;
        if((payload[0] >= 48 && payload[0] < 58) || payload[0] == 45) { // в payload[0] - хранится первый полученный символ. 48, 58 и 45 - это коды знаков можете их посмотреть в fontUA_RU_PL_DE[]
          if(payload[0] == 45) {                                        // если первый символ = "-" (равен минусу) то tMqtt5 = -1
            tMqtt5 = -1;
            if(payload[1] >= 48 && payload[1] < 58) {                   //  здесь проверяем уже второй символ что он является числом...
              tMqtt3 = payload[1] - 48;                                 // если от кода числа отнять 48 то получим число.... К примеру код "0" = 48 если от 48-48 то получим 0
              if(payload[2] >= 48 && payload[2] < 58) {
                tMqtt3 = tMqtt3 * 10 + (payload[2] - 48);               // если третий знак тоже число, то второй знак был десятками, умножаем его на 10 (получаем ествественно десятки
              }
            }
            if(payload[3] == 46) {                                      // если третий знак не число, то проверяем его на то что но является точкой...
              if(payload[4] >= 48 && payload[4] < 58) tMqtt4 = payload[4] - 48; // если третий знак точка и четвертый знак является числом, то это десятые значения
            }
            if(payload[2] == 46) {                                      // тоже самое со втрорым знаком...
              if(payload[3] >= 48 && payload[3] < 58) tMqtt4 = payload[3] - 48;
            }
          } else {                                                      // здесь таже самая процедура но уже с положительными числами))))) tMqtt5 = 1 - это признак того что число положителньное или отрицательное....
            tMqtt5 = 1;
            tMqtt3 = payload[0] - 48;
            if(payload[1] >= 48 && payload[1] < 58) {
              tMqtt3 = tMqtt3 * 10 + (payload[1] - 48);
              if(payload[2] == 46) {
                if(payload[3] >= 48 && payload[3] < 58) tMqtt4 = payload[3] - 48;
              }
            }
            if(payload[1] == 46) {
              if(payload[2] >= 48 && payload[2] < 58) tMqtt4 = payload[2] - 48;
            }
          }
        }
        tMqtt3 = tMqtt3 * tMqtt5;                                        // через tMqtt5 - определяем число будет положительным или отрицательным.....
      }
     
  8. Sandr

    Sandr Нерд

    Помогите. Я сейчас её посмотрю.
     
  9. IvanUA

    IvanUA Гик

    Вы таки пробуйте разобраться, всё необходимое мне кажется я вам дал.... Если что не понятно, спросите... без вопросов поясню что и как, но готовый код делать не буду... Поверьте вы когда его сделаете, сами поймете что он очень прост)))))
     
  10. Sandr

    Sandr Нерд

    Да я попробую тем более Вы дали комментарии в нём.
    Спасибо!
     
  11. Valerchik

    Valerchik Нуб

  12. IvanUA

    IvanUA Гик

    При желании можно и все порты вывести, а зачем? Этот модуль уникален сам по себе.
     
  13. GeorgeZ

    GeorgeZ Нерд

    Залил всё таки последний скетч всё гуд поправил под свой город атм. давление- работает :). Подключил BMP280 - Did not find BMP280 sensor! пины проверил всё правильно думал уже сенсор дохлый. пролил последний бинарник и чудо он работает давление и температура есть. Вань может в скетче чего-то не хватает ? или пины для сенсора другие?
     
    Последнее редактирование: 11 июн 2018
  14. IvanUA

    IvanUA Гик

    Не знаю. Придет мой датчик от широкооких, тогда смогу проверить.
    В теории в скетче надо только заменить BMP на BME, но это только в теории...
    ПС. Денис кажись подключал BME, может он чего подскажет.
     
  15. GeorgeZ

    GeorgeZ Нерд

    но бинаркик то из чегото лился там датчик работает....
     
  16. GeorgeZ

    GeorgeZ Нерд

    я в програмировании то считай 0 но в cкетче не найду где прописана шина для BMP
     
  17. GeorgeZ

    GeorgeZ Нерд

    Adafruit_BMP280 bmp; в этой строчке поменял bmp на bme
    Adafruit_BMP280 bme;
    и дальше
    tempBmp = bme.readTemperature();
    pressBmp = bme.readPressure()*0.00750063755419211 + 0; (показания стали правильными)
    pressBmp = (int) pressBmp;
    altBmp = bme.readAltitude(1013.25);
    изменил +21 на +0
    и в библиотеке Adafruit_BMP280 поменял включение датчика ISP на I2C адрес 077 на 076
    http://arduino.ru/forum/programmirovanie/problema-s-bmp-280
    в строке "#define BMP280_ADDRESS (0x77)" в место (0x77) вставте (0x76)
    и вывод BMP280 CSB повесил на +3,3в
    YES!!! find BMP280 sensor!
    17:41:10 Temperature BMP280: 28.49 *C, Pressure: 746.00 mmHg, Approx altitude: 148.33 m
     
  18. IvanUA

    IvanUA Гик

    Залил на гитхаб два новых бинарника для прошивки от 30.05.2018.
    LED_clock_weath_v30.05.2018.ino.bin - сама прошивка
    LED_clock_weath_v30.05.2018.spiffs.bin - флешь память (веб интерфейс).
     
    megavit66 нравится это.
  19. Deniskyn

    Deniskyn Гик

    Да, у меня заработало с заменой бмп на бме, в первый раз глюкнуло но после ребута все Ок, да и библиотека у них одна...
     
    Последнее редактирование: 11 июн 2018
    IvanUA нравится это.
  20. IvanUA

    IvanUA Гик

    Единственное о чем я подумал, то в ВМЕ280 - есть еще и датчик влажности, а в коде не предусмотрено что можно будет получать влажность из этого датчика... Ну тут два варианта, или самим доделывать код или ждать когда я получу свой датчик и сделаю все цивильно...

    ПС. Кстати кто-то из пользователей писал что он заменил в коде датчик Si7021 на ВМЕ280. Тоже как вариант...
     
    megavit66 и Deniskyn нравится это.