فهرست مطالب:
- مرحله 1: مونتاژ
- مرحله 2: مونتاژ - جدول
- مرحله 3: کتابخانه TFT_eSPI
- مرحله 4: ESP32_Check_Internet_Connection.ino
- مرحله 5: فایل ها را بارگیری کنید
![اگر لینک شما خراب شود چه ؟: 5 مرحله اگر لینک شما خراب شود چه ؟: 5 مرحله](https://i.howwhatproduce.com/images/002/image-3938-44-j.webp)
تصویری: اگر لینک شما خراب شود چه ؟: 5 مرحله
![تصویری: اگر لینک شما خراب شود چه ؟: 5 مرحله تصویری: اگر لینک شما خراب شود چه ؟: 5 مرحله](https://i.ytimg.com/vi/GNHIPIib5nc/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
![Image Image](https://i.howwhatproduce.com/images/002/image-3938-46-j.webp)
![](https://i.ytimg.com/vi/08y8Bgm2bW4/hqdefault.jpg)
![اگر لینک شما خراب شود چه؟ اگر لینک شما خراب شود چه؟](https://i.howwhatproduce.com/images/002/image-3938-47-j.webp)
در این ویدئو ، ما یک سنسور افت لینک با ESP32 و SIM800 ایجاد می کنیم. این بدان معناست که با این پروژه می توانیم اتصال به اینترنت را تأیید کنیم و در صورت خرابی اتصال ، با یک شماره تلفن تماس بگیرید تا از مشکل شبکه مطلع شوید.
این یکی از راه های بسیاری است که می توانید این نوع نظارت را انجام دهید. در حالی که ساده است ، به شما امکان می دهد دستگاه های مختلفی را که ممکن است در CPD شما وجود داشته باشد ، آزمایش کنید. هنگام استفاده از ESP32 قدرت بررسی آن بسیار بیشتر می شود. اگرچه من در این مثال از WiFi استفاده می کنم ، اگر ترجیح می دهید می توانید از اینترنت سیمی استفاده کنید.
مرحله 1: مونتاژ
![مونتاژ مونتاژ](https://i.howwhatproduce.com/images/002/image-3938-48-j.webp)
مرحله 2: مونتاژ - جدول
![مونتاژ - جدول مونتاژ - جدول](https://i.howwhatproduce.com/images/002/image-3938-49-j.webp)
مرحله 3: کتابخانه TFT_eSPI
![کتابخانه TFT_eSPI کتابخانه TFT_eSPI](https://i.howwhatproduce.com/images/002/image-3938-50-j.webp)
![کتابخانه TFT_eSPI کتابخانه TFT_eSPI](https://i.howwhatproduce.com/images/002/image-3938-51-j.webp)
در Arduino IDE ، به Sketch-> Include بروید
کتابخانه-> مدیریت کتابخانه ها…
TFT_eSPI را نصب کنید
به پوشه کتابخانه بروید و خطوط فایل User_Setup.h را تغییر دهید تا همانطور که در تصویر نشان داده شده است باقی بماند.
مرحله 4: ESP32_Check_Internet_Connection.ino
شامل و تعریف می شود
#تعریف TINY_GSM_MODEM_SIM800#شامل
#عبارتند از
#عبارتند از
#عبارتند از
// 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 paracommrar como desconectado #تعریف MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #dexine MAX_CALL_TIME_INTERVAL 1800000 // 30 دقیقه // Usar serial 1 para o módulo gsm HardwareSerial SerialGSM (modemGSM TinyGsm (SerialGSM) ؛ // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0؛ // Tempo em que fez a tltima ligação. Colocamos como -MAX_CALL_TIME_INTERVAL برای اولین بار // برای اولین بار در طول زمان uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL ؛ // Pinagem em User_Setup.h and pasta da biblioteca TFT_eSPI display = TFT_eSPI ()؛
برپایی
void setup () {Serial.begin (115200)؛ setupDisplay ()؛ // Inicializa e configura o display setupGSM ()؛ // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection، // Função que será ekzada "checkWiFiConnection"، // Nome da tarefa 10000، // Tamanho da pilha NULL، // Parâmetro da tarefa (no caso não us، // no caso não)، 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á ekzada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet، // Função que será exeada "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á exeada 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 branco com fundo azul display.setTextWrap (غلط ، کاذب) ؛ // 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 ("راه اندازی GSM") ؛ // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600 ، SERIAL_8N1 ، 4 ، 2 ، false) ؛ تاخیر (1000) ؛ // restart o módulo if (! modemGSM.restart ()) {ESP.restart ()؛ برگشت؛ } // Espera pela rede celular if (! modemGSM.waitForNetwork ()) {display.setCursor (0 ، 0) ؛ showDisplay ("خطای شبکه GSM") ؛ تاخیر (3000) ؛ ESP.restart ()؛ برگشت؛ }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi ()؛ } // Delay de 1s da tarefa. É feita em ticks. برای اجرای ما می توانم در مورد پیکر ثابت 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 ("اتصال") ؛ // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print (".")؛ تأخیر (500) ؛ } // Se chegou aqui está conectado Serial.println ()؛ Serial.println ("متصل") ؛ }
چک اینترنت
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em ticks. برای اجرای برنامه em portis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS؛ while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a limtlima conexão lastTimeConnected = millis ()؛ } // Aplica o delay vTaskDelay (taskDelay)؛ }}
hasInternet
bool hasInternet () {مشتری مشتری 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 متصل = client.connect (adr، 80)؛ // Fecha a conexão client.stop ()؛ // Retorna true se está conectado یا false se está desconectado بازگشت متصل؛ }
حلقه
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected")؛ // Se faz tempo que não liga para o telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefonone definido callPhone ()؛ }} else {// Mostra no display que está conectado showDisplay ("متصل")؛ } // 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 o 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 {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("تلفن انجام نشد")؛ } // Termina a ligação modemGSM.callHangup ()؛ }
showDisplay
void showDisplay (پیام رشته) {// Mostra a mensagem na primeira linha do display، limpando os eventuais caracteres extras display.setCursor (0، 0)؛ display.println (پیام + "") ؛ }
مرحله 5: فایل ها را بارگیری کنید
من نه
توصیه شده:
خرابی USB هاب خراب ، باتری شارژ نمی شود: 4 مرحله
![خرابی USB هاب خراب ، باتری شارژ نمی شود: 4 مرحله خرابی USB هاب خراب ، باتری شارژ نمی شود: 4 مرحله](https://i.howwhatproduce.com/images/002/image-5483-39-j.webp)
خرابی USB هاب خراب ، باتری شارژ نمی شود: خوب وقتی از باتری تلفن همراه خود خاموش می شوید متنفر نیستید و نمی توانید تلفن را برای برقراری تماس ، ارسال پیامک یا دسترسی به مخاطبین تلفن خود تا زمانی که یک هاب USB جایگزین دریافت کنید برای راه اندازی یا شارژ تلفن
چگونه می توان از تقریباً هر وب سایت (هاها) موسیقی دریافت کرد (تا زمانی که می توانید آن را بشنوید می توانید آن را دریافت کنید بسیار خوب اگر در فلش جاسازی شود ممکن است نتوانید) ویرایش شده !!!!! اطلاعات اضافه شده: 4 مرحله
![چگونه می توان از تقریباً هر وب سایت (هاها) موسیقی دریافت کرد (تا زمانی که می توانید آن را بشنوید می توانید آن را دریافت کنید بسیار خوب اگر در فلش جاسازی شود ممکن است نتوانید) ویرایش شده !!!!! اطلاعات اضافه شده: 4 مرحله چگونه می توان از تقریباً هر وب سایت (هاها) موسیقی دریافت کرد (تا زمانی که می توانید آن را بشنوید می توانید آن را دریافت کنید بسیار خوب اگر در فلش جاسازی شود ممکن است نتوانید) ویرایش شده !!!!! اطلاعات اضافه شده: 4 مرحله](https://i.howwhatproduce.com/images/002/image-5221-70-j.webp)
چگونه می توان از تقریباً هر وب سایت (هاها) موسیقی دریافت کرد (تا زمانی که می توانید آن را بشنوید می توانید آن را دریافت کنید … بسیار خوب اگر در فلش جاسازی شود ممکن است نتوانید) ویرایش شده !!!!! اطلاعات اضافی: اگر تا به حال به وب سایتی رفته اید و آهنگی را که دوست دارید و می خواهید پخش می کند ، در اینجا اگر شما چیزی را بهم ریختید تقصیر من نیست (تنها راه این است که بدون دلیل شروع به حذف موارد کنید) ) توانستم موسیقی دریافت کنم
چگونه بررسی کنیم که آیا بازی قبل از خرید بازی روی رایانه شما اجرا می شود یا خیر .: 4 مرحله
![چگونه بررسی کنیم که آیا بازی قبل از خرید بازی روی رایانه شما اجرا می شود یا خیر .: 4 مرحله چگونه بررسی کنیم که آیا بازی قبل از خرید بازی روی رایانه شما اجرا می شود یا خیر .: 4 مرحله](https://i.howwhatproduce.com/images/005/image-13141-26-j.webp)
چگونه می توان بررسی کرد که آیا بازی قبل از خرید بازی روی رایانه شما اجرا می شود یا خیر: من اخیراً Call of Duty 4 را از یکی از دوستانم خریداری کردم (ممکن است به صورت رایگان اضافه کنم) زیرا روی رایانه او اجرا نمی شود. خوب ، کامپیوتر او نسبتاً جدید است و من را گیج کرد که چرا کار نمی کند. پس از چند ساعت جستجو در اینترنت ، با
روشی واقعاً ساده/آسان/بدون عارضه که باعث می شود مردم/انسان/حیوانات/روبات ها به نظر برسند که واقعاً بینایی گرمایی دارند (رنگ دلخواه شما) با استفاده از GIMP: 4 مرحله
![روشی واقعاً ساده/آسان/بدون عارضه که باعث می شود مردم/انسان/حیوانات/روبات ها به نظر برسند که واقعاً بینایی گرمایی دارند (رنگ دلخواه شما) با استفاده از GIMP: 4 مرحله روشی واقعاً ساده/آسان/بدون عارضه که باعث می شود مردم/انسان/حیوانات/روبات ها به نظر برسند که واقعاً بینایی گرمایی دارند (رنگ دلخواه شما) با استفاده از GIMP: 4 مرحله](https://i.howwhatproduce.com/images/005/image-14508-25-j.webp)
روشی بسیار ساده/آسان/بدون عارضه برای اینکه مردم/انسانها/حیوانات/روباتها را شبیه به دید واقعی گرما/نور گرم (با انتخاب شما) با استفاده از GIMP: … عنوان
چگونه می توانید آی پاد لمسی خود را (یا اگر آیفون شما واقعاً آن را بهم ریخته است) دریافت کنید تا از خرابی در اثر کمبود حافظه جلوگیری کنید: 3 مرحله
![چگونه می توانید آی پاد لمسی خود را (یا اگر آیفون شما واقعاً آن را بهم ریخته است) دریافت کنید تا از خرابی در اثر کمبود حافظه جلوگیری کنید: 3 مرحله چگونه می توانید آی پاد لمسی خود را (یا اگر آیفون شما واقعاً آن را بهم ریخته است) دریافت کنید تا از خرابی در اثر کمبود حافظه جلوگیری کنید: 3 مرحله](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11125509-how-to-get-your-ipod-touch-or-iphone-if-u-really-messed-it-up-to-quit-crashing-from-lack-of-memory-3-steps-j.webp)
چگونه می توانید آی پاد لمسی (یا اگر آیفون شما واقعاً آن را بهم ریخته است) را متوقف کنید تا از خرابی ناشی از کمبود حافظه جلوگیری کنید: سلام ، کاربران ipod touch و iphone وجود دارد. بسیار خوب ، بنابراین من کاملاً مطمئن هستم که همه شما درک کمی از نحوه عملکرد آی پاد سیب دارید ، درست است؟ شما یک برنامه را باز کنید این برنامه در هر نقطه بین ipod touch 1G ، 5-30 مگابایت موجود