সুচিপত্র:

ইএসপি 32 সহ আইবিএম ওয়াটসন এন্ডপয়েন্ট: 11 ধাপ
ইএসপি 32 সহ আইবিএম ওয়াটসন এন্ডপয়েন্ট: 11 ধাপ

ভিডিও: ইএসপি 32 সহ আইবিএম ওয়াটসন এন্ডপয়েন্ট: 11 ধাপ

ভিডিও: ইএসপি 32 সহ আইবিএম ওয়াটসন এন্ডপয়েন্ট: 11 ধাপ
ভিডিও: Using LCD1602 or LCD2004 with ESP32 2024, নভেম্বর
Anonim
Image
Image
ESP32 পিনআউট
ESP32 পিনআউট

ESP32 দিয়ে কিভাবে একটি এন্ডপয়েন্ট ডিভাইস মাউন্ট করা যায়, এবং তারপরে এটি একটি ক্লাউড সার্ভিসে পাঠাতে একটি সিরিজের প্রথম ভিডিও আমি আজ এখানে পোস্ট করছি। এই নির্দিষ্ট পর্বে, আমি আপনাকে দেখাবো কিভাবে আইবিএম ওয়াটসনের MQTT প্রোটোকল ব্যবহার করে DHT22 সেন্সর থেকে তথ্য পাঠানো যায়।

আমরা প্রথমে এমকিউটিটি চালু করব, যা একটি মেশিন-টু-মেশিন প্রোটোকল যা আইওটি (ইন্টারনেট অফ থিংস) এ ব্যবহৃত হয়। আমরা এই প্রোটোকল ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা সেন্সর থেকে ডেটা পাঠাবো, এবং তারপর একটি ওয়েব পেজে এই ডেটা সহ গ্রাফ চেক করব।

ধাপ 1: ESP32 পিনআউট

আমি এখানে ESP32 এর Pinout স্থাপন করেছি, যা আমরা আমাদের উদাহরণে ব্যবহার করি। যাইহোক, আমি এটা পরিষ্কার করতে চাই যে প্রকল্পটি ESP8266 এবং এমনকি একই সোর্স কোডের সাথেও কাজ করে।

ধাপ 2: নোডএমসিইউ পিনআউট

NodeMCU পিনআউট
NodeMCU পিনআউট

ধাপ 3: MQTT

এমকিউটিটি
এমকিউটিটি

এমকিউটিটি একটি মেশিন-টু-মেশিন প্রোটোকল যা আইওটিতে ব্যবহৃত হয়। এটি লাইটওয়েট এবং দ্রুত হওয়ার জন্য ডিজাইন করা হয়েছিল। এটি একটি সাবস্ক্রাইব/পাবলিশ সিস্টেম ব্যবহার করে, যেখানে একটি ডিভাইস আপনার আগ্রহের সুনির্দিষ্ট তথ্যের সাথে একটি বিষয়কে "সাবস্ক্রাইব" করে, এবং তারপর যখনই একটি ডিভাইস এই বিষয় সম্পর্কিত তথ্য প্রকাশ করে তখন তথ্য গ্রহণ করে।

একটি সার্ভার প্রোগ্রামের মত, MQTT- র সফটওয়্যার প্রয়োজন। একে বলা হয় দালাল। এই নির্দিষ্ট ক্ষেত্রে, আমরা আইবিএম এর ব্লুমিক্স আইওটি পরিষেবা ব্যবহার করব। এন্ডপয়েন্ট টেস্টিংয়ের জন্য এই পরিষেবা বিনামূল্যে।

পরবর্তীতে, আমাদের একটি মোবাইল ফোন বা ট্যাবলেট থাকতে হবে অ্যাপ্লিকেশন পাশের সাথে, অর্থাৎ MQTT ক্লায়েন্ট হিসাবে। আমাদের ডিভাইস সাইডও আছে, যা থার্মোমিটারের সাথে ESP পাশ। এটি ব্লুমিক্সে তাপমাত্রা এবং আর্দ্রতার ডেটা পাঠায়, যা পরে অ্যাপ্লিকেশন সাইডে এই তথ্য পাঠায়।

ধাপ 4: সমাবেশ

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

আমাদের সার্কিটটিতে 3.3v এবং ডেটা পিনের মধ্যে 4.7k ওহম রেসিস্টার রয়েছে, প্লাস একটি ESP32 বা NodeMCU এর GPIO4 এর সাথে সংযুক্ত একটি DHT22। সুতরাং, এটি আমাদের এন্ডপয়েন্ট।

ধাপ 5: ডায়াগ্রাম

ডায়াগ্রাম
ডায়াগ্রাম
ডায়াগ্রাম
ডায়াগ্রাম

আমি এখানে MQTT লোকাল ব্রোকারের সাথে কাজ করার বিভিন্ন উপায় দেখাই। আমি দুটি ডায়াগ্রাম মডেল স্থাপন করেছি। ভিডিওতে, আমি একটি রাস্টবেরি পাই ব্যবহার করে একটি পরিস্থিতি সম্পর্কে কথা বলি, উদাহরণস্বরূপ।

উপরের ছবিতে, আমাদের প্রথম আর্কিটেকচার রয়েছে যা স্থানীয় ব্রোকারকে অধ্যবসায়ের সাথে ব্যবহার করে এবং এর নীচে দ্বিতীয় আর্কিটেকচারটি কেবল ক্লাউডে ব্রোকারের সাথে যোগাযোগ করে।

ডায়াগ্রামে দেখানো হয়েছে, আমাদের সেন্সর তখন আইবিএম ওয়াটসনের কাছে তাপমাত্রা এবং আর্দ্রতার তথ্য পাঠায়। এটি জোর দেওয়া গুরুত্বপূর্ণ যে আইবিএম ওয়াটসন এই ক্ষেত্রে ডেটা লিখছেন না, কারণ এটি কেবল গ্রাফে প্রদর্শিত হচ্ছে। এর কারণ হল আমরা আজকের উদাহরণে কোন ডাটাবেস ক্রিয়াকলাপকে সম্বোধন করব না, তবে শুধুমাত্র কুইকস্টার্ট পৃষ্ঠায় (https://quickstart.internetofthings.ibmcloud.com/) অ্যাক্সেস নির্দেশ করে, যা এন্ডপয়েন্টের স্থিতি প্রদর্শন করবে। স্কিমটি সহজ এবং ডেটা পাঠাতে ওয়াইফাই ব্যবহার করে।

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

Arduino IDE তে, স্কেচ মেনুতে যান -> লাইব্রেরি অন্তর্ভুক্ত করুন -> লাইব্রেরি পরিচালনা করুন …

খোলা স্ক্রিনে, "DHT" অনুসন্ধান করুন এবং lib "DHT সেন্সর লাইব্রেরি" ইনস্টল করুন

তারপর, "PubSubClient" টাইপ করুন এবং "PubSubClient" lib ইনস্টল করুন।

ধাপ 7: তাপমাত্রা এবং আর্দ্রতা পাঠাগার

তাপমাত্রা এবং আর্দ্রতা পাঠাগার
তাপমাত্রা এবং আর্দ্রতা পাঠাগার

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

এমকিউটিটি লাইব্রেরি
এমকিউটিটি লাইব্রেরি

ধাপ 9: MQTT.ino

আমরা কোন ESP ব্যবহার করা হচ্ছে তা যাচাই করে এবং সংশ্লিষ্ট লাইব্রেরি এবং ওয়াইফাই আমদানি করে সোর্স কোড শুরু করি। আমরা এখনও MQTT Libs এবং তাপমাত্রা এবং আর্দ্রতা সেন্সর অন্তর্ভুক্ত করি।

// Verifica qual ESP está sendo utilizado // e importa a lib e wifi correspondente #if defined (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include

পরবর্তী, আমরা নিম্নলিখিতগুলি সংজ্ঞায়িত করি: ডেটা জমা দেওয়ার মধ্যে ব্যবধান, MQTT সার্ভার যা ব্যবহার করা হবে, চার্টে মুদ্রণ তথ্য এবং আইডি। QUICK_START স্ট্রিংটি কেমন হওয়া উচিত তাও আমরা উল্লেখ করেছি।

// Intervalo entre os envios #সংজ্ঞায়িত করুন ইন্টারভাল 1000.messaging.internetofthings.ibmcloud.com "// Nome do tópico que devemos enviar os dados // para que eles apareçam nos gráficos #define TOPIC_NAME" iot-2/evt/status/fmt/json "// ID que usaremos para conectar // QUICK_START deve permanentecer como está const String QUICK_START = "d: quickstart: arduino:";

এই ধাপে, আমরা একটি অনন্য আইডি সংজ্ঞায়িত করি। এই উদাহরণে, আমরা যে ডিভাইসটি ব্যবহার করছি তার MAC ঠিকানা ব্যবহার করি। এটি কুইকস্টার্ট সাইটে শনাক্তকরণ হিসেবে কাজ করবে। এখানে, আমরা আমাদের ডিভাইসের আইডির সাথে কুইকস্টার্ট আইডি সংযুক্ত করি।

// No DEVICE_ID você deve mudar para um id único // Aqui nesse exemplo utilizamos o MAC Address // do dispositivo que estamos utilizando // Servirá como identificação no site //https://quickstart.internetofthings.ibmcloud.com const string DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do quickstart com o id do nosso // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;

আমরা তখন MQTT এবং WiFi, সেইসাথে তাপমাত্রা এবং আর্দ্রতার মানগুলির সাথে জড়িত বস্তু এবং ভেরিয়েবলগুলি কনফিগার করি।

// ক্লায়েন্ট ওয়াইফাই কিউ এমকিউটিটি irá ইউটিলিজার প্যারা সে কানেক্টার ওয়াইফাই ক্লায়েন্ট ওয়াইফাই ক্লায়েন্ট; // Cliente MQTT, passamos a url do server, a porta // e o cliente WiFi PubSubClient client (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objeto que realiza a leitura da temperatura e da umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura float temperature = 0; // Variável para guardarmos o valor da umidade ভাসমান আর্দ্রতা = 0;

MQTT.ino - সেটআপ

সেটআপে, আমরা DHT আরম্ভ করব, এবং ওয়াইফাই নেটওয়ার্ক এবং MQTT সার্ভারে সংযোগ করব।

অকার্যকর সেটআপ () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao সার্ভার MQTT connectMQTTServer (); }

MQTT.ino - লুপ

লুপে, আমরা জেসন তৈরির জন্য সেন্সর ডেটা সংগ্রহ করি যা আইবিএম ওয়াটসন গ্রাফ তৈরির প্রত্যাশা করে এমন বিষয়ে প্রকাশিত হবে।

void loop () {// Tempos agora em milisegundos long now = millis (); // Se o tempo desde o último envio for maior que o intervalo de envio if (now - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu o último envio lastPublishTime = now; // ফাজেমোস এ লেইটুরা দা টেম্পেরাটুর ই উমিডে রিডসেন্সর (); সিরিয়াল.প্রিন্ট ("বার্তা প্রকাশ করুন:"); // Criamos o json que enviaremos para o server mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos no tópico onde o servidor espera para receber // e gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}

MQTT.ino - setupWiFi

এখানে, আমাদের ওয়াইফাই নেটওয়ার্কের সাথে সংযোগের জন্য দায়ী ফাংশন রয়েছে।

// Função responsável por conectar à rede WiFivoid setupWiFi () {Serial.println (); সিরিয়াল.প্রিন্ট ("এর সাথে সংযুক্ত হচ্ছে"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com a rede seja establishelecida while (WiFi.status ()! = WL_CONNECTED) {বিলম্ব (500); সিরিয়াল.প্রিন্ট ("।"); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("ওয়াইফাই সংযুক্ত"); }

MQTT.ino - সংযোগ MQTTS সার্ভার

এই ধাপে, আমরা MQTT সার্ভারের সাথে সংযোগের জন্য দায়ী ফাংশন ব্যবহার করি।

// Função responsável por conectar ao server MQTTvoid connectMQTTServer () {Serial.println ("সংযোগ হচ্ছে MQTT সার্ভারে…"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("সংযুক্ত"); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}

MQTT.ino - readSensor

এই ফাংশনে তাপমাত্রা এবং আর্দ্রতার ডেটা পড়ার সংজ্ঞা দেওয়া হয়েছে।

// Função responsável por realizar a leitura // da temperatura e umidade void readSensor () {float value; // ফাজ এ লেইটুর দা টেম্প্রেটুরা মান = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (value)) {// Armazena o novo valor da temperatura temperature = value; } // ফাজ এ লেইটুরা দা উমিডে মান = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade humidity = value; }}

MQTT.ino - createJsonString

এখানে, আমাদের পড়া ফাংশন সহ একটি Json তৈরির জন্য দায়ী ফাংশন রয়েছে।

// Função responsável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; ডেটা+= "\" d / ": {"; ডেটা+= "\" তাপমাত্রা / ":"; ডেটা+= স্ট্রিং (তাপমাত্রা); ডেটা+= ","; ডেটা+= "\" আর্দ্রতা / ":"; ডেটা+= স্ট্রিং (আর্দ্রতা); ডেটা+= "}"; ডেটা+= "}"; তথ্য ফেরত; }

ধাপ 10: গ্রাফিক

গ্রাফিক
গ্রাফিক
গ্রাফিক
গ্রাফিক

সেন্সর গ্রাফ দেখতে, যান

quickstart.internetofthings.ibmcloud.com এ

ডিভাইস আইডি ফিল্ডে, আপনার কোডে সংজ্ঞায়িত DEVICE_ID লিখুন।

- এই ডিভাইস আইডিটিকে একটি অনন্য আইডিতে পরিবর্তন করা গুরুত্বপূর্ণ, এটি শুধুমাত্র অন্য ব্যক্তির পাঠানো ডেটার সাথে দ্বন্দ্ব এড়াতে ব্যবহৃত হয়।

অবশেষে, শর্তাবলী গ্রহণ করুন এবং যান ক্লিক করুন।

এই প্রকল্পে, আমরা আইবিএম ওয়াটসন সার্ভারে আমাদের এন্ডপয়েন্ট পরীক্ষা করেছি। এটি নিশ্চিত করে যে আমাদের আরডুইনো প্রোগ্রামটি প্ল্যাটফর্মের সাথে সঠিকভাবে যোগাযোগ করছে, এবং আমরা যদি একটি অ্যাকাউন্ট তৈরি করি তবে ক্লাউড পরিষেবা দ্বারা আমরা যে ডেটা প্রেরণ করব তা সহজেই গ্রহণ করা হবে।

এই সিরিজের একটি আসন্ন ভিডিওতে, আমি আপনাকে দেখাব কিভাবে আইবিএম ওয়াটসনে লগ ইন করতে হয়, সেইসাথে এই বা অন্য ক্লাউড সার্ভিসের ডেটা ব্যাঙ্কে লিখতে হয়, যেমন গুগল, অ্যামাজন, অন্যদের মধ্যে।

ধাপ 11: ফাইল

ফাইল ডাউনলোড করুন:

পিডিএফ

আইএনও

প্রস্তাবিত: