সুচিপত্র:
- ধাপ 1: সমাবেশ
- ধাপ 2: সমাবেশ - টেবিল
- ধাপ 3: TFT_eSPI লাইব্রেরি
- ধাপ 4: ESP32_Check_Internet_Connection.ino
- ধাপ 5: ফাইলগুলি ডাউনলোড করুন
ভিডিও: যদি আপনার লিঙ্ক ক্র্যাশ হয়? 5 ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
এই ভিডিওতে, আমরা একটি ESP32 এবং একটি SIM800 দিয়ে একটি লিঙ্ক ড্রপ সেন্সর তৈরি করব। এর মানে হল যে এই প্রকল্পের মাধ্যমে, আমরা ইন্টারনেটের সাথে সংযোগ যাচাই করতে পারি, এবং সংযোগ বিঘ্নিত হলে, একটি টেলিফোন নম্বরে কল করে জানিয়ে দিন যে নেটওয়ার্কটি সমস্যায় রয়েছে।
আপনি এই ধরণের পর্যবেক্ষণ করতে পারেন এমন অনেকগুলি উপায়। যদিও এটি সহজ, এটি আপনাকে আপনার CPD এর মধ্যে বিদ্যমান বিভিন্ন ডিভাইস পরীক্ষা করতে দেয়। ESP32 ব্যবহার করার সময় এর চেক পাওয়ার অনেক বেশি হয়ে যায়। যদিও আমি এই উদাহরণে ওয়াইফাই ব্যবহার করি, আপনি চাইলে তারযুক্ত ইন্টারনেট ব্যবহার করতে পারেন।
ধাপ 1: সমাবেশ
ধাপ 2: সমাবেশ - টেবিল
ধাপ 3: TFT_eSPI লাইব্রেরি
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 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 ();
সেটআপ
অকার্যকর সেটআপ () {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 noo no noaso da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Nromero do core que será Executiveada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será execute "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); // Nromero do core que será executeada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
সেটআপডিসপ্লে
void setupDisplay () {display.init (); // Inicializa o প্রদর্শন 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}
সেটআপ জিএসএম
void setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); বিলম্ব (1000); // পুনরায় চালু করুন (যদি! প্রত্যাবর্তন; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM Network Error"); বিলম্ব (3000); ESP.restart (); প্রত্যাবর্তন; }}
WiFiConnection চেক করুন
অকার্যকর পরীক্ষা } // বিলম্ব দে 1s দা তারেফা। É feita em ticks। প্যারা এক্সিকিউটার এম মিলিস ডিভিডিমোস পেলা কনস্ট্যান্ট পোর্ট TICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
ওয়াইফাই সংযোগ করুন
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। প্যারা এক্সিকিউটার এম মিলিস ডিভিডিমোস পেলা কনস্ট্যান্ট পোর্ট TICK_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 (); } // আবেদন বা বিলম্ব vTaskDelay (taskDelay); }}
ইন্টারনেট আছে
bool hasInternet () {WiFiClient client; // Endreço IP 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 ou false se está desconectado return return; }
লুপ
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 telefone definido callPhone (); }} অন্য {// 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 se o tempo desde a última ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
কল ফোন
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 (); }
প্রদর্শন
void showDisplay (স্ট্রিং মেসেজ) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (বার্তা + ""); }
ধাপ 5: ফাইলগুলি ডাউনলোড করুন
পিডিএফ
আইএনও
প্রস্তাবিত:
আপনার রাস্পবেরি পাইতে স্টিম লিঙ্ক: 4 টি ধাপ
আপনার রাস্পবেরি পাইতে স্টিম লিংক: স্টিম লিংক হল আপনার স্টিম গেমস লাইব্রেরিকে আপনার হোম নেটওয়ার্কের মাধ্যমে বাড়ির যে কোন ঘরে প্রসারিত করার একটি সমাধান। আপনি আপনার রাস্পবেরি পাইকে স্টিম লিংকে পরিণত করতে পারেন
যদি এটি হয় তবে - মুডল্যাম্প: 4 টি ধাপ (ছবি সহ)
If This Then That - Moodlamp: Opdracht: Bouw/ ontwerp een interactief systeem (met hard en software) dat data kan ontvangen en verwerken.Omdat ik geen enkele ervaring heb met arduino en code schrijven heel erg lastig vind, heb ik besloten সহজভাবে তোমার সাথে দেখা হলো
আরডুইনো সিঙ্গেলপ্লেয়ার পং- যদি এটি হয়, তাহলে তা: 5 টি ধাপ
Arduino Singleplayer Pong- যদি এই, তাহলে যে: Dit arduino প্রকল্প হল gebaseerd op een 2 speler pong project hier op instructables (https: //www.instructables.com/id/Portable-Arduino-a …) maar dit project is সিংগেল প্লেয়ারের সাথে দেখা হয়েছে একদম AI.Onderdelen: Arduino Uno Nokia 5100 scherm। https: // ww
স্পর্শ সহ মেমরি গেম (সাইমন বলে) - যদি এটি হয় তবে: 6 টি ধাপ (ছবি সহ)
স্পর্শের সাথে মেমোরি গেম (সাইমন বলে) - যদি এটি তাহলে: আমি একটি স্কুল প্রকল্পের জন্য স্বনির্মিত টাচ প্যাড এবং একটি নিওপিক্সেল রিং দিয়ে একটি মেমরি গেম তৈরি করেছি। এই গেমটি সাইমন সেসের অনুরূপ, তবে গেমটিতে অনেক ধরনের ইনপুট এবং প্রতিক্রিয়া (শব্দ এবং হালকা প্রভাব) ভিন্ন। আমি সু থেকে সাউন্ড প্রোগ্রাম করেছি
কিভাবে আপনার কম্পিউটার ক্র্যাশ করবেন: 5 টি ধাপ
কিভাবে আপনার কম্পিউটার ক্র্যাশ করবেন: খুবই সহজ