Sadržaj:
- Korak 1: Montaža
- Korak 2: Montaža - Tabela
- Korak 3: TFT_eSPI biblioteka
- Korak 4: ESP32_Check_Internet_Connection.ino
- Korak 5: Preuzmite datoteke
Video: Šta ako vam se veza sruši?: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
U ovom videu ćemo stvoriti senzor za pad veze sa ESP32 i SIM800. To znači da ovim projektom možemo provjeriti vezu s internetom, a u slučaju prekida veze nazvati telefonski broj da vas obavijestimo da je mreža u nevolji.
Ovo je jedan od mnogih načina na koje možete izvesti ovu vrstu nadzora. Iako je jednostavan, omogućava vam testiranje različitih uređaja koji možda postoje u vašem CPD -u. Njegova moć provjere postaje mnogo veća kada se koristi ESP32. Iako u ovom primjeru koristim WiFi, možete koristiti žičani internet, ako želite.
Korak 1: Montaža
Korak 2: Montaža - Tabela
Korak 3: TFT_eSPI biblioteka
U Arduino IDE idite na Sketch-> Include
Biblioteka-> Upravljanje bibliotekama …
Instalirajte TFT_eSPI
Idite u fasciklu biblioteke i promijenite redove datoteke User_Setup.h tako da je ostavite kako je prikazano na slici.
Korak 4: ESP32_Check_Internet_Connection.ino
Uključuje i definira
#define TINY_GSM_MODEM_SIM800#include
#include
#include
#include
// Omogući parametre kako bismo mogli ponovo uspostaviti WiFi que quer test #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Broj telefona za mobilnu #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar parafers como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Upotrebljavajte serijski 1 parametar za gsm HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL paralelno sa imediatamente // da primeira vez que cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na biblioteci TFT_eSPI display = TFT_eSPI ();
Postaviti
void setup () {Serial.begin (115200); setupDisplay (); // Pokretanje i konfiguracija prikaza prikaza setupGSM (); // Inicializacija o upravljanju GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executada "checkWiFiConnection", // Ime da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (bez prethodnog zahtjeva, // prethodno stanje) da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Numeričko jezgro za izvršavanje servera i tarefa (upotreba jezgra 0 za petlju besplatne veze za jezgro 1) xTaskCreatePinnedToCore (checkInternet, // Funkcija za izvršavanje "checkInternet", // Ime tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (nema caso não usamos) 2, // Prioritet da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (nema caso não precisamos) 0); // Numeričko jezgro koje izvodi izvršnu datoteku i tarefu (upotreba o jezgru 0 za petlju ili petlja o jezgri 1)}
SetupDisplay
void setupDisplay () {display.init (); // Pokretanje prikaza display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa o display a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (false, false); // Desativa quebra de linha display.setTextSize (1); // Muda o tamanho do texto display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
SetupGSM
void setupGSM () {showDisplay ("Postavljanje GSM -a"); // O MODU GSM -a ima GPIO -e 4 i 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kašnjenje (1000); // Ponovno pokretanje o upravljanju if (! ModemGSM.restart ()) {ESP.restart (); return; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Greška GSM mreže"); kašnjenje (3000); ESP.restart (); return; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Kašnjenje 1s da tarefa. É feita em krpelja. Za izvršavače koji su podijeljeni na stalni portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Veza sa ao roteadorom o imenu i imenu WiFi.begin (SSID, PASSWORD); Serial.println ("Povezivanje"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kašnjenje (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Povezano"); }
checkInternet
void checkInternet (void* p) {// Odgoda od 5 sekundi do tarefe. É feita em krpelja. Za izvršavače koji su podijeljeni na stalni portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiziranje o tempu que aconteceu i útlima conexão lastTimeConnected = millis (); } // Aplikacija o kašnjenju vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient klijent; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Ograničeno ograničenje za conexão client.setTimeout (5); // Tenta conectar bool connected = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false ne está desconectado return connected; }
Petlja
void loop () {// Omogućava vam da definirate tempo ako je definitivno if (isDisconnectedForTooLong ()) {// Ne prikazuje se prikaz na ekranu ako je prikazano showDisplay ("Disconnected"); // Se faz tempo que não liga za definiranje telefona if (hasNotCalledPhoneInAWhile ()) {// Liga za definitiranje telefona callPhone (); }} else {// Morate prikazati sve što je prikazano showDisplay ("Povezano"); } // Espera 1 segundo para próxima iteração do petlje kašnjenja (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a ultima conexão for maior que or definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true is o tempo desde a ultima ligacão para or phone for maior que or definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
callPhone
void callPhone () {// Faz veze za parametre telefona definitivno if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a liga Serã.println ("callphone ok"); // Aktualiziranje tempa vremena za potpunu vezu lastTimeCalledPhone = millis (); } else {// Se entrou aqui é porque não conseguiu fazer and ligação Serial.println ("callphone failed"); } // Prekini vezu sa modemomGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Prikazuje izbornik na početnoj stranici za prikaz, ograničavajući događaj može prikazati dodatke display.setCursor (0, 0); display.println (poruka + ""); }
Korak 5: Preuzmite datoteke
JA NE
Preporučuje se:
Kompaktni senzor vremena sa GPRS (SIM karticom) podatkovna veza: 4 koraka
Kompaktni senzor vremena sa GPRS (SIM karticom) podatkovna veza: sažetak projekta Ovo je vremenski senzor na baterije koji se temelji na BME280 senzoru temperature/pritiska/vlažnosti i ATMega328P MCU. Radi na dvije 3,6 V litij -tionilne AA baterije. Ima izuzetno nisku potrošnju sna od 6 µA. On šalje dat
Esp8266 Firebase veza: 10 koraka
Esp8266 Firebase veza: Za početak ovog projekta potrebne su vam sljedeće komponente: esp8266 (NodeMcu v3 Lua) google račun (firebase) esp8266 možete kupiti ovdje: amazon.com aliexpress.com
Šta će vam trebati i naučiti: 4 koraka
Šta će vam trebati i naučiti: Raspberry Pi ploča je ono što ćete naučiti da koristite na ovom času. Dakle, šta je to i odakle je došlo? Raspberry Pi je mali, jeftin i programabilni računar koji je stvorila Raspberry Pi Foundation. Jedan od suosnivača fondacije
Micro: bitni MU senzor vida - serijska veza i OLED ekran: 10 koraka
Micro: bitni MU senzor vida - serijska veza i OLED ekran: Ovo je moj treći vodič do senzora vida MU. Do sada smo pokušavali koristiti MU za prepoznavanje kartica s brojevima i oblicima, ali da bismo istražili naš MU senzor sa složenijim projektom, željeli bismo postići bolji izlaz. Ne možemo dobiti toliko informacija
Šta učiniti ako vas uznemiravaju instrukcije: 7 koraka
Šta učiniti ako vas uznemiravaju na Instructables -u: Instructables je porodica DIYers -a sa članovima širom svijeta. Uočite naglasak na porodici. Ponekad se (na sreću ne tako često) nekoliko loših jabuka prikrade i poremeti našu porodicu. Suočavanje s ovakvom situacijom predmet je ovog Uputstva