Мазмуну:
- 1 -кадам: Демонстрация
- 2 -кадам: Ассамблея
- 3 -кадам: Ассамблея - Таблица
- 4 -кадам: Adafruit GFX китепканасы
- 5 -кадам: Adafruit ST7735 китепканасы
- 6 -кадам: NTPClient китепканасы
- 7 -кадам: ESP32_NTP.ino
- 8 -кадам: Файлдар
Video: Убактыңызды текке кетирбеңиз: NTPти колдонуңуз !: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Убактыңызды эсептеңиз! Бул менин абоненттерим арасында көп талкууланган тема жана эмне себептен? Жөнөкөй жана алмаштыргыс фактыдан улам, сиз даталогерди түзгөндө жана автоматташтыруу менен байланышкан баардык нерсеге туура убакыт керек! Жана убакытты өлчөөнүн бир нече жолу бар: батарейкасы бар саат, RTC (Real Time Clock) жана башкалар. Бирок мен бүгүн сизге көрсөткүм келгени (бул датаны, жуманын күнүн жана убактысын билдирет) - бул NTP (Network Time Protocol), ал онлайнда. Бул видеодо биз интернетте датасы жана убактысы тууралуу маалыматты алып, маалыматты дисплейде көрсөтөбүз.
1 -кадам: Демонстрация
2 -кадам: Ассамблея
3 -кадам: Ассамблея - Таблица
4 -кадам: Adafruit GFX китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
Adafruit GFX китепканасын орнотуңуз
5 -кадам: Adafruit ST7735 китепканасы
Arduino IDEде Sketch-> Китепкананы кошуу-> Китепканаларды башкаруу бөлүмүнө өтүңүз …
Adafruit ST7735 орнотуңуз
6 -кадам: NTPClient китепканасы
Https://github.com/taranais/NTPClient дарегине өтүңүз жана taranais өзгөртүлгөн NTPClient китепканасын жүктөп алыңыз.
Папканы C: / Users / Documents / Arduino / китепканаларына коюңуз
7 -кадам: ESP32_NTP.ino
Камтыйт жана аныктайт
#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #deine DISPLAY_DC 12 // A0 #define DISPLAY_CS 13 // CS #disfine DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário, no caso horário de verão de brãília int timeZone = -2; // Struct com os dados do dia e hora struct Date {int dayOfWeek; int күнү; int ай; int year; int hours; int мүнөт; int seconds; }; // Socket UDP колдонмосу WiFiUDP колдонмосун колдонуу менен; NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL NTP timeZone*3600, // Deslocamento do horário em relacão ao GMT 0) 60000); // Intervalo entre verificações online // Nomes dos dias da semana char* dayOfWeekNames = {"Жекшемби", "Дүйшөмбү", "Шейшемби", "Шаршемби", "Бейшемби", "Жума", "Ишемби"}}; // Объекттин жооптору Alofruit_ST7735 дисплейи = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Жайгашуу
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vare, // Priorityade NULL, // Тарифтер үчүн шарттар 0); // Número do core}
NNT орнотуу
жараксыз орнотууNTP () {// Кардар NTP ntpClient.begin (); // Эспера жаңыртуусу онлайн Serial.println ("Биринчи жаңыртуу күтүлүүдө"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); кечигүү (500); } Serial.println (); Serial.println ("Биринчи жаңыртуу аяктады"); }
WifiConnectionTask
// WifiConnectionTask (жараксыз* парам) {качан (чындык) {// Wi -Fi байланышын көрүү (WiFi.status ()! = WL_CONNECTED) {// Контектар туташууWiFi (); } // Кечиктирүү 100 кене vTaskDelay (100); }}
ConnectWiFi
жараксыз connectWiFi () {Serial.println ("Туташуу"); // Wi -Fi WiFi.begin ("SSID", "12345678") деген номерлерди колдонуңуз; // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); кечигүү (500); } Serial.println (); Serial.print ("Туташты"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Көрсөтүү Display.setRotation (3); // Rotaciona display.setTextSize (2); // Таманхо текст жазууну көрсөтөт.fillScreen (ST77XX_BLACK); // Алдын ала көрсөтүү Display.setCursor (0, 0); // Coloca же cursor comecho display.setTextColor жок (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (жалган); // Não pula linha автоматтык түрдө}
Loop
void loop () {// Recupera os dados sobre a data e horário Date Date = getDate (); // Reset o cursor display.setCursor (0, 0); // Exibe os dados display.printf (" %s / n / n %s / n / n %02d/ %02d/ %d / n / n %02d: %02d: %02d", WiFi. SSID ().c_str (), dayOfWeekNames [date.dayOfWeek], date.day, date.month, date.year, date.hours, date.minutes, date.seconds); кечиктирүү (100); }
GetDate
Күн getDate () {// Кардар NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Күндүн датасы; sscanf (strDate, "%d-%d-%dT%d:%d:%dZ", & date.year, & date.month, & date.day, & date.hours, & date.minutes, & date.seconds); // Dia da semana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); кайтаруу күнү; }
8 -кадам: Файлдар
Файлдарды жүктөп алыңыз
МЕН ЖОК
Сунушталууда:
Magicbit [Magicblocks] баскычтарын колдонуңуз: 5 кадам
Magicbit'иңиздеги баскычтарды колдонуңуз [Magicblocks]: Бул окуу куралы Magicbitте Magicblocks аркылуу баскычтарды колдонууну үйрөтөт. Биз ESP32ге негизделген бул долбоордун өнүгүү тактасы катары magicbitти колдонуп жатабыз. Ошондуктан бул долбоордо каалаган ESP32 өнүктүрүү тактасы колдонулушу мүмкүн
Топурактын нымдуулук сенсорун Magicbit [Magicblocks] менен колдонуңуз: 5 кадам
Magicbit [Magicblocks] менен топурактын нымдуулук сенсорун колдонуңуз: Бул окуу куралы Magicblocks аркылуу Magicbit менен топурактын ным сенсорун колдонууну үйрөтөт. Биз ESP32ге негизделген бул долбоордун өнүгүү тактасы катары magicbitти колдонуп жатабыз. Ошондуктан бул долбоордо каалаган ESP32 өнүктүрүү тактасын колдонсо болот
Magicbit [Magicblocks] менен панелдин виджеттерин колдонуңуз: 5 кадам
Magicbit [Magicblocks] менен панелдин виджеттерин колдонуу: Бул окуу куралы Magicbit менен Magicblocks панелинин виджеттерин колдонууну үйрөтөт. Биз ESP32ге негизделген бул долбоордун өнүгүү тактасы катары magicbitти колдонуп жатабыз. Ошондуктан бул долбоордо каалаган ESP32 өнүктүрүү тактасы колдонулушу мүмкүн
Magicbit [Magicblocks] менен УЗИ сенсорун колдонуңуз: 5 кадам
Magicbit [Magicblocks] менен УЗИ сенсорун колдонуңуз: Бул окуу куралы сизге Magicblocks аркылуу Magicbit менен УЗИ сенсорун колдонууну үйрөтөт. Биз ESP32ге негизделген бул долбоордун өнүгүү тактасы катары magicbitти колдонуп жатабыз. Ошондуктан бул долбоордо каалаган ESP32 өнүктүрүү тактасы колдонулушу мүмкүн
I2C / IIC ЖК дисплей - IUC LCD дисплейине SPI ЖКны колдонуңуз, Arduino менен IIC модулуна SPI колдонуңуз: 5 кадам
I2C / IIC ЖК дисплей | IUC LCD дисплейине SPI ЖК дисплейин колдонуңуз, SPIди IIC модулуна Arduino менен колдонуңуз: Салам балдар, анткени кадимки SPI LCD 1602де туташуу үчүн зымдар өтө көп болгондуктан, аны arduino менен иштетүү өтө кыйын, бирок базарда жеткиликтүү болгон бир модуль бар. SPI дисплейин IIC дисплейине айландырыңыз, ошондо сиз 4 зымды гана туташтырууңуз керек