HamidReza
Published © GPL3+

Electronics Online Platform

You can use Microcontroller and various modules to build a project or learn electronics just through your browser. let see an example...

BeginnerProtip1 hour105
Electronics Online Platform

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

arduino code

C/C++
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "DHT.h"
#include <DS3231.h>

RTClib myRTC;
DateTime now;

#define DHTPIN 2
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

int humidity;
int temprature;

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
String DateTime;

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

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // Don't proceed, loop forever
  }
  // Clear the buffer
  display.clearDisplay();
  delay(500);
}

void loop() {
  // put your main code here, to run repeatedly:
  humidity = dht.readHumidity();
  temprature = dht.readTemperature();
  if (isnan(humidity) || isnan(temprature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  now = myRTC.now();
  DateTime=String(now.hour())+":"+String(now.minute())+":"+String(now.second());

  ShowOnLCD();
  PrintDataOnSerial();
  delay(1000);  
}
void PrintDataOnSerial(){
  Serial.println(DateTime);

  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print(" %  Temprature: ");
  Serial.print(temprature);
  Serial.println(" C ");  
}
void ShowOnLCD() {
  display.clearDisplay();
  //display.setFont(&FreeMonoBold18pt7b);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(15, 0);
  display.print(DateTime);
  display.setTextSize(3);
  display.setCursor(2, 28);
  display.print(temprature);
  display.print("C ");
  display.print(humidity);
  display.print("%");
  display.display();
}

Credits

HamidReza
1 project • 1 follower
IOT Developer , Electronic Designer, AI and Mechanic Researcher

Comments