DS1307 மற்றும் OLED காட்சியைப் பயன்படுத்தி ESP32 நிகழ் நேரக் கடிகாரம் (RTC)

Ds1307 Marrum Oled Katciyaip Payanpatutti Esp32 Nikal Nerak Katikaram Rtc



ESP32 ஆனது உள்ளமைக்கப்பட்ட RTC தொகுதியுடன் வருகிறது, ஆனால் அது சக்தி இருக்கும் போது மட்டுமே வேலை செய்யும். மின்சாரம் துண்டிக்கப்பட்டால், கடிகாரம் மீட்டமைக்கப்படும் மற்றும் சரியான நேரத்தை வைத்திருக்க முடியாது. எனவே நீங்கள் நேரத்தைக் கண்காணிக்க அல்லது எந்த நேர அடிப்படையிலான சாதனத்தைக் கட்டுப்படுத்த விரும்பினால், DS1307 RTC சென்சாரைப் பயன்படுத்திப் பார்க்கவும். இருப்பினும், உங்கள் ESP32 போர்டுடன் பேக்கப் பேட்டரியை இணைக்க நீங்கள் யோசித்துக்கொண்டிருக்கலாம், ஆனால் உங்களுக்கு மின் பற்றாக்குறை இருந்தால் அது சிறந்த சூழ்நிலை அல்ல. DS1307 சென்சார் பயன்படுத்துவதே சிறந்த மாற்றாகும், ஏனெனில் இது ஒரு உள்ளமைக்கப்பட்ட பேட்டரியுடன் வருகிறது, இது குறைந்தபட்சம் ஒரு வருடம் நீடிக்கும்.

விஷயங்களைத் தெளிவாகப் பெற, ESP32 இன் உள் நிகழ்நேர கடிகாரம் (RTC) பிரதான செயலி அணைக்கப்பட்டிருந்தாலும் அல்லது ஆழ்ந்த உறக்கத்தில் இருந்தாலும் நேரத்தைக் கண்காணிக்கும். அதிக சக்தியைப் பயன்படுத்தாமல் அல்லது பிரதான செயலியைப் பாதிக்காமல் நேரத்தைக் கண்காணிக்க ESP32 RTC ஐப் பயன்படுத்தலாம். ஆனாலும் இன்னும் இயங்குவதற்கு மின்சாரம் தேவைப்படுகிறது, அவ்வளவு அல்ல, ஆனால் உள் RTC இயங்குவதற்கு குறைந்தபட்ச அளவு மின்சாரம் தேவைப்படுகிறது.

எனவே, வெளிப்புற RTC தொகுதியைப் பயன்படுத்துவதற்கான தீர்வு மட்டுமே எங்களிடம் உள்ளது. DS1307 RTC தொகுதியுடன் ESP32 போர்டை இணைக்கும் படிகளைப் பார்க்கலாம்.







உள்ளடக்கம்:

1. RTC DS1307 தொகுதி என்றால் என்ன

DS1307 என்பது ஒரு குறைந்த சக்தி கொண்ட சாதனமாகும், இது நேரத்தையும் தேதியையும் துல்லியமாக கண்காணிக்க முடியும். இது பைனரி-குறியிடப்பட்ட தசம (BCD) வடிவமைப்பைப் பயன்படுத்துகிறது. வினாடிகள், நிமிடங்கள் மற்றும் மணிநேரங்கள் மற்றும் நாட்கள் போன்ற விரிவான வடிவமைப்பில் இது உங்களுக்கு நேரத்தைச் சொல்லும். மாதம் மற்றும் ஆண்டு போன்ற முழு வடிவத்திலும் தேதியை அச்சிடலாம். 2100 வரை லீப் ஆண்டாக இருக்கும் போது அது தெரியும். DS1307 உடன் தொடர்பு கொள்ள, நீங்கள் I2C நெறிமுறையைப் பயன்படுத்தலாம்.





DS1307 ஆனது உள்ளமைக்கப்பட்ட பேட்டரியைக் கொண்டுள்ளது, இது வெளிப்புற 5V ஆதாரம் இல்லாமல் ஒரு வருடத்திற்கு அதை இயக்க முடியும். இந்த பேட்டரி பேக்அப்பைப் பயன்படுத்தி, மெயின் பவர் ஆஃப் செய்யப்பட்டிருந்தாலும் நேரத்தைத் தக்க வைத்துக் கொள்ள முடியும். இது சில தரவுகளை சேமிக்க 56 பைட்டுகள் SRAM ஐக் கொண்டுள்ளது. DS1307 என்பது ஒரு எளிய சாதனமாகும், இது Arduino அல்லது ESP32 போர்டுடன் இணைந்தால் பல பயன்பாடுகளைக் கொண்டுள்ளது. எடுத்துக்காட்டாக, தரவு பதிவு, எச்சரிக்கை அமைப்புகள் அல்லது தொழில்துறை கட்டுப்பாடு ஆகியவற்றில் இந்தத் தரவு உதவியாக இருக்கும். உங்களுக்கு நம்பகமான நேரக்கட்டுப்பாடு தேவைப்பட்டால், DS1307 ஒரு சிறந்த வழி.





RTC DS1307 தொகுதி விவரக்குறிப்புகள்

RTC DS1307 தொகுதி RTC IC, ஒரு EEPROM, ஒரு படிக ஆஸிலேட்டர் மற்றும் காப்புப்பிரதிக்கான பேட்டரி ஹோல்டர் ஆகியவற்றைக் கொண்டுள்ளது.



இந்த பகுதிகளின் விவரங்கள் கீழே:

DS1307 RTC IC : DS1307 RTC IC என்பது 8-பின் சிப் ஆகும், இது I2C நெறிமுறையைப் பயன்படுத்தி நேரம் மற்றும் தேதியைக் கண்காணிக்கும். இது 500nA க்கும் குறைவான ஆற்றலைப் பயன்படுத்துகிறது. வினாடிகள், நிமிடங்கள் மற்றும் மணிநேரங்களில் நேரத்தையும், நாட்கள், மாதங்கள் மற்றும் ஆண்டுகளில் தேதியையும் இது காண்பிக்கும். இது 24-மணிநேர மற்றும் 12-மணிநேர வடிவங்களுக்கு இடையில் மாறலாம்.

24C32 EEPROM IC : 24C32 EEPROM IC என்பது Atmel வழங்கும் 32-பைட் சிப் ஆகும், இது அமைப்புகள், நேரம் மற்றும் தேதியை சேமிக்கிறது. இது I2C நெறிமுறையையும் பயன்படுத்துகிறது.

32.768kHz கிரிஸ்டல் : 32.768kHz படிக ஆஸிலேட்டர் DS1307 RTC ICக்கான கடிகார அதிர்வெண்ணை வழங்குகிறது.

பேட்டரி வைத்திருப்பவர் : பேட்டரி வைத்திருப்பவர் CR2032 பேட்டரியை வைத்திருக்கிறார். இது 3V லித்தியம் காயின் செல் ஆகும். இது DS1307 RTC ICக்கு தொடர்ச்சியான மின்சாரத்தை வழங்குகிறது.

DS18B20 சென்சார் வழங்கல் : DS18B20 சென்சார் வழங்கல், DS18B20 வெப்பநிலை உணரியை சாலிடர் செய்து பயன்படுத்த அனுமதிக்கிறது. இது முன் சாலிடர் செய்யப்படவில்லை. நீங்கள் துளை-துளை தொகுப்பை சாலிடர் செய்யலாம் மற்றும் தொகுதியின் DS பின்னிலிருந்து வெப்பநிலையைப் பெறலாம்.

கீழேயுள்ள பட்டியல் DS1307 RTC சென்சாரின் சில விரைவான விவரக்குறிப்புகளை வழங்குகிறது:

  • இயக்க மின்னழுத்தம்: 4.5–5.5 V, பொதுவாக 5 V
  • தற்போதைய நுகர்வு : 1.5 mA க்கும் குறைவானது
  • துல்லியம் : 0-40 °C, படிகத்தைப் பொறுத்தது
  • மின்கலம் : CR2032 (3 V நாணயம்)
  • நினைவு : 56 பைட்டுகள் நிலையற்ற ரேம்
  • இடைமுகம் : இரண்டு கம்பி (I2C) தொடர் இடைமுகம்
  • வெளியீடு : 1 ஹெர்ட்ஸ் வெளியீட்டு முள்
  • நிரல்படுத்தக்கூடிய சதுர அலை வெளியீடு : பேட்டரி-பேக்கப் பயன்முறையில் 500 nA க்கும் குறைவாக பயன்படுத்துகிறது
  • சக்தி தோல்வி கண்டறிதல் : தானியங்கி சக்தி தோல்வி கண்டறிதல் மற்றும் சுவிட்ச் சுற்று
  • பவர்-சென்ஸ் சர்க்யூட் : இது மின் பற்றாக்குறையின் போது தானாக மாறலாம்
  • லீப் ஆண்டு இழப்பீடு : 2100 ஆம் ஆண்டு வரை செல்லுபடியாகும்

RTC DS1307 தொகுதி பின்அவுட்

தொகுதி பல்வேறு செயல்பாடுகளுடன் பல ஊசிகளைக் கொண்டுள்ளது.

  • வி.சி.சி தொகுதிக்கு சக்தி அளிக்க 3.3V மற்றும் 5.5V இடையே DC மின்னழுத்தம் தேவைப்படும் முள்.
  • GND குறைந்த மின்னழுத்தம் அல்லது தரைக்கான முள் ஆகும்.
  • SDA மற்றும் எஸ்சிஎல் I2C பஸ் மூலம் தரவு மற்றும் கடிகார சிக்னல்களை தொடர்பு கொள்ளும் பின்கள்.
  • DS RTC மாட்யூலில் DS1307 சென்சார் இருந்தால், அதைக் கொண்டு வெப்பநிலையை அளவிடும் முள் இதுவாகும்.
  • SQ 1 ஹெர்ட்ஸ், 4 கிலோஹெர்ட்ஸ், 8 கிலோஹெர்ட்ஸ் அல்லது 32 கிலோஹெர்ட்ஸ் அதிர்வெண் கொண்ட சதுர-அலை சிக்னலை உருவாக்கும் முள், நீங்கள் அதை எவ்வாறு நிரல் செய்கிறீர்கள் என்பதைப் பொறுத்து.
  • ஒன்று பிரதான மின்சாரம் நிறுத்தப்பட்டிருக்கும் போது நேரத்தை துல்லியமாக வைத்திருக்க 3V பேட்டரியைப் பயன்படுத்தும் முள் ஆகும்.

2. ESP32 உடன் RTC DS1307 மற்றும் OLED டிஸ்ப்ளேவை எவ்வாறு இடைமுகப்படுத்துவது

DS1307 மற்றும் OLED டிஸ்ப்ளேவுடன் ESP32ஐ இடைமுகப்படுத்த, ESP32 போர்டின் உள்ளமைக்கப்பட்ட I2C பின்களைப் பயன்படுத்தலாம். DS1307 மற்றும் OLED டிஸ்ப்ளே இரண்டும் I2C அடிப்படையிலான சாதனங்கள். பின்னர் I2C பேருந்தில் I2C மாஸ்டர் ஸ்லேவ் நெறிமுறையைப் பயன்படுத்தி தொடர்பு கொள்ளலாம்.

DS1307 மற்றும் OLED டிஸ்ப்ளேவுடன் ESP32 இன் இடைமுகத்தை நோக்கிச் செல்வதற்கு முன், முதலில் நீங்கள் தேவையான சில நூலகங்களை நிறுவ வேண்டும்.

தேவையான நூலகங்களை நிறுவுதல்

உங்களுக்கு இரண்டு நூலகங்கள் தேவைப்படும், ஒன்று RTC தொகுதிக்கு மற்றும் ஒன்று OLED காட்சிக்கு. RTC தொகுதியுடன் OLED ஐப் பயன்படுத்தி, அற்புதமான மற்றும் ஊடாடும் கடிகார முன்னோட்டங்களை நீங்கள் உருவாக்கலாம். திரையில் நேரத்தைக் காண்பிக்கும் திட்டம் உங்களிடம் இல்லையென்றால், இந்த நூலக நிறுவலைத் தவிர்க்கலாம்.

உங்களுக்குத் தேவைப்படும் இரண்டு நூலகங்கள் பின்வருமாறு:

  • ஆர்டிகிளிப் (அடாஃப்ரூட் மூலம்) என்பது ஆர்டிசியில் இருந்து நேரத்தை அமைக்கவும் பெறவும் ஒரு ஆர்டுயினோ ஐடிஇ லைப்ரரி ஆகும். தேதிகள், நேரங்கள் மற்றும் கால அளவைக் கையாள்வதற்கான வகுப்புகளையும் இது வழங்குகிறது. இந்த நூலகத்தைப் பயன்படுத்தி, DS1307 மற்றும் DS3231 போன்ற நிகழ்நேர கடிகார (RTC) தொகுதிகளை இடைமுகப்படுத்தி நிரல்படுத்தலாம்.
  • எஸ் SD1306 (Adafruit மூலம்) என்பது Arduinoவிற்கான ஒரு நூலகமாகும், இதைப் பயன்படுத்தி நீங்கள் OLED டிஸ்ப்ளேக்களை Arduino அல்லது வேறு எந்த மைக்ரோகண்ட்ரோலர் போர்டுடன் இடைமுகப்படுத்தி நிரல் செய்யலாம்.

இந்த இரண்டு நூலகங்களையும் Arduino IDE இல் பதிவிறக்கம் செய்து நிறுவ, முதலில் திறக்கவும் நூலக மேலாளர் RTClib நூலகத்தைத் தேடி, கிளிக் செய்யவும் நிறுவு :

நூலகம் அல்லது அதன் சார்புகளை மட்டும் நிறுவும் விருப்பத்தைப் பெறுவீர்கள். கிளிக் செய்யவும் அனைத்தையும் நிறுவவும் நூலகத்தை முழுமையாக நிறுவ பொத்தான். இந்த நூலகத்தின் சார்புகளைப் பொறுத்து குறியீட்டை மாற்றினால், எந்தப் பிழையும் ஏற்படாது.

இதேபோல், SSD1306 நூலகத்தைத் தேடவும். OLED காட்சிக்கு இந்த நூலகம் தேவை. கிளிக் செய்யவும் நிறுவு தொடர.

இந்த முறையும் அதே உறுதிப்படுத்தல் செய்தியைப் பெறுவீர்கள். கிளிக் செய்யவும் அனைத்தையும் நிறுவவும் விருப்பம்.

இப்போது OLED மற்றும் DS1307 ஆகிய இரண்டு நூலகங்களும் நிறுவப்பட்டு பயன்படுத்த தயாராக உள்ளன. ஆனால் அதற்கு முன், முதலில், OLED டிஸ்ப்ளேக்கான I2C முகவரியைக் கண்டறியவும்.

3. OLED டிஸ்ப்ளேயின் I2C முகவரியைக் கண்டறிதல்

I2C முகவரி என்பது I2C பேருந்தில் உள்ள ஒவ்வொரு சாதனத்திற்கும் தனிப்பட்ட அடையாளங்காட்டியாகும். இது முதன்மை சாதனத்தை அதன் முகவரிக்கு தரவை அனுப்புவதன் மூலம் ஒரு குறிப்பிட்ட அடிமை சாதனத்துடன் தொடர்பு கொள்ள அனுமதிக்கிறது. I2C முகவரியின் நோக்கம், ஒரே பேருந்தில் பல சாதனங்களுக்கு இடையே முரண்பாடுகள் மற்றும் குழப்பங்களைத் தவிர்ப்பதாகும்.

I2C சாதனத்தின் முகவரியைப் பெற, நீங்கள் a ஐப் பயன்படுத்தலாம் பஸ்ஸை ஸ்கேன் செய்து முகவரிகளை அச்சிடும் எளிய ஓவியம் அது கண்டுபிடிக்கும் சாதனங்கள். மாற்றாக, சாதனத்தின் டேட்டாஷீட்டை அதன் இயல்புநிலை அல்லது உள்ளமைக்கக்கூடிய முகவரியைப் பார்க்கவும்.

இங்கே எங்கள் விஷயத்தில் I2C ஸ்கேனர் குறியீட்டை இயக்கிய பிறகு, OLED திரையின் பின்வரும் I2C முகவரி Arduino IDE டெர்மினலில் காட்டப்படும்.

பெரும்பாலான நேரங்களில், நீங்களும் அதைப் பெறுவதற்கான வாய்ப்புகள் அதிகம் 0x3C உங்கள் OLED திரைக்கான முகவரி.

4. OLED மற்றும் RTC DS1307 தொகுதியை ESP32 உடன் இணைத்தல்

1. DS1307 தொகுதி மற்றும் இரண்டின் SDA மற்றும் SCL பின்களை இணைக்கவும் I2C பின்களுக்கு OLED காட்சி ESP32 இன். பொதுவாக, இவை GPIO 21 மற்றும் GPIO 22 ஆகும் , ஆனால் தேவைப்பட்டால் வேறு எந்த ஊசிகளையும் குறியீட்டில் ஒதுக்கலாம்.

2. DS1307 இன் VCC மற்றும் GND மற்றும் OLED டிஸ்ப்ளே இரண்டையும் ESP32 இன் 3.3V மற்றும் GND பின்களுடன் இணைக்கவும்.

3. நிகழ் நேர கடிகாரத்திற்கான காப்பு சக்தியை வழங்க, DS1307 தொகுதியில் CR2032 காயின் செல் பேட்டரியைச் செருகவும்.

4. இந்த டுடோரியலில் இருந்து உதாரணக் குறியீட்டை உங்கள் ESP32 போர்டில் பதிவேற்றவும். தனிப்பயன் வெளியீடுகளுக்கான குறியீட்டை மாற்றவும்.

பதிவேற்றிய பிறகு, ஒரு கடிகாரம் அமைக்கப்பட்ட நேரத்திலிருந்து தொடங்கி, OLED திரையில் நேரத்தைக் காண்பிக்கும்.

5. சர்க்யூட் வரைபடம்

DS1307 உடன் ESP32 இன் சுற்று வரைபடம் எளிமையானது, நான்கு கம்பிகள் இணைக்கப்பட வேண்டும். OLED மற்றும் DS1307 சென்சார்கள் இரண்டின் I2C கம்பிகள் SDA மற்றும் SCL ஐ நீங்கள் சுருக்கலாம். இதேபோல், இந்த இரண்டு சென்சார்களையும் இயக்க, ESP32 போர்டின் 3V3 மற்றும் GND முள் பயன்படுத்தப்படலாம். தேவைப்பட்டால், நீங்கள் ஒரு தனி மூலத்திலிருந்தும் மின்சாரம் செய்யலாம்.

குறிப்பு : ESP32 இன் தற்போதைய வரம்பை மீறவில்லை என்றால், ESP32 இன் 3.3V பின்னிலிருந்து RTC DS1307ஐ இயக்குவது பாதுகாப்பானது. ஆனால் நீங்கள் பாதுகாப்பான தளத்தில் இருக்க விரும்பினால், RTC மாட்யூலுக்கு ஒரு தனி சக்தி மூலத்தைப் பயன்படுத்தலாம் அல்லது 3.3 முதல் 5.5 VDC வரை இயங்கும் குறைந்த ஆற்றல் கொண்ட DS3231 சென்சாரை முயற்சிக்கவும்.

RTC DS1307 சென்சாருடன் ESP32 இன் இணைப்பை கீழே உள்ள படம் விளக்குகிறது.

இதேபோல், நேரத்தைக் காட்ட OLED திரையை இணைக்க விரும்பினால், அதே I2C பின்களையும் ESP32 போர்டின் பவர் பின்களையும் பயன்படுத்தலாம்.

6. குறியீடு

கீழே உள்ள குறியீட்டைப் பயன்படுத்தி, RTC இல் தற்போதைய தேதி மற்றும் நேரத்தை அமைப்போம். நேரத்தை அமைத்த பிறகு, குறியீடு Arduino IDE டெர்மினலில் நேரத்தைக் காண்பிக்கும். குறியீட்டைப் பதிவேற்றும் முன், உங்கள் தற்போதைய தேதி மற்றும் நேரத்துடன் அதைப் புதுப்பிக்க வேண்டும்.

#'RTClib.h' அடங்கும்
RTC_DS1307 DS1307_RTC;
சார் வார_நாட்கள் [ 7 ] [ 12 ] = { 'ஞாயிற்றுக்கிழமை' , 'திங்கட்கிழமை' , 'செவ்வாய்' , 'புதன்கிழமை' , 'வியாழன்' , 'வெள்ளி' , 'சனிக்கிழமை' } ;
வெற்றிட அமைப்பு ( ) {
தொடர்.தொடங்கு ( 115200 ) ;
#ifndef ESP8266
போது ( ! தொடர் ) ;
#endif
என்றால் ( ! DS1307_RTC.தொடங்கு ( ) ) {
Serial.println ( 'ஆர்டிசியைக் கண்டுபிடிக்க முடியவில்லை' ) ;
போது ( 1 ) ;
}
DS1307_RTC.அட்ஜஸ்ட் ( தேதி நேரம் ( எஃப் ( __DATE__ ) , எஃப் ( __நேரம்__ ) ) ) ;
}
வெற்றிட வளையம் ( ) {
இப்போது தேதி நேரம் = DS1307_RTC.now ( ) ;
தொடர்.அச்சு ( இப்போது.வருடம் ( ) , டிஇசி ) ;
தொடர்.அச்சு ( '/' ) ;
தொடர்.அச்சு ( இப்போது.மாதம் ( ) , டிஇசி ) ;
தொடர்.அச்சு ( '/' ) ;
தொடர்.அச்சு ( இப்போது.நாள் ( ) , டிஇசி ) ;
தொடர்.அச்சு ( '(' ) ;
தொடர்.அச்சு ( வார_நாட்கள் [ now.dayOfTheWeek ( ) ] ) ;
தொடர்.அச்சு ( ')' ) ;
தொடர்.அச்சு ( இப்போது.மணி ( ) , டிஇசி ) ;
தொடர்.அச்சு ( ':' ) ;
தொடர்.அச்சு ( இப்போது நிமிடம் ( ) , டிஇசி ) ;
தொடர்.அச்சு ( ':' ) ;
தொடர்.அச்சு ( இப்போது.இரண்டாவது ( ) , டிஇசி ) ;
Serial.println ( ) ;
தாமதம் ( 1000 ) ;
}

இந்த குறியீடு பயன்படுத்துகிறது RTClib நூலகம் தேதி மற்றும் நேரத்தைக் கண்காணிக்கும் DS1307 நிகழ்நேர கடிகார தொகுதியுடன் இடைமுகம்.

தி அமைவு பாட் வீதத்தை துவக்குவதன் மூலம் செயல்பாடு தொடங்கியது. அதன் பிறகு, இந்தப் பிரிவின் உள்ளே, கணினியின் தேதி மற்றும் நேரத்தை DS1307 சென்சாருடன் ஒத்திசைப்பதற்கான செயல்பாட்டை நாங்கள் வரையறுத்தோம். இது குறியீடு தொகுப்பின் நேரத்தை RTC சென்சாரில் பதிவேற்றும்.

நீங்கள் பயன்படுத்தலாம் வளைய RTC இலிருந்து தேதி மற்றும் நேரத்தைப் பெறுவதற்கான செயல்பாடு. பின்னர், நீங்கள் அதை தொடர் மானிட்டரில் இவ்வாறு காண்பிக்கலாம்: ஆண்டு/மாதம்/நாள் (வாரத்தின் நாள்) மணிநேரம்: நிமிடம்: நொடி. ஒவ்வொரு வளையத்திற்குப் பிறகும் ஒரு வினாடி தாமதத்தைச் சேர்க்க நினைவில் கொள்ளுங்கள், எனவே குறியீடு மிக வேகமாக இயங்காது.

OLED காட்சியில் தற்போதைய நேரத்தைக் காண்பி

OLED திரையில் அதே நேரத்தைக் காட்ட, OLED திரையில் கூடுதல் குறியீட்டுப் பகுதியைச் சேர்க்க வேண்டும். கொடுக்கப்பட்ட குறியீட்டை வெறுமனே பதிவேற்றவும். இந்தக் குறியீடு உங்கள் OLED திரையில் தற்போதைய நேரத்தைக் காண்பிக்கும்.

நினைவில் கொள்ளுங்கள், இங்கே நாம் 0.96-இன்ச் 128×64 I2C SSD OLED டிஸ்ப்ளே தொகுதியைப் பயன்படுத்துகிறோம். நீங்கள் வேறு ஏதேனும் அளவைப் பயன்படுத்தினால், அதற்கேற்ப குறியீட்டை மாற்றவும். மேலும், I2C முகவரியைச் சரிபார்த்து, கொடுக்கப்பட்ட குறியீட்டில் அதை மாற்றவும். எங்கள் விஷயத்தில், OLED திரைக்கான I2C முகவரி 0x3C உள்ளது.

# அடங்கும்
அடங்கும்
அடங்கும்
#'RTClib.h' அடங்கும்
#திரை_அகலம் 128ஐ வரையறுக்கவும்
#திரை_உயரத்தை வரையறுக்கவும் 64

Adafruit_SSD1306 காட்சி ( SCREEN_WIDTH, SCREEN_HEIGHT, & கம்பி, - 1 ) ;
RTC_DS1307 RTC;
கரி நாட்கள் [ 7 ] [ 12 ] = { 'ஞாயிற்றுக்கிழமை' , 'திங்கட்கிழமை' , 'செவ்வாய்' , 'புதன்கிழமை' , 'வியாழன்' , 'வெள்ளி' , 'சனிக்கிழமை' } ;
வெற்றிட அமைப்பு ( ) {
தொடர்.தொடங்கு ( 115200 ) ;
என்றால் ( ! RTC.தொடங்குகிறது ( ) ) {
Serial.println ( 'ஆர்டிசியைக் கண்டுபிடிக்க முடியவில்லை' ) ;
போது ( 1 ) ;
}
RTC.அட்ஜஸ்ட் ( தேதி நேரம் ( எஃப் ( __DATE__ ) , எஃப் ( __நேரம்__ ) ) ) ;
என்றால் ( ! காட்சி.தொடங்கு ( SSD1306_SWITCHCAPVCC, 0x3C ) ) {
Serial.println ( எஃப் ( 'SSD1306 ஒதுக்கீடு தோல்வியடைந்தது' ) ) ;
க்கான ( ;; ) ;
}
தாமதம் ( 1000 ) ;
காட்சி.clearDisplay ( ) ;
display.setTextSize ( 2 ) ;
display.setTextColor ( வெள்ளை ) ;
display.setCursor ( 30 , இருபது ) ;
display.println ( 'லினக்ஸ்' ) ;
காட்சி.காட்சி ( ) ;
தாமதம் ( 3000 ) ;
காட்சி.clearDisplay ( ) ;
}
வெற்றிட வளையம் ( ) {
இப்போது தேதி நேரம் = RTC.now ( ) ;
காட்சி.clearDisplay ( ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 0 ) ;
காட்சி.அச்சு ( இப்போது.நாள் ( ) ) ;
காட்சி.அச்சு ( '/' ) ;
காட்சி.அச்சு ( இப்போது.மாதம் ( ) ) ;
காட்சி.அச்சு ( '/' ) ;
காட்சி.அச்சு ( இப்போது.வருடம் ( ) ) ;
display.println ( நாட்களில் [ now.dayOfTheWeek ( ) ] ) ;
display.println ( '''' ) ;
display.setCursor ( 0 , 40 ) ;
என்றால் ( இப்போது.மணி ( ) < 10 )
காட்சி.அச்சு ( '0' ) ;
காட்சி.அச்சு ( இப்போது.மணி ( ) ) ;
காட்சி.அச்சு ( ':' ) ;
என்றால் ( இப்போது நிமிடம் ( ) < 10 )
காட்சி.அச்சு ( '0' ) ;
காட்சி.அச்சு ( இப்போது நிமிடம் ( ) ) ;
காட்சி.அச்சு ( ':' ) ;
என்றால் ( இப்போது.இரண்டாவது ( ) < 10 )
காட்சி.அச்சு ( '0' ) ;
display.println ( இப்போது.இரண்டாவது ( ) ) ;
காட்சி.காட்சி ( ) ;
}

RTC மற்றும் காட்சிக்காக நாங்கள் நிறுவிய நூலகங்களில் குறியீடு தொடங்கியது. அதன் பிறகு, இது திரையின் அளவு மற்றும் காட்சி முகவரியை வரையறுக்கிறது. இது வார நாள் பெயர்களுடன் வரிசையை துவக்குகிறது.

தி அமைவு ஒரு பகுதி தொடர் தொடர்புடன் தொடங்குகிறது. இது RTC மற்றும் டிஸ்ப்ளே இயங்குகிறதா இல்லையா என்பதைச் சரிபார்க்கிறது. அதன் பிறகு, 'Linuxhint' என்ற சரம் உரையை 3 வினாடிகள் காண்பிக்கும். இது ஒரு தொடக்க அல்லது தொடக்க செய்தி மட்டுமே, உங்கள் தனிப்பயன் உரையுடன் இந்த செய்தியை நீங்கள் மாற்றலாம்.

தி வளைய செயல்பாடு DS1307 தொகுதி தேதி மற்றும் நேரத்தைப் பெறுகிறது. அதன் பிறகு, அது காட்சியை அழிக்கிறது மற்றும் தேதி மற்றும் நேரத்தை வடிவமைக்கப்பட்ட வழியில் அச்சிடுகிறது. குறியீடு 10 ஐ விட சிறியதாக இருந்தால், மணிநேரம், நிமிடங்கள் மற்றும் வினாடிகளுக்கு முன்னணி பூஜ்ஜியங்களையும் சேர்க்கிறது.

7. வன்பொருள்

ESP32 போர்டில் குறியீட்டைப் பதிவேற்றிய பிறகு, OLED திரையில் பின்வரும் வெளியீட்டைக் காண்பீர்கள். வன்பொருளுக்கு, OLED திரை மற்றும் I2C RTC DS1307 தொகுதியைப் பயன்படுத்தியுள்ளோம். 30 ஊசிகளைக் கொண்ட ESP32 பலகை பயன்படுத்தப்படுகிறது. நீங்கள் வேறு எந்த ESP32 போர்டிலும் பரிசோதனை செய்யலாம், ஆனால் I2C பின்களை சரியாக இணைக்கவும்.

முடிவுரை

RTC DS1307 ஆனது பேட்டரி பேக்கப் ஆதரவுடன் 56-பைட் SRAM ஐக் கொண்டுள்ளது. இது I2C தொடர்பு நெறிமுறையைப் பயன்படுத்தும் 8-முள் சாதனமாகும். DS1307 RTC மாட்யூலை ESP32 உடன் இணைக்க, நீங்கள் ESP32 போர்டின் I2C பின்களை (GPIO 22 (SCL) மற்றும் GPIO 21 (SDA)) பயன்படுத்தலாம். நீங்கள் ஒரு Arduino IDE கன்சோலில் நேரத்தை அச்சிடலாம் அல்லது நேரத்தைக் காட்ட OLED அல்லது I2C LCD போன்ற எந்தத் திரையையும் பயன்படுத்தலாம். DS1307 RTC தொகுதி என்பது பல்வேறு பயன்பாடுகளில் நேரம் மற்றும் தேதியைக் கண்காணிப்பதற்கான ஒரு பயனுள்ள சாதனமாகும். சில முக்கிய பயன்பாடுகளில் டேட்டா லாகர்கள், டிஜிட்டல் கடிகாரங்கள் மற்றும் ஸ்மார்ட்வாட்ச்கள் ஆகியவை அடங்கும்.