প্রয়োজনীয় যন্ত্রপাতি | পরিমান | প্রোডাক্ট লিংক |
ESP8266 NodeMCU Lua WiFi with CP2102 | 1 | এখানে ক্লিক করুন |
OLED Display Blue I2C 128×64 0.96″ | 1 | এখানে ক্লিক করুন |
Push button | 1 | এখানে ক্লিক করুন |
10K Ohm 1/4W Resistor – Pack of 20 | 1 | এখানে ক্লিক করুন |
Male To Male Jumper Wire – Single | 7 | এখানে ক্লিক করুন |
Breadboard | 1 | এখানে ক্লিক করুন |
সার্কিটঃ
NodeMCU এবং ওলেড ডিস্প্লের মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
ESP8266 NodeMCU Lua WiFi with CP2102 | OLED Display Blue I2C 128×64 0.96″ |
3V3 | VCC |
GND | GND |
D1 | SCL |
D2 | SDA |
নিচের সার্কিট ডায়াগ্রাম অনুযায়ী NodeMCU এর সাথে পুশ বাটনের সংযোগ দিন।
প্রোগ্রামঃ
এই প্রোগ্রামটিতে বেশকিছু লাইব্রেরি ব্যবহার করা হয়েছে। কোড লেখার আগে অবশ্যই লাইব্রেরিগুলো ইন্সটল করে নিতে হবে।
লাইব্রেরিগুলোর নাম ও লিংক নিচে দেওয়া হল।
এটি যদি NodeMCU নিয়ে আপনার প্রথম প্রোজেক্ট হয় তাহলে এই টিউটোরিয়াল অনুযায়ী বোর্ড ইনস্টল করে নিতে হবে। বোর্ড ও লাইব্রেরি ইন্সটল করা শেষ হয়ে গেলে নিচের কোডটি কম্পাইল করে NodeMCU তে আপলোড করুন।
#include <ESP8266WiFi.h>
#include <time.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display;
const char* ssid = "Techshop 2.4G";
const char* password = "og-wl-2012";
const int buttonpin=2;
int buttonstate=0;
int flag=0;
int timezone = 6 * 3600;//Time of Dhaka=GMT+6 Hours
int timezone2= -5 * 3600;//Time of Boston=GMT-5 Hours
int dst = 0;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(buttonpin,INPUT);
digitalWrite(LED_BUILTIN,HIGH);
Serial.begin(115200);
Serial.println();
Serial.print("Wifi connecting to ");
Serial.println( ssid );
WiFi.begin(ssid,password);
Serial.println();
Serial.print("Connecting");
while( WiFi.status() != WL_CONNECTED ){
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Wifi Connected Success!");
Serial.print("NodeMCU IP Address : ");
Serial.println(WiFi.localIP() );
configTime(timezone, dst, "pool.ntp.org","time.nist.gov");
Serial.println("\nTime response....OK");
}
void loop() {
buttonstate=digitalRead(buttonpin);
if(buttonstate==HIGH){
if(flag==0)
{
configTime(timezone2, dst, "pool.ntp.org","time.nist.gov");
Serial.println("Boston time");
digitalWrite(LED_BUILTIN,LOW);
flag=1;
}
else if(flag==1){
configTime(timezone, dst, "pool.ntp.org","time.nist.gov");
digitalWrite(LED_BUILTIN,HIGH);
flag=0;
}
}
//Serial.println("\nWaiting for Internet time");
while(!time(nullptr)){
Serial.print("*");
delay(1000);
}
time_t now = time(nullptr);
struct tm* p_tm = localtime(&now);
Serial.print(p_tm->tm_mday);
Serial.print("/");
Serial.print(p_tm->tm_mon + 1);
Serial.print("/");
Serial.print(p_tm->tm_year + 1900);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// Clear the buffer.
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print(p_tm->tm_mday);
display.print("/");
display.print(p_tm->tm_mon + 1);
display.print("/");
display.println(p_tm->tm_year + 1900);
display.print(p_tm->tm_hour);
display.print(":");
display.print(p_tm->tm_min);
display.print(":");
display.println(p_tm->tm_sec);
if(flag==0)
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.print("Dhaka");
}
if(flag==1)
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.print("Boston");
}
display.display();
Serial.print(" ");
Serial.print(p_tm->tm_hour);
Serial.print(":");
Serial.print(p_tm->tm_min);
Serial.print(":");
Serial.println(p_tm->tm_sec);
delay(1000);
}
বাই ডিফল্ট ঘড়িটি ঢাকার সময় দেখায়। বাটন প্রেস করলে বোস্টোনের সময় দেখায়।
প্রথম পাওয়ার দেবার পর এবং বাটন প্রেস করার পর সময় পরিবর্তন করতে ঘড়িটির কয়েক সেকেন্ড লাগতে পারে। আপনারা আপনাদের প্রয়োজনমতো টাইমজোনের জন্য কোডটি পরিবর্তন করে নিতে পারেন।
]]>
onak boro akta jenes sekta parlam 💝💓
আমাদের সাথে যুক্ত থাকার জন্য ধন্যবাদ।