Mục lục:
- Bước 1: Lắp ráp
- Bước 2: Lắp ráp - Bảng
- Bước 3: Thư viện TFT_eSPI
- Bước 4: ESP32_Check_Internet_Connection.ino
- Bước 5: Tải xuống tệp
Video: Điều gì sẽ xảy ra nếu liên kết của bạn gặp sự cố?: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Trong video này, chúng tôi sẽ tạo cảm biến thả liên kết với ESP32 và SIM800. Điều này có nghĩa là với dự án này, chúng tôi có thể xác minh kết nối với internet và trong trường hợp kết nối bị lỗi, hãy gọi đến một số điện thoại để thông báo rằng mạng đang gặp sự cố.
Đây là một trong nhiều cách bạn có thể thực hiện loại giám sát này. Mặc dù đơn giản nhưng nó cho phép bạn kiểm tra các thiết bị khác nhau có thể tồn tại trong CPD của bạn. Sức mạnh kiểm tra của nó trở nên lớn hơn nhiều khi sử dụng ESP32. Mặc dù tôi sử dụng WiFi trong ví dụ này, nhưng bạn có thể sử dụng Internet có dây nếu muốn.
Bước 1: Lắp ráp
Bước 2: Lắp ráp - Bảng
Bước 3: Thư viện TFT_eSPI
Trong Arduino IDE, đi tới Sketch-> Bao gồm
Thư viện-> Quản lý Thư viện…
Cài đặt TFT_eSPI
Đi tới thư mục thư viện và thay đổi các dòng của tệp User_Setup.h để nó như được hiển thị trong hình ảnh.
Bước 4: ESP32_Check_Internet_Connection.ino
Bao gồm và xác định
# xác định TINY_GSM_MODEM_SIM800 # bao gồm
#bao gồm
#bao gồm
#bao gồm
// Mude para o nome e senha da sua red 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 adjrar como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 phút // Usar serial 1 para o módulo gsm HardwareSerial SerialGSM (1); Modem TinyGsmGSM (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; // Permanentm em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Cài đặt
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executive "checkWiFiConnection", // 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 referenceência para a tarefa que vai ser criada (no caso não Preisamos) 0); // Número do core que será executive a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executive "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 referenceência para a tarefa que vai ser criada (no caso não trước 0); // Número do core que será executive 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); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como cámco 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
void setupGSM () {showDisplay ("Thiết lập GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); chậm trễ (1000); // Khởi động lại o módulo if (! ModemGSM.restart ()) {ESP.restart (); trở lại; } // Espera pela red celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Lỗi Mạng GSM"); chậm trễ (3000); ESP.restart (); trở lại; }}
checkWiFiConnection
void checkWiFiConnection (void * p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Độ trễ 1s da tarefa. É feita em ve. Para thi hành em millis dividimos pela hằng số 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, MẬT KHẨU); Serial.println ("Đang kết nối"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); chậm trễ (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Đã kết nối"); }
checkInternet
void checkInternet (void * p) {// Trì hoãn 5 segundos da tarefa. É feita em ve. Para thi hành em millis dividimos pela hằng số 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 () {máy khách 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 kết nối = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado return kết nối; }
Vòng
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Đã ngắt kết nối"); // Se faz tempo que não liga para o telefone Defdo if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone Defdo callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Đã kết nối"); } // Espera 1 segundo para a próxima iteração làm trễ vòng lặp (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a última conexão cho maior que o nhất định 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 Defdo return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
gọi điện thoại
void callPhone () {// Faz a ligação para o telefone Defdo 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 ("điện thoại bị lỗi"); } // Chấm dứt một modem dây chằngGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (tin nhắn + ""); }
Bước 5: Tải xuống tệp
NS
Đề xuất:
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! -- Hướng dẫn Arduino IR: 5 bước (có hình ảnh)
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! || Hướng dẫn sử dụng Arduino IR: Trong dự án này, tôi sẽ chỉ cho bạn cách tôi định vị lại các nút vô dụng trên điều khiển từ xa của TV để điều khiển đèn LED phía sau TV. Bạn cũng có thể sử dụng kỹ thuật này để kiểm soát tất cả mọi thứ với một chút chỉnh sửa mã. Tôi cũng sẽ nói một chút về lý thuyết
Liên kết Steam trên Raspberry Pi của bạn: 4 bước
Steam Link trên Raspberry Pi của bạn: Steam Link là một giải pháp để mở rộng thư viện trò chơi Steam của bạn đến bất kỳ phòng nào trong nhà thông qua mạng gia đình của bạn. Bạn có thể biến Raspberry Pi của mình thành Steam Link
Xây dựng hệ thống liên lạc nội bộ hoặc bộ đàm của riêng bạn từ hai điện thoại không dây cũ: 6 bước
Xây dựng hệ thống liên lạc nội bộ hoặc bộ đàm của riêng bạn từ hai điện thoại không dây cũ: Tất cả chúng ta đều có điện thoại cũ. Tại sao không biến chúng thành một hệ thống liên lạc nội bộ cho ngôi nhà trên cây trẻ em của bạn. Hoặc biến hai chiếc điện thoại không dây cũ thành bộ đàm tại nhà. Đây là cách
Xây dựng một liên kết dữ liệu vô tuyến 500 mét với giá dưới 40 đô la.: 7 bước
Xây dựng một liên kết dữ liệu vô tuyến 500 mét với giá dưới 40 đô la. Muốn phát hiện một chiếc ô tô đang lao xuống ổ nhưng không muốn luồn dây điện qua khu vườn? Tài liệu hướng dẫn này chỉ ra cách gửi dữ liệu 500 mét với độ tin cậy 100% bằng vi điều khiển picaxe
Tái chế công tắc điều chỉnh độ sáng cũ của bạn làm điều khiển nhiệt độ thay đổi cho sắt hàn của bạn: 7 bước
Tái chế công tắc điều chỉnh độ sáng cũ của bạn làm điều khiển nhiệt độ thay đổi cho bàn ủi hàn của bạn: Tôi đã thấy rất nhiều thiết bị điều khiển nhiệt độ thay đổi chuyên nghiệp cho sắt hàn, nhưng quá đắt. Vì vậy, tôi tạo ra một cái từ một công tắc điều chỉnh độ sáng cũ, ổ cắm, đĩa gang và phích cắm đã bị bỏ đi và một số hộp công tắc PVC cũ đi kèm với nó và như vậy