ESP8266 থেকে WhatsApp এ মেসেজ পাঠানো

Whatsapp এর কারনে দেশে-বিদেশে যোগাযোগ কত সহজ হয়ে গিয়েছে তাই না? পৃথিবীর যেকোনো প্রান্তেই হোয়াটসঅ্যাপের মাধ্যমে এখন কল, মেসেজ আর ভিডিও কলের মাধ্যমে যোগাযোগ করা যায়। শুধু ওয়াইফাই কিংবা মোবাইল ডেটা থাকলেই হল। বিনামূল্যেই কল বা মেসেজ পাঠানো যাবে। এই টিউটোরিয়ালে আমরা একটি গ্যাস সেন্সরের নোটিফিকেশন হোয়াটসঅ্যাপের মাধ্যমে আমাদের মোবাইলে রিসিভ করব।

প্রজেক্টের মূলনীতিঃ

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

আমাদের এক্সপেরিমেন্টে ESP8266 একটি ওয়াইফাই নেটওয়ার্কে যুক্ত থাকবে। ESP8266 এর সাথে যুক্ত থাকবে একটি MQ-2 গ্যাস সেন্সর। MQ-2 বিভিন্ন ধরনের গ্যাস সনাক্ত করতে সক্ষম। গ্যাসগুলোর মধ্যে আমাদের চুলায় ব্যবহৃত গ্যাস, অ্যালকোহল ফিউম, আগুনের ধোঁয়া ইত্যাদি উল্লেখযোগ্য। সেন্সরটি যখন কোনো গ্যাস বা ধোঁয়া সনাক্ত করবে তখন আমাদের প্রজেক্টটি একটি পূর্ব নির্ধারিত হোয়াটসঅ্যাপ নাম্বারে সতর্কবার্তা পাঠাবে। Whatsapp এ মেসেজ পাঠানোর জন্য আমরা ব্যবহার করব CallMeBot নামক একটি API ।

এই প্রজেক্ট থেকে আমরা শিখবঃ

  • কিভাবে ESP8266 থেকে হোয়াটসঅ্যাপে মেসেজ পাঠানো যায়।
  • কিভাবে MQ-2 সেন্সরের ডেটা ESP8266 এর মাধ্যমে রিড করা যায়।
প্রয়োজনীয় যন্ত্রপাতি পরিমাণ প্রোডাক্টের লিংক
ESP8266 NodeMCU V2 Development Board with CP2102 1 লিংক
Gas Sensor Module (MQ-2) 1 লিংক
Breadboard(830 point) 1 লিংক
Male to male jumpers 3 লিংক
Micro USB cable 1

প্রয়োজনীয় অ্যাপ এবং API

  1. WhatsApp
  2. CallMeBot

সার্কিট কানেকশনঃ

Arduino UNO MQ-2
3V VCC
GND GND
A0 A0

arduino and mq2 circuit connection

সম্পূর্ণ সেটআপটি দেখতে ছিল এরকম:

arduino and mq2 circuit connection

অ্যাপ ইন্সটলেশনঃ আপনার মোবাইল ফোনে Whatsapp ইন্সটল করা না থাকলে এই লিংক থেকে ডাউনলোড এবং ইন্সটল করে নিন।

API Key generate করাঃ আগেই উল্লেখ করা হয়েছে, এই প্রজেক্টের জন্য CallMeBot API ব্যবহার করা হবে। CallMeBot ব্যবহার করতে নিচের প্রক্রিয়াগুলো অনুসরণ করুন।

আপনার ফোনের কন্টাক্ট লিস্টে +34 644 44 21 48 নাম্বারটি সেভ করে রাখুন। যেকোনো নাম দিয়েই সেভ করতে পারেন। উক্ত নাম্বারে হোয়াটসঅ্যাপ ব্যবহার করে এই মেসেজটি পাঠানঃ “I allow callmebot to send me messages”

আপনি নাম্বারটি থেকে একটি উত্তর পাবেন। উত্তরে আপনার API key উল্লেখ করা থাকবে। এই API key টি প্রোগ্রামে লিখতে হবে।

whatsapp bot

প্রোগ্রামঃ

এটিই যদি ESP8266 ব্যবহার করে আপনার কম্পিউটার থেকে করা প্রথম প্রজেক্ট হয়, তাহলে প্রথমে বেশকিছু কাজ করতে হবে। অনুগ্রহপূর্বক এই টিউটোরিয়ালে প্রদর্শিত নিয়ম অনুযায়ী Board installation সম্পন্ন করুন।

লাইব্রেরি ইন্সটলেশনঃ Arduino IDE ওপেন করে লাইব্রেরি ম্যানেজারে গিয়ে UrlEncode লাইব্রেরিটি সার্চ করুন এবং ইন্সটল করুন।

library installation

নিচের প্রোগ্রামটি আরডুইনো আইডিইতে লিখুন।

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <UrlEncode.h>

const char* ssid = "Your SSID";
const char* password = "Your password";

// +international_country_code + phone number
// Bangladesh +88, example: +8801....
String phoneNumber = "Your phone number";
String apiKey = "API KEY";

void sendMessage(String message){

  // Data to send with HTTP POST
  String url = "http://api.callmebot.com/whatsapp.php?phone=" + phoneNumber + "&apikey=" + apiKey + "&text=" + urlEncode(message);
  WiFiClient client;
  HTTPClient http;
  http.begin(client, url);

  // Specify content-type header
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");

  // Send HTTP POST request
  int httpResponseCode = http.POST(url);
  if (httpResponseCode == 200){
    Serial.print("Message sent successfully");
  }
  else{
    Serial.println("Error sending the message");
    Serial.print("HTTP response code: ");
    Serial.println(httpResponseCode);
  }

  // Free resources
  http.end();
}

void setup() {
  Serial.begin(115200);

  WiFi.begin(ssid, password);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());

  // Send Message to WhatsAPP
 // sendMessage("Hello from ESP8266!");
}

void loop() {

   // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
 // Serial.println(voltage);
 Serial.println(sensorValue);

if(sensorValue>=700)
{
  sendMessage("GAS!");
}


}

যে পরিবর্তনগুলো প্রোগ্রামে অবশ্যই করতে হবেঃ

  • Your SSID এর জায়গায় আপনার SSID অর্থ্যাৎ, আপনার ব্যবহৃত ওয়াইফাই নেটওয়ার্কের নামটি লিখবেন।
  • Your password এর জায়গায় আপনার ওয়াইফাইয়ের পাসওয়ার্ড লিখবেন।
  • Your phone number এর জায়গায় কান্ট্রি কোডসহ আপনার ফোন নাম্বার লিখবেন।
  • API KEY এর জায়গায় আপনার API KEY লিখবেন।

কোডটি আপলোড করার সময় Board অপশন থেকে অবশ্যই NodeMCU 1.0 (ESP12E-Module) সিলেক্ট করবেন। কোডটি আপলোড করার পর 115200 baud rate সিলেক্ট করে সিরিয়াল মনিটর ওপেন করবেন। সিরিয়াল মনিটরে A0 পিনের অ্যানালগ ভ্যালু দেখা যাবে। আমাদের সেটআপে স্বাভাবিক অবস্থায় এই ভ্যালু ছিল 300 এর নিচে। গ্যাসের উপস্থিতিতে এই ভ্যালু বাড়তে বাড়তে 1024 পর্যন্ত উঠে যেতে পারে।

arduino and mq2 project topic base image

আমাদের কোডটি এমনভাবে লেখা যাতে এই ভ্যালু 700 এর উপরে গেলেই Whatsapp এ মেসেজ আসবে।

whatsapp bot fire detection message

গ্যাস লাইটার, চুলার আগুন, মোমবাতি, হ্যান্ড স্যানিটাইজার ইত্যাদি সেন্সরের সামনে রেখে সার্কিটটি পরীক্ষা করে দেখা যাবে।

fire detection alarm system

TSBlog
TSBlog

4 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.