Project #15: Environment – RTC – Mk26
https://www.donluc.com/?p=4304
#DonLucElectronics #DonLuc #Arduino #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant



Crowtail - RTC 2.0
If you want to make your own electronic watch a RTC module is necessary to generate you the right time, with very low power consumption. This tiny RTC module is based on the clock chip DS1307 which communicates with microcontrollers with I2C protocol. The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. This module is really low power consumption, it can serves you more than a month with a CR1220 battery.
DL2502Mk02
1 x Crowduino Uno - SD
1 x Crowtail - Base Shield
1 x Crowtail - RTC 2.0
1 x Crowtail - Temperature and Humidity Sensor 2.0
1 x Crowtail - Rotary Angle Sensor 2.0
1 x Crowtail - Moisture Sensor 2.0
1 x Crowtail - I2C LCD
1 x Crowtail - LED(Green)
1 x Crowtail - LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno - SD
SCL - A5
SDA - A4
POT - A1
ASM - A0
LEDY - 7
LEDG - 6
ITH - 5
VIN - +5V
GND - GND
DL2502Mk02p
DL2502Mk02p.ino
/****** Don Luc Electronics © ******
Software Version Information
Project #15: Environment – RTC – Mk26
DL2502Mk02p.ino
DL2502Mk02
1 x Crowduino Uno - SD
1 x Crowtail - Base Shield
1 x Crowtail - RTC 2.0
1 x Crowtail - Temperature and Humidity Sensor 2.0
1 x Crowtail - Rotary Angle Sensor 2.0
1 x Crowtail - Moisture Sensor 2.0
1 x Crowtail - I2C LCD
1 x Crowtail - LED(Green)
1 x Crowtail - LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
*/
// Include the Library Code
// EEPROM library to read and write EEPROM with unique ID for unit
#include <EEPROM.h>
// Wire
#include <Wire.h>
// Liquid Crystal
#include "LiquidCrystal.h"
// Temperature and Humidity Sensor
#include "DHT.h"
// RTC (Real-Time Clock)
#include "RTClib.h"
// RTC (Real-Time Clock)
RTC_DS1307 RTC;
String dateRTC = "";
String timeRTC = "";
// Temperature and Humidity Sensor
#define DHTPIN 5
// DHT 11
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Temperature and Humidity Sensor
float h = 0;
float t = 0;
// Potentiometer
int iPotentiometer = A1;
// Change Your Threshold Here
int Threshold = 0;
int zz = 0;
// Liquid Crystal
// Connect via i2c
LiquidCrystal lcd(0);
// Crowtail Moisture Sensor
int iSoilMoisture = A0;
int iSoilMoistureVal = 0;
// LED Yellow
int iLEDYellow = 7;
// LED Green
int iLEDGreen = 6;
// EEPROM Unique ID Information
String uid = "";
// Software Version Information
String sver = "15-26";
void loop() {
// Crowtail Moisture Sensor
isSoilMoisture();
// Temperature and Humidity Sensor
isTH();
// RTC (Real-Time Clock)
isRTC();
// Delay 2 Second
delay( 2000 );
// Display Temperature and Humidity
isDisplayTH();
// Delay 2 Second
delay( 2000 );
// Display EEPROM
isDisplayEEPROM();
// Delay 2 Second
delay( 2000 );
// Display RTC
isDisplayRTC();
// Delay 2 Second
delay( 2000 );
}
getDisplay.ino
// getDisplay
// Crowbits - OLED 128X64 UID
void isDisplayUID(){
// Set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// Print a message to the LCD.
// Cursor
lcd.setCursor(0, 0);
lcd.print("Don Luc Electron");
// Cursor
lcd.setCursor(0, 1);
// Print a message to the LCD.
lcd.print( sver );
}
// isDisplay Green
void isDisplayG(){
// Print a message to the LCD
// Clear
lcd.clear();
// Cursor
lcd.setCursor(0, 0);
lcd.print("Humid Soil");
// Cursor
lcd.setCursor(0, 1);
// Print a message to the LCD
lcd.print( iSoilMoistureVal );
}
// isDisplay Yellow
void isDisplayY(){
// Print a message to the LCD
// Clear
lcd.clear();
// Cursor
lcd.setCursor(0, 0);
lcd.print("Dry Soil");
// Cursor
lcd.setCursor(0, 1);
// Print a message to the LCD
lcd.print( iSoilMoistureVal );
}
// Display Temperature and Humidity
void isDisplayTH(){
// Clear
lcd.clear();
// Set the cursor to column 0, line 0
lcd.setCursor(0, 0);
lcd.print("H: ");
lcd.print(h);
lcd.print(" %");
// Set the cursor to column 0, line 1
lcd.setCursor(0, 1);
lcd.print("T: ");
lcd.print(t);
lcd.print(" *C");
}
// Display EEPROM
void isDisplayEEPROM(){
// Clear
lcd.clear();
// Set the cursor to column 0, line 0
lcd.setCursor(0, 0);
lcd.print("EEPROM");
// Set the cursor to column 0, line 1
lcd.setCursor(0, 1);
lcd.print( uid );
}
// Display RTC
void isDisplayRTC(){
// Clear
lcd.clear();
// Set the cursor to column 0, line 0
lcd.setCursor(0, 0);
lcd.print( dateRTC );
// Set the cursor to column 0, line 1
lcd.setCursor(0, 1);
lcd.print( timeRTC );
}
getEEPROM.ino
// EEPROM
// isUID EEPROM Unique ID
void isUID() {
// Is Unit ID
uid = "";
for (int x = 0; x < 7; x++)
{
uid = uid + char(EEPROM.read(x));
}
}
getRTC.ino
// RTC (Real-Time Clock)
// Setup RTC
void isSetupRTC(){
// RTC (Real-Time Clock)
RTC.begin();
// RTC Running
if (! RTC.isrunning()) {
// following line sets the RTC to the date & time
//this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0))
}
}
// RTC (Real-Time Clock)
void isRTC(){
// RTC (Real-Time Clock)
DateTime now = RTC.now();
// Date
dateRTC = now.year(), DEC;
dateRTC = dateRTC + "/";
dateRTC = dateRTC + now.month(), DEC;
dateRTC = dateRTC + "/";
dateRTC = dateRTC + now.day(), DEC;
// Time
timeRTC = now.hour(), DEC;
timeRTC = timeRTC + ":";
timeRTC = timeRTC + now.minute(), DEC;
timeRTC = timeRTC + ":";
timeRTC = timeRTC + now.second(), DEC;
}
getSoilMoisture.ino
// Crowtail Moisture Sensor
// Soil Moisture
void isSoilMoisture(){
// Connect Soil Moisture Sensor to Analog 0
// iSoilMoistureVal => 0~700 Soil Moisture
iSoilMoistureVal = analogRead( iSoilMoisture );
// Threshold => 200~500
zz = analogRead( iPotentiometer );
Threshold = map( zz, 0, 1024, 200, 500);
// Threshold
if (iSoilMoistureVal > Threshold) {
// 300~700 - Humid Soil
// LED Yellow
digitalWrite(iLEDYellow, LOW);
// Display Green
isDisplayG();
// LED Green
digitalWrite(iLEDGreen, HIGH);
}
else {
// 0-300 Dry Soil
// LED Green
digitalWrite(iLEDGreen, LOW);
// Display Yellow
isDisplayY();
digitalWrite(iLEDYellow, HIGH);
}
}
getTH.ino
// Temperature and Humidity Sensor
void isTH(){
// Temperature
t = dht.readTemperature();
// Humidity
h = dht.readHumidity();
}
setup.ino
// Setup
void setup()
{
// Delay
delay(100);
// isUID EEPROM Unique ID
isUID();
// Delay
delay(100);
// Initialize the LED iLED Yellow
pinMode(iLEDYellow, OUTPUT);
// Initialize the LED LED Green
pinMode(iLEDGreen, OUTPUT);
// Temperature and Humidity Sensor
dht.begin();
// Delay
delay(100);
// Setup RTC
isSetupRTC();
// Delay
delay(100);
// Display UID
isDisplayUID();
// Delay 5 Second
delay( 5000 );
}
People can contact us: http://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, R&D and Consulting
-Programming Language
-Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc...)
-IoT
-Wireless (Radio Frequency, Bluetooth, WiFi, Etc...)
-Robotics
-Automation
-Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
-Unmanned Vehicles Terrestrial and Marine
-Machine Learning
-Artificial Intelligence (AI)
-RTOS
-Sensors, eHealth Sensors, Biosensor, and Biometric
-Research & Development (R & D)
-Consulting
-Etc...
Follow Us
Luc Paquin – Curriculum Vitae - 2025
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
