Obsah:
- Krok 1: Montáž
- Krok 2: Sestavení - stůl
- Krok 3: Knihovna TFT_eSPI
- Krok 4: ESP32_Check_Internet_Connection.ino
- Krok 5: Stáhněte si soubory
Video: Co když se váš odkaz zhroutí?: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V tomto videu vytvoříme snímač pádu odkazu s ESP32 a SIM800. To znamená, že u tohoto projektu můžeme ověřit připojení k internetu a v případě selhání připojení zavolat na telefonní číslo a upozornit tak, že síť má potíže.
Toto je jeden z mnoha způsobů, jak můžete provádět tento typ monitorování. I když je to jednoduché, umožňuje vám to vyzkoušet různá zařízení, která mohou v rámci vašeho CPD existovat. Jeho síla kontroly se při použití ESP32 stává mnohem větší. I když v tomto případě používám WiFi, můžete použít kabelové připojení k internetu, pokud dáváte přednost.
Krok 1: Montáž
Krok 2: Sestavení - stůl
Krok 3: Knihovna TFT_eSPI
V Arduino IDE přejděte na Sketch-> Include
Knihovna-> Spravovat knihovny…
Nainstalujte TFT_eSPI
Přejděte do složky knihovny a změňte řádky souboru User_Setup.h tak, aby byl ponechán tak, jak je znázorněno na obrázku.
Krok 4: ESP32_Check_Internet_Connection.ino
Zahrnuje a definuje
#define TINY_GSM_MODEM_SIM800#include
#zahrnout
#zahrnout
#zahrnout
// Mude para o nome e senha da sua rede WiFi que quer testar #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" "// Tempo que deve esperar para considerar 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 ();
Založit
neplatné nastavení () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // 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); // Noumero do core que será executada 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)}
Nastavení zobrazení
neplatné nastaveníDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca 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}
Nastavení GSM
neplatné nastaveníGSM () {showDisplay ("Nastavení GSM"); // O modulu GSM gesto GPIO 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); zpoždění (1000); // Restart o módulo if (! ModemGSM.restart ()) {ESP.restart (); vrátit se; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay („Chyba sítě GSM“); zpoždění (3000); ESP. Restart (); vrátit se; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Zpoždění zpoždění o 1 s. É feita em tiká. Para executar em millis dividimos pela constante portTICK_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 ("Připojování"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); zpoždění (500); } // Se chegou aqui está conectado Serial.println (); Serial.println („Připojeno“); }
checkInternet
void checkInternet (void* p) {// Prodleva 5 segundos da tarefa. É feita em tiká. Prováděcí proces může být rozdělen do několika portTICK_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; // Endreço 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; }
Smyčka
void loop () {// Podívejte se na definovanou rychlost a definujte tempo if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Sledujeme rychlost paraboly s definicí telefonu, pokud (hasNotCalledPhoneInAWhile ()) {// Liga pro definování telefonu s telefonem callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
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; }
callPhone
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 {// Zjišťování vodního prostředí a sériového připojení Serial.println („telefon se nezdařil“); } // Ukončení modemu modemGSM.callHangup (); }
showDisplay
void showDisplay (Řetězcová zpráva) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (zpráva + ""); }
Krok 5: Stáhněte si soubory
INO
Doporučuje:
Maska Covid-19, která na vás křičí, když se dotknete obličeje: 4 kroky
Maska Covid-19, která na vás křičí, když se dotknete obličeje: Nemůžete se přestat dotýkat svého obličeje? Připevněte tuto elektroniku na masku, kterou máte, a budete neustále upozorňováni, abyste to nedělali
Odkaz na OpenManipulator: 20 kroků (s obrázky)
Odkaz OpenManipulator: Robotické manipulátory byly vyvinuty do mnoha druhů struktur. OpenManipulator má nejjednodušší strukturu sériových vazeb, ale jiná struktura může být užitečná pro konkrétní úkoly, takže poskytujeme manipulátory s různou strukturou jako OpenManipulat
Celosvětový odkaz na mikrokontrolér za méně než 20 $: 15 kroků
Celosvětový odkaz na mikrokontrolér za méně než 20 $: Ovládejte svůj domácí termostat z práce. Zapněte postřikovač odkudkoli na světě přepnutím přepínače. Tento Instructable ukazuje, jak propojit dva nebo více mikrokontrolérů za 4 $ pomocí páteře internetu a nějakého jednoduchého kódu VB.Net. Tento buil
Co dělat, když ITunes nerozpozná váš iPod: 7 kroků
Co dělat, když ITunes nerozpozná váš iPod: Takže jste dostali svůj nový iPod a jste nadšení, že ho můžete používat. Zapojte kabel USB do počítače a druhý konec zapojte do iPodu. Nyní narazíte na problém. Z nějakého důvodu iTunes nerozpozná váš iPod. Možná si myslíte, že je to pr
Co dělat, když vás obtěžují pokyny: 7 kroků
Co dělat, když vás obtěžují Instructables: Instructables je rodina kutilů se členy po celém světě. Všimněte si důrazu na rodinu. Někdy (naštěstí ne příliš často) se vplíží pár špatných jablek a rozvrátí naši rodinu. Řešení tohoto typu situace je předmětem tohoto Instructab