Obsah:
- Krok 1: Montáž
- Krok 2: Zostavenie - stôl
- Krok 3: Knižnica TFT_eSPI
- Krok 4: ESP32_Check_Internet_Connection.ino
- Krok 5: Stiahnite si súbory
Video: Čo keď váš odkaz zlyhá?: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
V tomto videu vytvoríme snímač pádu odkazu s ESP32 a SIM800. To znamená, že pomocou tohto projektu môžeme overiť pripojenie na internet a v prípade zlyhania pripojenia zavolajte na telefónne číslo, ktoré vás upozorní, že sieť má problémy.
Toto je jeden z mnohých spôsobov, ako môžete vykonávať tento typ monitorovania. Aj keď je to jednoduché, umožňuje vám to vyskúšať rôzne zariadenia, ktoré môžu existovať v rámci vašej CPD. Jeho kontrola je pri použití ESP32 oveľa väčšia. Aj keď v tomto prípade používam WiFi, môžete použiť káblové pripojenie na internet, ak chcete.
Krok 1: Montáž
Krok 2: Zostavenie - stôl
Krok 3: Knižnica TFT_eSPI
V IDE Arduino prejdite na Skica-> Zahrnúť
Knižnica-> Spravovať knižnice …
Nainštalujte TFT_eSPI
Prejdite do priečinka knižnice a zmeňte riadky súboru User_Setup.h tak, aby zostal tak, ako je to znázornené na obrázku.
Krok 4: ESP32_Check_Internet_Connection.ino
Zahŕňa a definuje
#define TINY_GSM_MODEM_SIM800#include
#zahrnúť
#zahrnúť
#zahrnúť
// Hromadné vyhľadávanie alebo testovanie WiFi testovania #definovať SSID "SSID" #definovať HESLO "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para úvahy 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 // Usar serial 1 para o módulo 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 para ligar imediatamente // da primeira vez que cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Nastaviť
void setup () {Serial.begin (115200); setupDisplay (); // Inicializácia a konfigurácia nastavenia displejaGSM (); // Inicializa or módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executada "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos 2, da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core que será executionada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executada "checkInternet", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
SetupDisplay
void setupDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limp o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloco o texto como branco com fundo azul display.setTextWrap (false, false); // Desativa a 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
neplatné nastavenieGSM () {showDisplay ("Nastavenie GSM"); // O moduloch GSM hlavné GPIO 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); oneskorenie (1000); // Reštartujte o módulo if (! ModemGSM.restart ()) {ESP.restart (); návrat; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay („Chyba siete GSM“); oneskorenie (3000); ESP. Restart (); návrat; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Oneskorenie oneskorenia o 1 s. É feita em tiká. Viacnásobné vykonanie rozdelenia portov konštantného portuTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Pripojenie"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); oneskorenie (500); } // Se chegou aqui está conectado Serial.println (); Serial.println („Pripojené“); }
checkInternet
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em tiká. Viacnásobné vykonanie rozdelenia portov konštantného portuTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o delay vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {klient WiFiClient; // Adresa IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite para 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 se está desconectado return connected; }
Slučka
void loop () {// Pozrite sa na niektoré detaily a definujte tempo if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Väčšie tempo pre definíciu telefónu, ak (hasNotCalledPhoneInAWhile ()) {// Liga pre definíciu telefónu pre callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Connected"); } // Čas oneskorenia slučky (1 000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a última conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde a última ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
zatelefonovať
void callPhone () {// Faz a ligação para o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a ligação Serial.println ("callphone ok"); // Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis (); } else {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("callphone failed"); } // Koniec a ďalší modemGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Mostra a mensagem on primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (správa + ""); }
Krok 5: Stiahnite si súbory
INO
Odporúča:
Odkaz na Steam na vašom Raspberry Pi: 4 kroky
Steam Link na vašom Raspberry Pi: Steam Link je riešením na rozšírenie vašej knižnice hier Steam do akejkoľvek miestnosti domu prostredníctvom vašej domácej siete. Svoj Raspberry Pi môžete zmeniť na Steam Link
Odkaz na OpenManipulator: 20 krokov (s obrázkami)
Odkaz OpenManipulator: Robotické manipulátory boli vyvinuté do mnohých typov štruktúr. OpenManipulator má najjednoduchšiu štruktúru sériových prepojení, ale iná štruktúra môže byť užitočná pre konkrétne úlohy, preto poskytujeme manipulátory s rôznou štruktúrou, pretože OpenManipulat
Celosvetový odkaz na mikrokontrolér za menej ako 20 dolárov: 15 krokov
Celosvetový odkaz na mikrokontrolér za menej ako 20 dolárov: Ovládajte svoj domáci termostat z práce. Prepnite vypínač na ľubovoľnom mieste na svete. Tento návod ukazuje, ako prepojiť dva alebo viac mikrokontrolérov v hodnote 4 doláre pomocou chrbtovej kosti internetu a jednoduchého kódu VB.Net. Tento buil
Vybudujte 500 metrový rádiový dátový odkaz za menej ako 40 dolárov: 7 krokov
Vybudujte 500 metrový rádiový dátový odkaz za menej ako 40 dolárov .: Máte vodnú nádrž, ktorú chcete merať, alebo priehradu alebo bránu? Chcete zistiť, ako auto klesá po ceste, ale nechcete prevliekať drôty záhradou? Tento návod ukazuje, ako odosielať údaje na 500 metrov so 100% spoľahlivosťou pomocou mikrokontroléra picaxe
Čo robiť, keď ITunes nerozpozná váš iPod: 7 krokov
Čo robiť, keď ITunes nerozpozná váš iPod: Dostali ste teda svoj nový iPod a ste nadšení, že ho môžete používať. Pripojte kábel USB k počítaču a druhý koniec zapojte do zariadenia iPod. Teraz narazíte na problém. Z nejakého dôvodu iTunes nerozpoznáva váš iPod. Môžete si myslieť, že toto je pr