Мазмуну:
- 1 -кадам: Ассамблея
- 2 -кадам: Ассамблея - Таблица
- 3 -кадам: TFT_eSPI китепканасы
- 4 -кадам: ESP32_Check_Internet_Connection.ino
- 5 -кадам: Файлдарды жүктөп алыңыз
Video: Шилтемеңиз бузулса эмне болот ?: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул видеодо биз ESP32 жана SIM800 менен шилтемени түшүрүү сенсорун түзөбүз. Бул бул долбоордун жардамы менен биз интернетке туташууну текшере алабыз жана туташуу бузулган учурда, телефондун номерине чалып, тармактын кыйынчылыкта экенин билдиребиз.
Бул мониторингдин бул түрүн аткаруунун көптөгөн жолдору. Бул жөнөкөй болгону менен, бул сиздин CPD ичинде болушу мүмкүн болгон ар кандай түзмөктөрдү сынап көрүүгө мүмкүндүк берет. ESP32 колдонууда анын текшерүү күчү алда канча чоң болот. Мен бул мисалда WiFi колдонсом да, сиз кааласаңыз зымдуу интернетти колдоно аласыз.
1 -кадам: Ассамблея
2 -кадам: Ассамблея - Таблица
3 -кадам: TFT_eSPI китепканасы
Arduino IDEде Sketch-> Кошуу бөлүмүнө өтүңүз
Китепкана-> Китепканаларды башкаруу…
TFT_eSPI орнотуу
Китепкана папкасына барып, User_Setup.h файлынын саптарын сүрөттө көрсөтүлгөндөй калтыруу үчүн өзгөртүңүз.
4 -кадам: ESP32_Check_Internet_Connection.ino
Камтыйт жана аныктайт
#аныктоо TINY_GSM_MODEM_SIM800#камтыйт
#кошуу
#кошуу
#кошуу
// Сын -пикирлерди текшерүү #SSID "SSID" аныктоо #"12345678" сырсөзүн аныктоо //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Эсептөө мөөнөтү como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 сегмент // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 мин // Usar serial 1 para módulo gsm HardwareSerial SerialGSM (1); TinyGsm модемGSM (SerialGSM); // Интернетке кирүү убактысы жана убактысы uint32_t lastTimeConnected = 0; // Төмөнкү убакыттын өтүшү менен: Colocamos como -MAX_CALL_TIME_INTERVAL акча каражаттарын алмаштыруу // эң башкысы uT32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // User_Setup.h макаронунун библиотекасы TFT_eSPI дисплейи = TFT_eSPI ();
Жайгашуу
void setup () {Serial.begin (115200); setupDisplay (); // Дисплейдин конфигурациясын орнотууGSM (); // GSM xTaskCreatePinnedToCore (checkWiFiConnection, // "CheckWiFiConnection", // 10000 номерлери, // Таманхо да пилха NULL, // Параметро да (эч кандай артыкчылыктуу эмес) 2, nare, NULL, // Caso queria manter uma referência a tarefa que vai ser criada (no caso não precisamos) 0); // Негизги тизмекти аткарыңыз (негизги 0) xTaskCreatePinnedToCore (checkInternet, // Функциялардын аткарылышы "checkInternet", // Nome da tarefa 10000, // Таманхо да НУЛЛ, // Параметро да тарефа (no caso não usamos) 2, // NULL артыкчылыгы, // Caso queria manter uma referência a tarefa que vai ser criada (caso não precisamos жок) 0); // Негизги тизмекти аткарыңыз (негизги 0 пункту 0 циклден ашпашы керек)}
SetupDisplay
void setupDisplay () {display.init (); // Көрсөтүү Display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limla дисплейи көрсөтүлүүчү Display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca же texto como branco com fundo azul display.setTextWrap (false, false); // Текстти көрсөтүү.setCursor (0, 0, 2); // Текстти жазуу}
GSM орнотуу
жараксыз setupGSM () {showDisplay ("GSM орнотуу"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); кечигүү (1000); // Эгерде (! ModemGSM.restart ()) {ESP.restart (); кайтуу; } // Espera pel rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM түйүнүнүн катасы"); кечигүү (3000); ESP.restart (); кайтуу; }}
checkWiFiConnection
жараксыз текшерүүWiFiConnection (void* p) {while (true) {// Эгерде сиз (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Кечиктирүү 1s da tarefa. Кенелер. Милдеттүү түрдө аткарылган иштер портTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
Wi -Fiга туташуу
жараксыз байланышWiFi () {// WWW.begin (SSID, PASSWORD) менен байланышыңыз; Serial.println ("Туташуу"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); кечигүү (500); } // Serial.println (); Serial.println ("Туташты"); }
текшерүү Интернет
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. Кенелер. Милдеттүү түрдө аткарылган иштер портTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Интернет байланышы if (hasInternet ()) {// Атмосферанын ылдамдыгы акыркы убакытка чейин lastTimeConnected = millis (); } // Кечиктирүү vTaskDelay (taskDelay); }}
Интернет бар
bool hasInternet () {WiFiClient кардары; // Endreço IP do do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para conexão client.setTimeout (5); // Tenta conectar бол байланыштырылды = client.connect (adr, 80); // Fex a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado кайтуу туташты; }
Loop
void loop () {// Төмөнкү темпте if if is is disconnos if (isDisconnectedForTooLong ()) {// Mostra display no está desconectado showDisplay ("Disconnected"); // Качан гана телефон номери аныкталса, анда (hasNotCalledPhoneInAWhile ()) {// Лига үчүн телефон чалуу callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Туташты"); } // Espera 1 сегменттин мөөнөтү, циклди кечиктирүү (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Туура кайтуу миллис () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Кайра кайтаруу миллис () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
чалуу Телефон
жараксыз CallPhone () {// Телефонду аныктоо үчүн, эгерде (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Катуу маалымат Serial.println ("чалуу телефону жакшы"); // Атмосфера темпинин эмнеси менен айырмаланат lastTimeCalledPhone = millis (); } else {// Serial.println ("чалуу телефону ишке ашпай калды"); } // Терминалдын модели GSM.callHangup (); }
showDisplay
void showDisplay (String билдирүү) {// Дисплейди көрсөтүү, экстрасенстин өзгөчөлүктөрү Display.setCursor (0, 0); display.println (билдирүү + ""); }
5 -кадам: Файлдарды жүктөп алыңыз
МЕН ЖОК
Сунушталууда:
Сервонун ичинде эмне бар жана Arduino толук окуу куралы менен кантип колдонуу керек: 6 кадам
Сервонун ичиндеги нерселер жана Arduino Full Tutorial менен кантип колдонуу керек: бул үйрөткүчтө, бул видео үйрөткүчтү сервовотч деген эмне экенин изилдеп көрөлү
Эмне үчүн үйлөнүү үчүн робот куруш керек?: 9 кадам
Эмне үчүн үйлөнүү үлпөтүнө робот жасоо керек? Эмнеге менин жашоомдун эң маанилүү күнү үчүн мындай кылбаска? Үйлөнүү тоюна даярдык болуп жаткандыктан, шакектерди коридорго алып бара турган роботту жасадым
DRC деген эмне?: 9 кадам
DRC деген эмне?: Дизайн эрежелерин текшерүү (DRC) - каталар менен дал келбөөчүлүктөрдү аныктоо үчүн колдонулган процесс, мисалы, интервал & бир PCB дизайн/макет боюнча из туурасы. ПХБ тактасынын макети программалык камсыздоону колдонуу менен иштелип чыккан, ар бир ПХБ өндүрүүчүсү жарыялаган эрежелердин топтомуна ээ
Ошентип, сиз STM32duino жүктөгүчтү "Көк таблеткаңызга" жүктөйсүз Эми эмне болот ?: 7 кадам
Ошентип, сиз STM32duino жүктөгүчтү "Көк таблеткаңызга" жүктөйсүз … Эми эмне ?: Эгерде сиз STM32duino жүктөгүчтүн же башка ушуга окшош документтердин кантип жүктөлүшүн түшүндүргөн менин көрсөтмөлөрүмдү окуп чыксаңыз, сиз коддун мисалын жүктөп көрүңүз жана …. эч нерсе болбошу мүмкүн. Маселе " Жалпы " үчүн бардык мисалдар болбосо да, көп. STM32 болот
CPU деген эмне, ал эмне кылат жана аны кантип оңдоо керек: 5 кадам
CPU деген эмне, ал эмне кылат жана аны кантип чечсе болот: Күн сайын бул жерде " CPU " же " Процессор " Мен чындыгында эмнени билдирерин билемби? Мен CPU деген эмне экенин жана ал эмне кылаарын карап чыгам, анан CPUнун жалпы көйгөйлөрүн жана аларды кантип чечүү керектигин карап чыгам