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

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

?

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

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

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

    30 голосов
    34,9%
  3. Да, не однократно

    47 голосов
    54,7%
Можно выбрать сразу несколько вариантов.
  1. IvanUA

    IvanUA Гуру

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

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

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

    Sandr Нерд

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

    Sandr Нерд

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

    Ладно нет так нет.
     
  4. 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 - определяем число будет положительным или отрицательным.....
      }
     
  5. Sandr

    Sandr Нерд

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

    IvanUA Гуру

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

    Sandr Нерд

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

    Valerchik Нерд

  9. IvanUA

    IvanUA Гуру

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

    GeorgeZ Нерд

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

    IvanUA Гуру

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

    GeorgeZ Нерд

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

    GeorgeZ Нерд

    я в програмировании то считай 0 но в cкетче не найду где прописана шина для BMP
     
  14. 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
     
  15. IvanUA

    IvanUA Гуру

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

    Deniskyn Гик

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

    IvanUA Гуру

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

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

    Sandr Нерд

    Добрый вечер я подключал датчик .Подключается датчик ВМЕ280 просто меняешь строки где датчик Si7021 на BME280 ну и при установке тебе скетч подскажет какие библиотеки нужны прям копируешь и в управление библиотеками в поисковую строку вставляешь. А по подключению к NodeMCU по пинам так:CLS-D1; SDA-D2; CDO+3,3v-(переключает его адрес, без этого его плата не видит. На датчике ВМЕ280 если подать 1 на вывод SDO то будет адрес 0x76, а если 0 то 0x 77.) ну и естественно питание. Удачи!!
    //Adafruit_Si7021 sensor = Adafruit_Si7021();
    Adafruit_ BME280 sensor = Adafruit_BME280 ();
    float hum = 0;
    bool BME280On = true;
    Сам мучился не много с ним.
    Ничего менять не нужно в библиотеке. Перемычку ставишь с + на контакт CDO +3,3v-(переключает его адрес, без этого его плата не видит. На датчике ВМЕ280 если подать 1 на вывод SDO то будет адрес 0x76, а если 0 то 0x 77.)
     
  19. GeorgeZ

    GeorgeZ Нерд

    Buzzer не жужжит если индикаторы запитать не 3,3 вольтами с ESP а отдельно 5 вольтами.
     
  20. Deniskyn

    Deniskyn Гик

    Все жужжит ) питайте матрицу от 3.3, а дальше от платы матрицы все остальное, очень удобно...
    ПС
    Чуть позже фото покажу.