সুচিপত্র:

ESP32: 23 ধাপ সহ সেলুলার নেটওয়ার্কের সাথে IOT
ESP32: 23 ধাপ সহ সেলুলার নেটওয়ার্কের সাথে IOT

ভিডিও: ESP32: 23 ধাপ সহ সেলুলার নেটওয়ার্কের সাথে IOT

ভিডিও: ESP32: 23 ধাপ সহ সেলুলার নেটওয়ার্কের সাথে IOT
ভিডিও: ESP32 Tutorial 7 - Using Array with ESP32 Arduino Programming-SunFounder's ESP32 IoT Learnig kit 2024, জুলাই
Anonim
Image
Image
প্রদর্শন
প্রদর্শন

আজ আমরা জিপিআরএস মডেম, বা বরং, ইএসপি 32 এবং সেলুলার টেলিফোন নেটওয়ার্কের সাথে এর ব্যবহার নিয়ে আলোচনা করব। এটি এমন কিছু যা খুব ভালভাবে কাজ করে। এমকিউটিটি প্রোটোকল ব্যবহার করে, আমরা ইউবিডটস ড্যাশবোর্ডে ডেটা পাঠাব। এই সমাবেশে SIM800L এবং একটি সেল ফোন চিপ ছাড়াও সার্কিটের প্রতিক্রিয়ার জন্য একটি ডিসপ্লে ব্যবহার করুন। এই প্রকল্পের সাথে, তাই, আমরা জিপিআরএস এবং এমকিউটিটির মাধ্যমে তাপমাত্রা এবং আর্দ্রতার ডেটা পাঠাব এবং একটি লাইন চার্টে ডেটা কল্পনা করব।

ধাপ 1: বিক্ষোভ

ধাপ 2: সমাবেশ

সমাবেশ
সমাবেশ

ধাপ 3: সমাবেশ - টেবিল

সমাবেশ - টেবিল
সমাবেশ - টেবিল

ধাপ 4: ইউবিডটস

ইউবিডটস
ইউবিডটস

ধাপ 5: SimpleDHT লাইব্রেরি

সিম্পলডিএইচটি লাইব্রেরি
সিম্পলডিএইচটি লাইব্রেরি

Arduino IDE- এ, Sketch-> Include Library-> Manage Library- এ যান …

SimpleDHT ইনস্টল করুন

ধাপ 6: PubSubClient লাইব্রেরি

PubSubClient লাইব্রেরি
PubSubClient লাইব্রেরি

Arduino IDE- এ, Sketch-> Include Library-> Manage Library- এ যান …

PubSubClient ইনস্টল করুন

ধাপ 7: TinyGSM লাইব্রেরি

TinyGSM লাইব্রেরি
TinyGSM লাইব্রেরি

আরডুইনো আইডিইতে, স্কেচ-> লাইব্রেরি অন্তর্ভুক্ত করুন-> লাইব্রেরি পরিচালনা করুন …

TinyGSM ইনস্টল করুন

ধাপ 8: TFT_eSPI লাইব্রেরি

TFT_eSPI লাইব্রেরি
TFT_eSPI লাইব্রেরি

আরডুইনো আইডিইতে, স্কেচ-> লাইব্রেরি অন্তর্ভুক্ত করুন-> লাইব্রেরি পরিচালনা করুন …

TFT_eSPI ইনস্টল করুন

ধাপ 9: TFT_eSPI লাইব্রেরি

TFT_eSPI লাইব্রেরি
TFT_eSPI লাইব্রেরি

Lib ফোল্ডারে ডিসপ্লে পিন পরিবর্তন করুন।

User_Setup.h ফাইলে পিন করা আছে

C: / Users / ocu Documents / Arduino / লাইব্রেরি / TFT_eSPI

এই ডিফল্টগুলিকে ছবিতে নিম্নলিখিত মানগুলিতে পরিবর্তন করুন।

ধাপ 10: ইউবিডটস

ইউবিডটস
ইউবিডটস
ইউবিডটস
ইউবিডটস
ইউবিডটস
ইউবিডটস

আপনার অ্যাকাউন্ট দিয়ে ইউবিডটসে লগ ইন করুন এবং ডিভাইসগুলিতে ক্লিক করুন

উপরের ডান কোণে "+" বোতামে ক্লিক করুন

ফাঁকা ক্লিক করুন

ডিভাইসের নাম লিখুন। "ডিভাইসের লেবেল" নোট করুন, কারণ এটি "বিষয়" ব্যবহার করা হবে যা আমরা.ino তে ব্যবহার করব

ডিভাইসের তালিকায়, আপনি যে ডিভাইসটি তৈরি করেছেন সেটি প্রদর্শিত হবে। এটিতে ক্লিক করুন।

প্রদর্শিত স্ক্রিনে, "ভেরিয়েবল যোগ করুন" এ ক্লিক করুন। একটি পপআপ আসবে। "কাঁচা" এ ক্লিক করুন।

টেক্সট বক্সে ক্লিক করুন এবং সম্পত্তির নাম লিখুন।

এটা ঠিক হতে হবে যা আমরা.ino এর জসনে পাঠাবো। অন্যান্য সম্পত্তির জন্য এটি পুনরাবৃত্তি করুন।

ইউবিডটস লোগোতে ক্লিক করে ড্যাশবোর্ডে ফিরে যান।

ড্যাশবোর্ডে, "নতুন উইজেট যুক্ত করুন" এ ক্লিক করুন

উইজেটের তালিকায়, "ডাবল অক্ষ" নির্বাচন করুন

ধাপ 11:.ino তে ডেটা পরিবর্তন করা

. Ino তে ডেটা পরিবর্তন করা
. Ino তে ডেটা পরিবর্তন করা
. Ino তে ডেটা পরিবর্তন করা
. Ino তে ডেটা পরিবর্তন করা

ধাপ 12: GPRS_ESP32_DHT.ino - ঘোষণা এবং পরিবর্তনশীল

GPRS_ESP32_DHT.ino - ঘোষণা এবং পরিবর্তনশীল
GPRS_ESP32_DHT.ino - ঘোষণা এবং পরিবর্তনশীল

#TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrdosdusdosdusdosdusdos postd posts temped temped tempes temped temped tempes temped temped temped tempes temped temped temped tempes temped temped temped tempes temped tempe tempe tempe tempe (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" URL #ERDOER #ER #DERER #ER #DERER #ER #DERER #ER #DERER #ER #DERER #ER #DERER #ER #DERERDER mqtt: //things.ubidots.com "// Porta padrão do MQTT #defeine MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

ধাপ 13: পিন করা

পিন করা
পিন করা

// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem। সেম্পার 1 হার্ডওয়্যার সিরিয়াল সিরিয়াল জিএসএম (1) ব্যবহার করুন; TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, a porta // e o cliente GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; ভাসমান আর্দ্রতা; // Variável onde iremos armazenar o valor da umidade float temperature; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

ধাপ 14: সেটআপ

অকার্যকর সেটআপ () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display বিলম্ব (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

ধাপ 15: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); 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 (সত্য, সত্য); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Setup Display Complete"); }

ধাপ 16: সেটআপ জিএসএম

অকার্যকর সেটআপ GSM () {display.println ("GSM সেটআপ করুন …"); // Inicializamos একটি সিরিয়াল onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); বিলম্ব (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("জিএসএম মডেম পুনরায় চালু করা ব্যর্থ হয়েছে"); বিলম্ব (10000); ESP.restart (); প্রত্যাবর্তন; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("নেটওয়ার্কের সাথে সংযোগ করতে ব্যর্থ"); বিলম্ব (10000); ESP.restart (); প্রত্যাবর্তন; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "") {display.println ("GPRS Connection Failed"); বিলম্ব (10000); ESP.restart (); প্রত্যাবর্তন; } display.println ("সেটআপ জিএসএম সাফল্য"); }

ধাপ 17: সংযোগ MQTTS সার্ভার

অকার্যকর সংযোগ MQTTServer () {display.println ("MQTT সার্ভারে সংযুক্ত হচ্ছে …"); // se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("সংযুক্ত"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); বিলম্ব (10000); ESP.restart (); }}

ধাপ 18: লুপ

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectou do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // টেম্পো decorrido desde o boot em milissegundos স্বাক্ষরবিহীন দীর্ঘ = মিলিস (); // Se passou o intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishedMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

ধাপ 19: ReadDHT

অকার্যকর readDHT () {float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; আর্দ্রতা = জ; }}

ধাপ 20: MQTT প্রকাশ করুন

void publishedMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); সিরিয়াল.প্রিন্ট ("বার্তা প্রকাশ করুন:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // status 1 se sucesso ou 0 se deu erro}

ধাপ 21: CreateJsonString

CreateJsonString
CreateJsonString

স্ট্রিং createJsonString () {String data = "{"; যদি (! isnan (আর্দ্রতা) &&! isnan (তাপমাত্রা)) {তথ্য+= "\" আর্দ্রতা / ":"; ডেটা+= স্ট্রিং (আর্দ্রতা, 2); ডেটা+= ","; ডেটা+= "\" তাপমাত্রা / ":"; ডেটা+= স্ট্রিং (তাপমাত্রা, 2); } ডেটা+= "}"; তথ্য ফেরত; }

ধাপ 22: ShowDataOnDisplay

অকার্যকর ShowDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("আর্দ্রতা:" + স্ট্রিং (আর্দ্রতা, 2 %)); display.println ("তাপমাত্রা:" + স্ট্রিং (তাপমাত্রা, 2)); }

ধাপ 23: ফাইল

ফাইলগুলি ডাউনলোড করুন

আইএনও

পিডিএফ

প্রস্তাবিত: