Lilygo ttgo esp32 t-display дверной звонок

Тема в разделе "ESP8266, ESP32", создана пользователем sqafaroff, 2 янв 2021.

  1. sqafaroff

    sqafaroff Нерд

    Всем доброго времени суток,

    Хочу поинтересоваться у вас, возможно ли сделать на базе Lilygo TTGO ESP32 T-display дверной звонок? Суть такая что пришедший нажимает на кнопку прикрученную к ESP а та посредством подключения к вай фаю передает на телефон уведомление о звонке в дверь.

    Заранее спасибо.
     
  2. parovoZZ

    parovoZZ Гуру

    Ну конечно, возможно.
     
    sqafaroff нравится это.
  3. sqafaroff

    sqafaroff Нерд

    Я себе на Новый Год решил купить )) провозился один день, с настройкой библиотек для вывода изображения на встроенный экран, но одолел. А теперь пришла такая вот мысль в голову. Просто не знаю в какую сторону копать?
     
  4. sqafaroff

    sqafaroff Нерд

    Итак, плоды моей мини деятельности ... Вначале думал прикрутить библиотеку Button2 и все вроде работает но нет повторного реагирования на нажатие той же кнопки. То есть есть "Клик", "Двойной клик", "Тройной клик" и "Долгое нажатие", есть даже подсчет количества нажатий но вот реакции повторного нажатия нет. После недолгих поисков в гугле, нашел нативное DigitalRead и попробовал его. Результат, получилось. Но не могу вывести надпись на экран. Думаю дело в том что используется цикл в void loop() , при попытке перемещения в void setup() цикл не срабатывает но надпись есть. Помогите плиз советами ))

    Вот код:

    Код (C++):
    #include <TFT_eSPI.h>
    #include <SPI.h>


    // TFT Pins has been set in the TFT_eSPI library in the User Setup file TTGO_T_Display.h
    #define TFT_MOSI            19
    #define TFT_SCLK            18
    #define TFT_CS              5
    #define TFT_DC              16
    #define TFT_RST             23
    #define TFT_BL              4   // Display backlight control pin
    #define TFT_RGB_BGR         0x00
    #define PORTRAIT  0
    #define LANDSCAPE 1
    #define PORTRAIT_FLIP 2
    #define LANDSCAPE_FLIP  3
    #define MC_DATUM 4

    /*
    Tests string alignment
    Normally strings are printed relative to the top left corner but this can be
    changed with the setTextDatum() function. The library has #defines for:
    TL_DATUM = 0 = Top left
    TC_DATUM = 1 = Top centre
    TR_DATUM = 2 = Top right
    ML_DATUM = 3 = Middle left
    #define MC_DATUM = 4
    MR_DATUM = 5 = Middle right
    BL_DATUM = 6 = Bottom left
    BC_DATUM = 7 = Bottom centre
    BR_DATUM = 8 = Bottom right
    L_BASELINE =  9 = Left character baseline (Line the 'A' character would sit on)
    C_BASELINE = 10 = Centre character baseline
    R_BASELINE = 11 = Right character baseline
    */


    TFT_eSPI tft = TFT_eSPI(135, 240); // Invoke custom library
    const int PushButton = 0;
    void setup() {
        pinMode(PushButton, INPUT);
       
        tft.invertDisplay(false); // Where i is true or false
        tft.init();
        tft.setRotation(0);
        /*
        tft.fillScreen(TFT_BLACK);
        tft.setTextColor(TFT_WHITE, TFT_MAGENTA);
        tft.setTextSize(3);
        tft.setTextDatum(MC_DATUM);
        tft.println("Ring ME");
        */

    }

    void loop() {
       
        int Push_button_state = digitalRead(PushButton);
        if (Push_button_state == HIGH)
        {
         tft.fillScreen(TFT_WHITE);
         tft.setTextColor(TFT_BLACK, TFT_WHITE);
         tft.setTextSize(3);
         tft.setTextDatum(MC_DATUM);
         tft.println("Ring ME!");
         }
         else
         {
         tft.fillScreen(TFT_RED);
         tft.setTextColor(TFT_WHITE, TFT_RED);
         tft.setTextSize(3);
         tft.println("** Ring **");
         delay(3000);
         }
    }
     
  5. GeoShu

    GeoShu Гик

    Тут надо с самого начала разбираться. Можете почитать тут:
    https://alexgyver.ru/lessons/arduino-buttons/
    Очень толково пишет и много полезного.
    По вашим вопросам:
    Setup - выполняется один раз при запуске.
    Loop - выполняется после окончания setup в цикле, постоянно, с частотой работы процессора.
    digitalRead - читает значение с цифрового порта.
    Описание основных функций можно почитать тут:
    https://www.arduino.cc/reference/en/
    Или тут:
    https://alexgyver.ru/lessons/
    Вот тут тоже много интересного:
    http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam
     
    Последнее редактирование: 3 янв 2021
    sqafaroff нравится это.