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

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

  1. Oleksandr54

    Oleksandr54 Нуб

    Бипер напрямую к ноге подключен или через транзистор ?
     
  2. IvanUA

    IvanUA Нерд

    Вы не поверите, через конденсатор 2,2мкф х16В.)))) поленился маленько.
    В идеале конечно же нужно через транзюк с обвеской.
     
  3. Oleksandr54

    Oleksandr54 Нуб

    Oбвеска там два резистора.:)
     
  4. IvanUA

    IvanUA Нерд

    Я бы поставил 3. Но в любом случае нужно еще и немного пошевелить извилинами и посчитать токи)))))
     
  5. Oleksandr54

    Oleksandr54 Нуб

    После синтеза звука в конце надо прописать: noTone(buzzerPin);
     
  6. IvanUA

    IvanUA Нерд

    Зачем?
     
  7. Oleksandr54

    Oleksandr54 Нуб

    После подачи сигнала в канале появляется черт знает что, мой усилитель D-класа с ума сходил.
     

    Вложения:

    • 94517.png
      94517.png
      Размер файла:
      228,5 КБ
      Просмотров:
      29
  8. IvanUA

    IvanUA Нерд

    Возможно.
    Я просто этим никогда не заморачивался.
    Максимум на что меня хватило, так это поиграть разные мелодии, но и......
    .....delay(огогосколько времени даром);
    .....портит всю картину.
    Так что моё твёрдое убеждение что на Ардуино и ЕСП - базер можно использовать только в роли пищалки - короткой озвучки какого либо события.
    Ну а хотите мелодию или голос, да еще и стерео - мп3 модуль вам в помощь.
     
  9. IvanUA

    IvanUA Нерд

    А что там Ваши эксперименты с лагами конфигурации и повторами прогноза?
    Мой тестовый вариант уже после добавления MQTT работает в детской без сбоев, по крайней мере памяти, как там с прогнозом, особо за этим никто не следит.
     
  10. Oleksandr54

    Oleksandr54 Нуб

    В варианте с термометром лагов замечено не было, мне кажется, что временные расстановки вывода информации более жесткие как бы.
     
  11. IvanUA

    IvanUA Нерд

    Я уж и не помню почему именно я выбрал именно такие временные интервалы для событий, но ничего не мешает вам экспериментировать ;)
     
  12. Oleksandr54

    Oleksandr54 Нуб

    Переделал отображение температуры. Добавлено отрицательные значения температур, убрана индикация не значащего нуля в термометре.
     

    Вложения:

    Последнее редактирование: 29 сен 2017
  13. IvanUA

    IvanUA Нерд

    Дошли руки, посмотрел Ваш код... Ну в принципе интересный вариант.
    Но дальше я таки пошел своим методом, и продолжил написание кода не особо меняя программу получения значений температуры.
    Мне просто показалось что так будет удобнее формировать строку для публикации ее на MQTT сервер... Хотя можно было приспособить спокойно и ваш вариант.
    В моём же я подправил программу вывода температуры на экран, что бы корректно отображались отрицательные числа.

    Кстати о птичках. После допиливания своего устройства управления бойлером и кухней, а точнее добавления туда датчика температуры на улице, я немного добавил кода и в эти часики. Теперь они у меня отображают текущую температуру в комнате, плюс получают по MQTT температуру от датчика на улице и тоже ее выводят на экран)))

    На таком меленьком индикаторе ничего умнее не придумал как разделить показания в доме и на улице значками D и У...
    [​IMG]
    [​IMG]
     
  14. surikoff

    surikoff Нуб

    Автор, подскажите, вы писали что использовали для проекта ESP-01, но у него, насколько я знаю, не выведен на пины SPI. Так как же вы подружили его с max7219?
     
  15. IvanUA

    IvanUA Нерд

    Да нормально они дружат :)
    Код (C++):
    /*  ESP-01 піни на платі:             |
                                          |
      GND______GPIO2____GPIO0____RX/GPIO3 |
    TX/GPIO1___CH_______RST______VCC     |
    --------------------------------------|
    Піни LED------ESP-01----NodeMCU 1.0  |
                                          |
      DataIn_______GPIO 2______D8         |
      LOAD/CS______GPIO 0______D7         |
      CLK__________GPIO 3______D6         |
    ______________________________________|
    */


    ...

    //for ESP-01 module
    //#define DIN_PIN   2   // D4
    //#define CS_PIN    0   // D3
    //#define CLK_PIN   3   // D9/RX

    //for NodeMCU 1.0
    #define DIN_PIN   15  // D8
    #define CS_PIN    13  // D7
    #define CLK_PIN   12  // D6

    ...

    void initMAX7219(){
      pinMode(DIN_PIN, OUTPUT);
      pinMode(CLK_PIN, OUTPUT);
      pinMode(CS_PIN, OUTPUT);
      digitalWrite(CS_PIN, HIGH);
      sendCmdAll(CMD_DISPLAYTEST, 0);
      sendCmdAll(CMD_SCANLIMIT, 7);
      sendCmdAll(CMD_DECODEMODE, 0);
      sendCmdAll(CMD_INTENSITY, 0); // minimum brightness
      sendCmdAll(CMD_SHUTDOWN, 0);
      clr();
      refreshAll();
    }

    ...

    void sendCmdAll(byte cmd, byte data){
      digitalWrite(CS_PIN, LOW);
      for(int i=NUM_MAX-1; i>=0; i--){
        shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
        shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
      }
      digitalWrite(CS_PIN, HIGH);
    }

    ...

    ну и так далее
    Могу конечно ошибаться, но кажись это называется ногодрыгом...
     
    Последнее редактирование: 19 окт 2017 в 07:51
  16. surikoff

    surikoff Нуб

    Ага, спасибо. Т.е. получается такой софтовый spi... Причем GPIO3 вы вроде не задействовали?
    А не могли бы вы для полноты картину накидать схему, хотя бы вчерновую от руки? Думаю, многим бы пригодилось.
     
  17. IvanUA

    IvanUA Нерд

    Набросал на скорую руку
    [​IMG]
     
  18. IvanUA

    IvanUA Нерд

    Кстати параллельно контактам, я вывел разъемчик, что бы можно было если чего программировать через СОМ порт. Хотя.... по воздуху прошивка залетает шустрее)))
     
  19. vovkoon

    vovkoon Нуб

    Ребята, не подскажите, как прикрутить DHT12, и чтоб показывала температуру и влажность в комнате, ко всему прочему? В смысле, может попадалось в нете.
     
    Последнее редактирование: 20 окт 2017 в 23:55
  20. ИгорьК

    ИгорьК Победитель модулей

    DHT12 не показывает температуру и влажность. Оно показывает свои предположения на эту тему.
     
    DIYMan нравится это.