- ఆర్టీసీ అంటే ఏమిటి ??
- OLED డిస్ప్లేల గురించి తెలుసుకోవడం:
- పదార్థం అవసరం:
- సర్క్యూట్ రేఖాచిత్రం:
- కోడ్ వివరణ:
ఈ ట్యుటోరియల్లో, రియల్ టైమ్ క్లాక్ (ఆర్టీసీ) మరియు ESP32 మరియు OLED డిస్ప్లేతో దాని ఇంటర్ఫేసింగ్ గురించి తెలుసుకుంటాము.
సరైన సమయాన్ని ట్రాక్ చేయడానికి మేము DS3231 RTC మాడ్యూల్ని ఉపయోగిస్తాము మరియు ESP32 ను మా మైక్రోకంట్రోలర్గా ఉపయోగించడం ద్వారా SPI OLED లో ప్రదర్శిస్తాము. ESP32 మైక్రోకంట్రోలర్ కంటే ఎక్కువ. దీని లోపల వై-ఫై మరియు బ్లూటూత్ చిప్ మరియు 39 GPIO పిన్స్ ఉన్నాయి. ఇది SPI, I2C, UART, వంటి అన్ని కమ్యూనికేషన్ ప్రోటోకాల్లకు మద్దతు ఇస్తుంది. మీరు ESP32 కి కొత్తగా ఉంటే, మొదట ESP32 ట్యుటోరియల్తో ప్రారంభించడం ద్వారా వెళ్ళండి.
ఆర్టీసీ అంటే ఏమిటి ??
DS3231 అనేది RTC (రియల్ టైమ్ క్లాక్) మాడ్యూల్. చాలా ఎలక్ట్రానిక్స్ ప్రాజెక్టులకు తేదీ మరియు సమయాన్ని నిర్వహించడానికి ఇది ఉపయోగించబడుతుంది. ఈ మాడ్యూల్ దాని స్వంత కాయిన్ సెల్ విద్యుత్ సరఫరాను కలిగి ఉంది, ఇది ప్రధాన శక్తిని తొలగించినప్పుడు లేదా MCU హార్డ్ రీసెట్ ద్వారా వెళ్ళినప్పుడు కూడా తేదీ మరియు సమయాన్ని నిర్వహిస్తుంది. కాబట్టి మేము ఈ మాడ్యూల్లో తేదీ మరియు సమయాన్ని సెట్ చేసిన తర్వాత అది ఎల్లప్పుడూ ట్రాక్ చేస్తుంది. DS1307, DS3231 వంటి అనేక రకాల RTC IC లు అందుబాటులో ఉన్నాయి.
మేము ఇంతకుముందు DS3231 RTC ని Arduino తో ఈ క్రింది ప్రాజెక్టులలో ఉపయోగించాము:
- Arduino ఉపయోగించి ఆటోమేటిక్ పెట్ ఫీడర్
- ఆర్డునో డేటా లాగర్
గమనిక: ఈ మాడ్యూల్ను మొదటిసారి ఉపయోగిస్తున్నప్పుడు మీరు తేదీ మరియు సమయాన్ని సెట్ చేయాలి. మీరు RTC IC DS1307 ను కూడా ఉపయోగించవచ్చు, మేము ఇంతకుముందు DS1307 ను Arduino తో ఉపయోగించాము.
OLED డిస్ప్లేల గురించి తెలుసుకోవడం:
OLED అనే పదం “ సేంద్రీయ కాంతి ఉద్గార డయోడ్” ని సూచిస్తుంది, ఇది మన టెలివిజన్లలో చాలావరకు ఉపయోగించబడే అదే సాంకేతికతను ఉపయోగిస్తుంది, కానీ వాటితో పోలిస్తే తక్కువ పిక్సెల్స్ ఉన్నాయి. ఈ చల్లని కనిపించే డిస్ప్లే మాడ్యూళ్ళను కలిగి ఉండటం చాలా సరదాగా ఉంటుంది, ఎందుకంటే ఇది మా ప్రాజెక్టులను చల్లగా చేస్తుంది. మేము ఇక్కడ OLED డిస్ప్లేలు మరియు దాని రకాలను పూర్తి కథనాన్ని కవర్ చేసాము.
మేము మోనోక్రోమ్ 7-పిన్ SSD1306 0.96 ”OLED డిస్ప్లేని ఉపయోగిస్తున్నాము. ఈ ప్రదర్శనను ఎంచుకోవడానికి కారణం, ఇది SPI 3 వైర్ మోడ్, SPI ఫోర్ వైర్ మోడ్ మరియు IIC మోడ్ వంటి మూడు వేర్వేరు కమ్యూనికేషన్ ప్రోటోకాల్లలో పనిచేయగలదు. ఈ ట్యుటోరియల్ SPI 4-వైర్ మోడ్లో మాడ్యూల్ను ఎలా ఉపయోగించాలో కవర్ చేస్తుంది, ఎందుకంటే ఇది వేగవంతమైన కమ్యూనికేషన్ మోడ్ మరియు డిఫాల్ట్.
పిన్స్ మరియు దాని విధులు క్రింది పట్టికలో వివరించబడ్డాయి.
పిన్ నెంబర్ |
పిన్ పేరు |
ఇతర పేర్లు |
వాడుక |
1 |
Gnd |
గ్రౌండ్ |
మాడ్యూల్ యొక్క గ్రౌండ్ పిన్ |
2 |
Vdd |
విసిసి, 5 వి |
పవర్ పిన్ (3-5 వి భరించదగినది) |
3 |
ఎస్.సి.కె. |
D0, SCL, CLK |
క్లాక్ పిన్గా పనిచేస్తుంది. I2C మరియు SPI రెండింటికీ ఉపయోగిస్తారు |
4 |
SDA |
డి 1, మోసి |
మాడ్యూల్ యొక్క డేటా పిన్. IIC మరియు SPI రెండింటికీ ఉపయోగిస్తారు |
5 |
RES |
RST, రీసెట్ |
మాడ్యూల్ను రీసెట్ చేస్తుంది (SPI సమయంలో ఉపయోగపడుతుంది) |
6 |
DC |
A0 |
డేటా కమాండ్ పిన్. SPI ప్రోటోకాల్ కోసం ఉపయోగిస్తారు |
7 |
సి.ఎస్ |
చిప్ సెలెక్ట్ |
SPI ప్రోటోకాల్ క్రింద ఒకటి కంటే ఎక్కువ మాడ్యూల్ ఉపయోగించినప్పుడు ఉపయోగపడుతుంది |
ఈ ట్యుటోరియల్లో మేము మాడ్యూల్ను 4-వైర్ ఎస్పిఐ మోడ్లో ఆపరేట్ చేస్తాము, మిగిలిన వాటిని మరికొన్ని ట్యుటోరియల్ కోసం వదిలివేస్తాము.
Arduino సంఘం ఇప్పటికే మాకు చాలా లైబ్రరీలను ఇచ్చింది, దీనిని చాలా సరళంగా చేయడానికి నేరుగా ఉపయోగించవచ్చు. నేను కొన్ని లైబ్రరీలను ప్రయత్నించాను మరియు అడాఫ్రూట్_ఎస్ఎస్డి 1306 లైబ్రరీని ఉపయోగించడం చాలా సులభం మరియు కొన్ని గ్రాఫికల్ ఎంపికలు ఉన్నాయని నేను కనుగొన్నాను, అందువల్ల మేము ఈ ట్యుటోరియల్ లో కూడా ఉపయోగిస్తాము. కానీ, మీ ప్రాజెక్ట్కు మెమరీ / స్పీడ్ అడ్డంకి ఉంటే U8g లైబ్రరీ వేగంగా పని చేస్తుంది మరియు తక్కువ ప్రోగ్రామ్ మెమరీని కలిగి ఉంటుంది.
మేము రాస్ప్బెర్రీ పై మరియు ఆర్డునోతో OLED ని కూడా ఇంటర్ఫేస్ చేసాము.
పదార్థం అవసరం:
- ESP32
- DS3231 RTC మాడ్యూల్
- 7 పిన్ 128 × 64 OLED డిస్ప్లే మాడ్యూల్ (SSD1306)
- మగ-ఆడ తీగలు
- బ్రెడ్బోర్డ్
సర్క్యూట్ రేఖాచిత్రం:
RTC3231 ను ESP బోర్డ్కు కనెక్ట్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం క్రింద ఇవ్వబడింది:
RTC DS3231 IC I2C మోడ్ ఆఫ్ కమ్యూనికేషన్ను ఉపయోగిస్తుంది. దీని నుండి ఎస్సీఎల్, ఎస్డీఏ, విసిసి, జిఎన్డి పిన్లు బయటకు వస్తున్నాయి. ESP32 తో RTC మాడ్యూల్ యొక్క కనెక్షన్ క్రింద ఇవ్వబడింది:
- RTC యొక్క SCL -> ESP32 యొక్క SCL అంటే పిన్ D22
- RTC యొక్క SDA -> ESP32 యొక్క SDA అంటే పిన్ D21
- RTC యొక్క GND -> ESP32 యొక్క GND
- RTC యొక్క Vcc -> ESP32 యొక్క Vcc
ఇక్కడ, మా 128 × 64 OLED డిస్ప్లే మాడ్యూల్ (SSD1306) ను ESP32 కి కనెక్ట్ చేయడానికి మేము SPI మోడ్ను ఉపయోగిస్తున్నాము. కాబట్టి, ఇది 7 పిన్లను ఉపయోగిస్తుంది. ESP32 తో కనెక్షన్లు ఇలా ఇవ్వబడ్డాయి:
- ESP32 యొక్క OLED -> PIN D5 యొక్క CS (చిప్ సెలెక్ట్) పిన్
- OLED యొక్క DC పిన్ -> ESP32 యొక్క PIN D4
- OLED యొక్క RES పిన్ -> ESP32 యొక్క PIN D2
- OLED యొక్క SDA పిన్ -> పిన్ D23 అంటే ESP32 యొక్క MOSI
- OLED యొక్క SCK పిన్ -> PIN D18 అంటే ESP32 యొక్క SCK
- OLED యొక్క Vdd -> ESP32 యొక్క Vcc
- OLED యొక్క GND -> ESP32 యొక్క GND
మీ ESP32 కోసం మీకు బోర్డు ఫైళ్లు అవసరం. ESP32 దేవ్ కిట్ కోసం Arduino IDE యొక్క బోర్డు మేనేజర్ డ్రాప్ డౌన్ మెనుని తనిఖీ చేయండి. అది లేకపోతే క్రింది లింక్లో ఇచ్చిన దశలను అనుసరించండి:
circuitdigest.com/microcontroller-projects/getting-started-with-esp32-with-arduino-ide
మీరు ఈ ప్రాజెక్ట్ కోసం ESP12 ను కూడా ఉపయోగించవచ్చు, ESP12 ను ఉపయోగించడానికి ఇక్కడ నేర్చుకోండి.
కోడ్ వివరణ:
ESP32 కోసం పూర్తి కోడ్ వ్యాసం చివరిలో ఇవ్వబడింది. ఇక్కడ మేము కోడ్ యొక్క కొన్ని ముఖ్యమైన భాగాలను వివరిస్తున్నాము.
మా కోడ్లో ఉపయోగించడానికి మాకు అనేక లైబ్రరీలు అవసరం, వీటిని క్రింది లింక్ల నుండి డౌన్లోడ్ చేసుకోవచ్చు:
1. అడాఫ్రూట్_ఎస్ఎస్డి 1306:
2. SPI:
3. అడాఫ్రూట్_జిఎఫ్ఎక్స్: https://github.com/adafruit/Adafruit-GFX- లైబ్రరీ
4. ఆర్టీసీలిబ్:
కాబట్టి మేము అన్ని లైబ్రరీలను చేర్చాము
# చేర్చండి
అప్పుడు OLED యొక్క అన్ని పిన్లను నిర్వచించండి. మీరు RTC మాడ్యూల్ కోసం పిన్లను నిర్వచించాల్సిన అవసరం లేదు ఎందుకంటే ఈ పిన్లు ఇప్పటికే WIRE లైబ్రరీలో నిర్వచించబడ్డాయి.
# define OLED_MOSI 23 # define OLED_CLK 18 # define OLED_DC 4 # define OLED_CS 5 # define OLED_RESET 2 Adafruit_SSD1306 ప్రదర్శన (OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
లో సెటప్ ఫంక్షన్, మేము ఒక ఫంక్షన్ కాల్ చేస్తుంది rtc.adjust (తేదీసమయం (__ DATE__, __TIME__)) మా PC సమయం ప్రకారం సమయం సెట్ చేస్తుంది.
శూన్య సెటప్ () { Serial.begin (9600); if (! rtc.begin ()) { Serial.println ("RTC ని కనుగొనలేకపోయాము"); అయితే (1); } rtc.adjust (డేట్టైమ్ (__ DATE__, __TIME__));
ఆ తరువాత మేము OLED లో చూపించడానికి డిస్ప్లే ఫంక్షన్లను పిలుస్తాము.
display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay (); display.setTextColor (WHITE); //display.startscrollright(0x00, 0x0F); // మీరు మీ వచనాన్ని oled display.setTextSize (2) లో స్క్రోల్ చేయడానికి ఈ పంక్తిని విడదీయవచ్చు ; display.setCursor (0,5); display.print ("గడియారం"); // ఇది OLED లో 3 సెకన్ల పాటు గడియారాన్ని ప్రదర్శిస్తుంది. డిస్ప్లే (); ఆలస్యం (3000); }
చివరకు లూప్ ఫంక్షన్లో, మేము ఇప్పుడు ముందుగా నిర్వచించిన వేరియబుల్లో డేట్టైమ్లో నిల్వ చేస్తాము మరియు సెట్టెక్స్ట్సైజ్, సెట్సర్సర్, వంటి డిస్ప్లే ఫంక్షన్లను ఉపయోగించి సమయాన్ని ప్రదర్శిస్తాము. వీటిని మీ అవసరానికి అనుగుణంగా సెట్ చేయండి మరియు OLED లో చూపించడానికి display.println ఫంక్షన్ను ఉపయోగిస్తాము.
void loop () { డేట్టైమ్ ఇప్పుడు = rtc.now (); display.clearDisplay (); display.setTextSize (2); display.setCursor (75,0); display.println (now.second (), DEC);
కాబట్టి మీరు ESP32 ని ఉపయోగించి OLED లో సమయాన్ని ఎలా ప్రదర్శించగలరు మరియు మీకు తెలిసినట్లుగా ESP దాని IoT సామర్థ్యాలకు ప్రసిద్ది చెందింది, కాబట్టి మీరు సమయాన్ని ఇంటర్నెట్లో ప్రచురించడానికి దీన్ని ఉపయోగించవచ్చు. తరువాతి వ్యాసంలో మేము ఏ RTC మాడ్యూల్ ఉపయోగించకుండా ESP లో ఇంటర్నెట్ సమయాన్ని ప్రదర్శించమని చూపిస్తాము.