Isi kandungan:
- Langkah 1: Perhimpunan
- Langkah 2: Perhimpunan - Jadual
- Langkah 3: Perpustakaan TFT_eSPI
- Langkah 4: ESP32_Check_Internet_Connection.ino
- Langkah 5: Muat turun Fail
Video: Bagaimana Sekiranya Pautan Anda Rosak ?: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Dalam video ini, kami akan membuat sensor penurunan pautan dengan ESP32 dan SIM800. Ini bermaksud bahawa dengan projek ini, kita dapat mengesahkan sambungan ke internet, dan sekiranya berlaku kegagalan sambungan, hubungi nombor telefon untuk memberitahu bahawa rangkaian berada dalam masalah.
Ini adalah salah satu cara untuk melakukan pemantauan jenis ini. Walaupun mudah, ia membolehkan anda menguji pelbagai peranti yang mungkin ada dalam CPD anda. Kekuatan cek menjadi jauh lebih besar ketika menggunakan ESP32. Walaupun saya menggunakan WiFi dalam contoh ini, anda boleh menggunakan internet berwayar, jika anda mahu.
Langkah 1: Perhimpunan
Langkah 2: Perhimpunan - Jadual
Langkah 3: Perpustakaan TFT_eSPI
Dalam Arduino IDE, pergi ke Sketch-> Include
Perpustakaan-> Urus Perpustakaan…
Pasang TFT_eSPI
Pergi ke folder perpustakaan dan ubah baris fail User_Setup.h untuk meninggalkannya seperti yang ditunjukkan dalam gambar.
Langkah 4: ESP32_Check_Internet_Connection.ino
Merangkumi dan menentukan
#tentukan TINY_GSM_MODEM_SIM800 # sertakan
#sertakan
#sertakan
#sertakan
// 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 mempertimbangkan 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 // Siri pemakaian 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 untuk 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 ();
Persediaan
persediaan tidak sah () {Serial.begin (115200); persediaanDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa o 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 usamosade) 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á 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)}
PersediaanDisplay
batal setupDisplay () {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}
PersediaanGSM
batal setupGSM () {showDisplay ("Persediaan GSM"); // O Módulo GSM estános GPIO 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kelewatan (1000); // Mulakan semula o módulo if (! ModemGSM.restart ()) {ESP.restart (); kembali; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Ralat Rangkaian GSM"); kelewatan (3000); ESP.mulakan semula (); kembali; }}
periksaWiFiConnection
void checkWiFiConnection (void * p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Kelewatan de 1s da tarefa. É feita em berdetik. Para pelaksana em millis dividimos pela stablee portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
sambungWiFi
batal connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Menyambung"); // Espera no while at conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kelewatan (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Bersambung"); }
semakInternet
void checkInternet (kekosongan * p) {// Delay de 5 segundos da tarefa. É feita em berdetik. Para pelaksana em millis dividimos pela stablee portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet jika (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o delay vTaskDelay (taskDelay); }}
mempunyaiInternet
bool hasInternet () {Pelanggan 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 connect = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado kembali disambungkan; }
Gelung
gelung void () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Terputus"); // Se faz tempo que não liga para o telefone definido jika (hasNotCalledPhoneInAWhile ()) {// Liga untuk o telefone definido callPhone (); }} lain {// 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 untuk 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 untuk maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
panggilan telefon
batal 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 (); } lain {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("telefon bimbit gagal"); } // Termina a ligação modemGSM.callHangup (); }
tayangan
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (mesej + ""); }
Langkah 5: Muat turun Fail
INO
Disyorkan:
Topeng Covid-19 Yang Menjerit kepada Anda Sekiranya Anda Menyentuh Wajah Anda: 4 Langkah
Topeng Covid-19 yang Menjerit kepada Anda Sekiranya Anda Menyentuh Wajah Anda: Tidak boleh berhenti menyentuh wajah anda? Letakkan elektronik ini ke topeng yang anda ada dan anda akan selalu diingatkan untuk tidak melakukan perkara itu
Selamatkan Anak Saya: Tempat Duduk Pintar yang Menghantar Mesej Teks Sekiranya Anda Melupakan Anak di dalam Kereta: 8 Langkah
Selamatkan Anak Saya: Tempat Duduk Pintar yang Menghantar Mesej Teks Sekiranya Anda Melupakan Anak di dalam Kereta: Ia dipasang di dalam kereta, dan terima kasih kepada alat pengesan yang diletakkan di tempat duduk anak, ia memberi amaran kepada kami - melalui SMS atau panggilan telefon - jika kami mendapat pergi tanpa membawa anak dengan kami
Pautan Steam pada Pi Raspberry Anda: 4 Langkah
Steam Link pada Raspberry Pi Anda: Steam Link adalah penyelesaian untuk memperluas perpustakaan permainan Steam anda ke mana-mana ruangan rumah melalui rangkaian rumah anda. Anda boleh mengubah Pi Raspberry anda menjadi Steam Link
Cara Menguji Transistor Bipolar Sekiranya Anda Mempunyai Multimeter Analog: 4 Langkah
Cara Menguji Transistor Bipolar Sekiranya Anda Mempunyai Multimeter Analog: Kami tahu bagaimana transistor berfungsi tetapi sebilangan daripada kita tidak benar-benar tahu bagaimana menguji komponen itu sendiri. Pada masa kini, kebanyakan Multimeter Digital menyediakan soket untuk mengujinya, tetapi apa yang akan anda lakukan jika anda mempunyai Analog / Needletype lama? Ini adalah sim
Bagaimana Mengetahui Sekiranya Yahoo! Pengguna Dilog masuk Sebagai Mod Tidak Terlihat: 6 Langkah
Bagaimana Mengetahui Sekiranya Yahoo! Pengguna Masuk sebagai Mod Tidak Dapat dilihat: ini akan menunjukkan kepada anda bagaimana untuk mengetahui sama ada pengguna yahoo dilog masuk sebagai mod tidak kelihatan dan ia benar-benar berfungsi untuk yahoo messenger 8 tetapi saya tidak mencubanya ke 9 (beta) …. bagaimana ia berfungsi: coretan akan bermula jika rakan anda tidak kelihatan seperti ini ::: "JOHN" muncul