{"id":4822,"date":"2026-04-22T08:33:18","date_gmt":"2026-04-22T15:33:18","guid":{"rendered":"https:\/\/www.donluc.com\/?p=4822"},"modified":"2026-04-22T08:33:18","modified_gmt":"2026-04-22T15:33:18","slug":"project-15-environment-gravity-i2c-sd2405-rtc-mk38","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=4822","title":{"rendered":"Project #15: Environment &#8211; Gravity: I2C SD2405 RTC &#8211; Mk38"},"content":{"rendered":"<div style=\"width: 1200px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4822-1\" width=\"1200\" height=\"675\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #RTC #SD #Buzzer #FlameSensor #AHT20 #FireBeetle2ESP32E #ESP32 #Display #IoT #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant<\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04a.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04a.jpg\" alt=\"Gravity: I2C SD2405 RTC\" width=\"720\" height=\"587\" class=\"alignnone size-full wp-image-4824\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04a.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04a-300x245.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04b.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04b.jpg\" alt=\"Gravity: I2C SD2405 RTC\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4825\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04b.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04b-300x200.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04c.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04c.jpg\" alt=\"Gravity: I2C SD2405 RTC\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4826\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04c.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2026\/04\/DL2603Mk04c-300x200.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Gravity: I2C SD2405 RTC Module<\/strong><\/p>\n<p>This is an extremely accurate I2C Real Time Clock (RTC) with crystal compensation, inner chargeable battery. The SD2405AL is available in industrial temperature ranges. The SD2405AL is dual power supply system. When the primary power supply goes down to an assigned value or resumes from low power, the system can switch between the primary power supply and battery automatically. Even there is no external power, it can still work for 5~8 years, 1uA ultra-low power consumption (inner battery).<\/p>\n<p><strong>DL2603Mk04<\/strong><\/p>\n<p>1 x DFRobot FireBeetle 2 ESP32-E<br \/>\n1 x Fermion: 3.5\u201d 480&#215;320 TFT LCD Capacitive<br \/>\n1 x GDL Line 10 CM<br \/>\n1 x Gravity: I2C SD2405 RTC Module<br \/>\n1 x Fermion: MicroSD Card Module<br \/>\n 1 x MicroSD 2 GB<br \/>\n1 x Crowtail &#8211; Buzzer 2.0<br \/>\n1 x Gravity: AHT20 Temperature and Humidity Sensor<br \/>\n1 x Flame Sensor<br \/>\n1 x Crowtail &#8211; LED Green<br \/>\n1 x Gravity: IO Shield for FireBeetle 2<br \/>\n1 x Terminal Block Board for FireBeetle 2 ESP32-E IoT<br \/>\n1 x Lithium Ion Battery &#8211; 1000mAh<br \/>\n1 x USB 3.0 to Type-C Cable<\/p>\n<p>DL2603Mk04p<\/p>\n<p><strong>DL2603Mk04p.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/****** Don Luc Electronics \u00a9 ******\r\nSoftware Version Information\r\nProject #15: Environment - Gravity: I2C SD2405 RTC - Mk38\r\n15-38\r\nDL2603Mk04p.ino\r\nDL2603Mk04\r\n1 x DFRobot FireBeetle 2 ESP32-E\r\n1 x Fermion: 3.5\u201d 480x320 TFT LCD Capacitive\r\n1 x GDL Line 10 CM\r\n1 x Gravity: I2C SD2405 RTC Module\r\n1 x Fermion: MicroSD Card Module\r\n1 x MicroSD 2 GB\r\n1 x Crowtail - Buzzer 2.0\r\n1 x Gravity: AHT20 Temperature and Humidity Sensor\r\n1 x Flame Sensor\r\n1 x Crowtail - LED Green\r\n1 x Gravity: IO Shield for FireBeetle 2\r\n1 x Terminal Block Board for FireBeetle 2 ESP32-E IoT\r\n1 x Lithium Ion Battery - 1000mAh\r\n1 x Micro USB Cable\r\n*\/\r\n\r\n\/\/ Include the Library Code\r\n\/\/ EEPROM Library to Read and Write EEPROM with Unique ID for Unit\r\n#include &quot;EEPROM.h&quot;\r\n\/\/ Wire\r\n#include &lt;Wire.h&gt;\r\n\/\/ DFRobot Display GDL API\r\n#include &lt;DFRobot_GDL.h&gt;\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\n#include &lt;DFRobot_AHT20.h&gt;\r\n\/\/ SD Card\r\n#include &quot;FS.h&quot;\r\n#include &quot;SD.h&quot;\r\n#include &quot;SPI.h&quot;\r\n\/\/ RTC (Real-Time Clock)\r\n#include &lt;GravityRtc.h&gt;\r\n\r\n\/\/ RTC (Real-Time Clock) Initialization\r\nGravityRtc rtc;\r\nString dateRTC = &quot;&quot;;\r\nString timeRTC = &quot;&quot;;\r\n\r\n\/\/ MicroSD Card\r\nconst int chipSelect = D6;\r\nString zzzzzz = &quot;&quot;;\r\n\r\n\/\/ Buzzer\r\nint iBuzzer = D10;\r\n\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nDFRobot_AHT20 aht20;\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nfloat h = 0;\r\nfloat t = 0;\r\n\r\n\/\/ Flame Sensor\r\n\/\/ LED Green\r\nint iLEDG = D11;\r\n\/\/ Flame Sensor\r\nint iFlame =  A0;\r\nString sF = &quot;&quot;;\r\n\r\n\/\/ Defined ESP32\r\n#define TFT_DC  D2\r\n#define TFT_CS  D6\r\n#define TFT_RST D3\r\n\r\n\/*dc=*\/ \/*cs=*\/ \/*rst=*\/\r\n\/\/ DFRobot Display 320x480\r\nDFRobot_ILI9488_320x480_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST);\r\n\r\n\/\/ Software Version Information\r\n\/\/ EEPROM Unique ID Information\r\n#define EEPROM_SIZE 64\r\nString uid = &quot;&quot;;\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;15-38&quot;;\r\n\r\nvoid loop() {\r\n  \r\n  \/\/ RTC (Real-Time Clock)\r\n  isRTC();\r\n  \r\n  \/\/ AHT20 Humidity and Temperature Sensor\r\n  isHT();\r\n  \r\n  \/\/ Flame Sensor\r\n  isFlame();\r\n\r\n  \/\/ isDisplay HT\r\n  isDisplayHT();\r\n\r\n  \/\/ Delay 0.1 Second\r\n  delay( 100 );\r\n\r\n}\r\n<\/pre>\n<p><strong>getDisplay.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ DFRobot Display 320x480\r\n\/\/ DFRobot Display 320x480 - UID\r\nvoid isDisplayUID(){\r\n\r\n  \/\/ DFRobot Display 320x480\r\n  \/\/ Text Display\r\n  \/\/ Text Wrap\r\n  screen.setTextWrap(false);\r\n  \/\/ Rotation\r\n  screen.setRotation(3);\r\n  \/\/ Fill Screen =&gt; black\r\n  screen.fillScreen(0x0000);\r\n  \/\/ Text Color =&gt; white\r\n  screen.setTextColor(0xffff);\r\n  \/\/ Font =&gt; Free Sans Bold 12pt\r\n  screen.setFont(&amp;FreeSansBold12pt7b);\r\n  \/\/ TextSize =&gt; 1.5\r\n  screen.setTextSize(1.5);\r\n  \/\/ Don Luc Electronics\r\n  screen.setCursor(0, 30);\r\n  screen.println(&quot;Don Luc Electronics&quot;);\r\n  \/\/ Tilt Switch\r\n  screen.setCursor(0, 60);\r\n  screen.println(&quot;Gravity: I2C SD2405 RTC&quot;);\r\n  \/\/ Version\r\n  screen.setCursor(0, 90);\r\n  screen.println(&quot;Version&quot;);\r\n  screen.setCursor(0, 120);\r\n  screen.println( sver );\r\n  \/\/ EEPROM\r\n  screen.setCursor(0, 150);\r\n  screen.println(&quot;EEPROM&quot;);\r\n  screen.setCursor(0, 180);\r\n  screen.println( uid );\r\n\r\n}\r\n\/\/ isDisplay HT\r\nvoid isDisplayHT(){\r\n\r\n  \/\/ DFRobot Display 320x480\r\n  \/\/ Text Display\r\n  \/\/ Text Wrap\r\n  screen.setTextWrap(false);\r\n  \/\/ Rotation\r\n  screen.setRotation(3);\r\n  \/\/ Fill Screen =&gt; white\r\n  screen.fillScreen(0xffff);\r\n  \/\/ Text Color =&gt; blue\r\n  screen.setTextColor(0x001F);\r\n  \/\/ Font =&gt; Free Sans Bold 12pt\r\n  screen.setFont(&amp;FreeSansBold12pt7b);\r\n  \/\/ TextSize =&gt; 1.5\r\n  screen.setTextSize(1.5);\r\n  \/\/ RTC (Real-Time Clock)\r\n  screen.setCursor(0, 30);\r\n  screen.println(&quot;Gravity: I2C SD2405 RTC&quot;);\r\n  \/\/ Flame Switch\r\n  screen.setCursor(0, 70);\r\n  screen.println( sF );\r\n  \/\/ Humidity\r\n  screen.setCursor(0, 110);\r\n  screen.println(&quot;Humidity&quot;);\r\n  screen.setCursor(0, 140);\r\n  screen.print( h );\r\n  screen.setCursor(65, 140);\r\n  screen.println( &quot;%RH&quot; );\r\n  \/\/ Temperature\r\n  screen.setCursor(0, 190);\r\n  screen.println(&quot;Temperature&quot;);\r\n  screen.setCursor(0, 220);\r\n  screen.print( t );\r\n  screen.setCursor(65, 220);\r\n  screen.println( &quot;C&quot; );\r\n  \/\/ Date\r\n  screen.setCursor(0, 260);\r\n  screen.print( dateRTC );\r\n  \/\/ Time\r\n  screen.setCursor(0, 300);\r\n  screen.print( timeRTC );\r\n\r\n}\r\n<\/pre>\n<p><strong>getEEPROM.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ isUID EEPROM Unique ID\r\nvoid isUID()\r\n{\r\n  \r\n  \/\/ Is Unit ID\r\n  uid = &quot;&quot;;\r\n  for (int x = 0; x &lt; 7; x++)\r\n  {\r\n    uid = uid + char(EEPROM.read(x));\r\n  }\r\n  \r\n}\r\n<\/pre>\n<p><strong>getFlame.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Flame Sensor\r\n\/\/ is Tilt\r\nvoid isFlame(){\r\n\r\n  \/\/ Flame\r\n  \/\/ Check if Flame Sensor\r\n  if(digitalRead( iFlame) == 0 ){   \r\n    \r\n    \/\/ Turn LED HIGH\r\n    digitalWrite(iLEDG, HIGH);\r\n    sF = &quot;Fire Detected!!!&quot;;\r\n\r\n    \/\/ iBuzzer On\r\n    digitalWrite(iBuzzer, HIGH);\r\n\r\n    \/\/ MicroSD Card\r\n    isSD();\r\n\r\n  } \r\n  else {\r\n    \r\n    \/\/ Turn LED LOW\r\n    digitalWrite(iLEDG, LOW);\r\n    sF = &quot;No Fire Detected!!!&quot;;\r\n\r\n    \/\/ iBuzzer Off\r\n    digitalWrite(iBuzzer, LOW);\r\n    \r\n  }\r\n\r\n}\r\n<\/pre>\n<p><strong>getHT.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ AHT20 Humidity and Temperature Sensor\r\nvoid isHT(){\r\n\r\n  if(aht20.startMeasurementReady(true)){\r\n\r\n    \/\/ Humidity\r\n    h = aht20.getHumidity_RH();\r\n  \r\n   \/\/ Temperature\r\n   t = aht20.getTemperature_C();\r\n   }\r\n  \r\n}\r\n<\/pre>\n<p><strong>getRTC.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ RTC (Real-Time Clock)\r\n\/\/ is RTC (Real-Time Clock)\r\nvoid isRTC(){\r\n\r\n  \/\/ RTC (Real-Time Clock)\r\n  rtc.read();\r\n  \r\n  \/\/ Date\r\n  dateRTC = rtc.year; \r\n  dateRTC = dateRTC + &quot;\/&quot;;\r\n  dateRTC = dateRTC + rtc.month;\r\n  dateRTC = dateRTC + &quot;\/&quot;;\r\n  dateRTC = dateRTC + rtc.day;\r\n  \r\n  \/\/ Time\r\n  timeRTC = rtc.hour;\r\n  timeRTC = timeRTC + &quot;:&quot;;\r\n  timeRTC = timeRTC + rtc.minute;\r\n  timeRTC = timeRTC + &quot;:&quot;;\r\n  timeRTC = timeRTC + rtc.second;\r\n\r\n}\r\n<\/pre>\n<p><strong>getSD.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ MicroSD Card\r\n\/\/ MicroSD Setup\r\nvoid isSetupSD() {\r\n\r\n    \/\/ MicroSD Card\r\n    pinMode( chipSelect , OUTPUT );\r\n    if(!SD.begin( chipSelect )){\r\n        ;  \r\n        return;\r\n    }\r\n    \r\n    uint8_t cardType = SD.cardType();\r\n\r\n    \/\/ CARD NONE\r\n    if(cardType == CARD_NONE){\r\n        ; \r\n        return;\r\n    }\r\n\r\n    \/\/ SD Card Type\r\n    if(cardType == CARD_MMC){\r\n        ; \r\n    } else if(cardType == CARD_SD){\r\n        ; \r\n    } else if(cardType == CARD_SDHC){\r\n        ; \r\n    } else {\r\n        ; \r\n    } \r\n\r\n    \/\/ Size\r\n    uint64_t cardSize = SD.cardSize() \/ (1024 * 1024);\r\n \r\n}\r\n\/\/ MicroSD Card\r\nvoid isSD() {\r\n\r\n  zzzzzz = &quot;&quot;;\r\n\r\n  \/\/DLE|EEPROM Unique ID|Version|Flame|Date|Time|Humidity|Temperature|*\\r\r\n  zzzzzz = &quot;DLE|&quot; + uid + &quot;|&quot; + sver + &quot;|&quot; + String( sF ) + &quot;|&quot; \r\n  + String( dateRTC ) + &quot;|&quot; + String( timeRTC ) + &quot;|&quot; \r\n  + String( h ) + &quot;|&quot; + String( t ) + &quot;|*\\r&quot;;\r\n\r\n  \/\/ msg + 1\r\n  char msg[zzzzzz.length() + 1];\r\n\r\n  zzzzzz.toCharArray(msg, zzzzzz.length() + 1);\r\n\r\n  \/\/ Append File\r\n  appendFile(SD, &quot;\/dledata.txt&quot;, msg );\r\n  \r\n}\r\n\/\/ List Dir\r\nvoid listDir(fs::FS &amp;fs, const char * dirname, uint8_t levels){\r\n    \r\n    \/\/ List Dir\r\n    dirname;\r\n    \r\n    File root = fs.open(dirname);\r\n    \r\n    if(!root){\r\n        return;\r\n    }\r\n    \r\n    if(!root.isDirectory()){\r\n        return;\r\n    }\r\n\r\n    File file = root.openNextFile();\r\n    \r\n    while(file){\r\n        if(file.isDirectory()){\r\n            file.name();\r\n            if(levels){\r\n                listDir(fs, file.name(), levels -1);\r\n            }\r\n        } else {\r\n            file.name();\r\n            file.size();\r\n        }\r\n        file = root.openNextFile();\r\n    }\r\n    \r\n}\r\n\/\/ Write File\r\nvoid writeFile(fs::FS &amp;fs, const char * path, const char * message){\r\n    \r\n    \/\/ Write File\r\n    path;\r\n    \r\n    File file = fs.open(path, FILE_WRITE);\r\n    \r\n    if(!file){\r\n        return;\r\n    }\r\n    \r\n    if(file.print(message)){\r\n        ;  \r\n    } else {\r\n        ;  \r\n    }\r\n    \r\n    file.close();\r\n    \r\n}\r\n\/\/ Append File\r\nvoid appendFile(fs::FS &amp;fs, const char * path, const char * message){\r\n    \r\n    \/\/ Append File\r\n    path;\r\n    \r\n    File file = fs.open(path, FILE_APPEND);\r\n    \r\n    if(!file){\r\n        return;\r\n    }\r\n    \r\n    if(file.print(message)){\r\n        ;  \r\n    } else {\r\n        ;  \r\n    }\r\n    \r\n    file.close();\r\n    \r\n}\r\n<\/pre>\n<p><strong>setup.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Setup\r\nvoid setup()\r\n{\r\n \r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n   \/\/ EEPROM Size\r\n  EEPROM.begin(EEPROM_SIZE);\r\n  \r\n  \/\/ EEPROM Unique ID\r\n  isUID();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ Wire\r\n  Wire.begin();\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n \r\n  \/\/ DFRobot Display 320x480\r\n  screen.begin();\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n  \r\n  \/\/ Flame Sensor\r\n  \/\/ LED Green \r\n  pinMode(iLEDG, OUTPUT);\r\n  \/\/ Flame Sensor\r\n  pinMode(iFlame, INPUT);\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ AHT20 Humidity and Temperature Sensor\r\n  aht20.begin();\r\n  \r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ iBuzzer\r\n  pinMode(iBuzzer, OUTPUT);\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/MicroSD Card\r\n  isSetupSD();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ RTC (Real-Time Clock)\r\n  rtc.setup();\r\n\r\n  \/\/ Set the RTC time automatically\r\n  \/\/ Calibrate RTC time by your computer time\r\n  rtc.adjustRtc(F(__DATE__), F(__TIME__));\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ DFRobot Display 320x480 - UID\r\n  \/\/ Don Luc Electronics\r\n  \/\/ Version\r\n  \/\/ EEPROM\r\n  isDisplayUID();\r\n\r\n  \/\/ Delay 5 Second\r\n  delay( 5000 );\r\n\r\n}\r\n<\/pre>\n<p>&#8212;&#8212;<\/p>\n<p><strong>People can contact us:<\/strong> https:\/\/www.donluc.com\/?page_id=1927<\/p>\n<p><strong>Consultant, R&#038;D, Electronics, IoT, Teacher and Instructor<\/strong><\/p>\n<ul>\n<li>Programming Language<\/li>\n<li>Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc&#8230;)<\/li>\n<li>IoT<\/li>\n<li>Wireless (Radio Frequency, Bluetooth, WiFi, Etc&#8230;)<\/li>\n<li>Robotics<\/li>\n<li>Automation<\/li>\n<li>Camera and Video Capture Receiver Stationary, Wheel\/Tank , Underwater and UAV Vehicle<\/li>\n<li>Unmanned Vehicles Terrestrial,  Marine and UAV<\/li>\n<li>Machine Learning<\/li>\n<li>Artificial Intelligence (AI)<\/li>\n<li>RTOS<\/li>\n<li>Sensors, eHealth Sensors, Biosensor, and Biometric<\/li>\n<li>Research &#038; Development (R &#038; D)<\/li>\n<li>Consulting<\/li>\n<\/ul>\n<p><strong>Follow Us<\/strong><\/p>\n<p><strong>Luc Paquin \u2013 Curriculum Vitae &#8211; 2026<\/strong><br \/>\nhttps:\/\/www.donluc.com\/luc\/LucPaquinCVEng2026Mk01.pdf<br \/>\nhttps:\/\/www.donluc.com\/luc\/<\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.com\/<br \/>\n<strong>Web:<\/strong> https:\/\/www.jlpconsultants.com\/<br \/>\n<strong>Facebook:<\/strong> https:\/\/www.facebook.com\/neosteam.labs.9\/<br \/>\n<strong>YouTube:<\/strong> https:\/\/www.youtube.com\/@thesass2063<br \/>\n<strong>DFRobot:<\/strong> https:\/\/learn.dfrobot.com\/user-10186.html<br \/>\n<strong>Elecrow:<\/strong> https:\/\/www.elecrow.com\/share\/sharepj\/center\/no\/760816d385ebb1edc0732fd873bfbf13<br \/>\n<strong>TikTok:<\/strong> https:\/\/www.tiktok.com\/@luc.paquin8<br \/>\n<strong>Hackster:<\/strong> https:\/\/www.hackster.io\/luc-paquin<br \/>\n<strong>LinkedIn:<\/strong> https:\/\/www.linkedin.com\/in\/jlucpaquin\/<\/p>\n<p><strong>Don Luc<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8212; #DonLucElectronics #DonLuc #RTC #SD #Buzzer #FlameSensor #AHT20 #FireBeetle2ESP32E #ESP32 #Display #IoT #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Gravity: I2C SD2405 RTC Module This is an extremely accurate I2C Real Time Clock (RTC) with crystal compensation, inner chargeable battery. The SD2405AL is available in industrial temperature ranges. The SD2405AL is dual &#8230; <a title=\"Project #15: Environment &#8211; Gravity: I2C SD2405 RTC &#8211; Mk38\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=4822\" aria-label=\"Read more about Project #15: Environment &#8211; Gravity: I2C SD2405 RTC &#8211; Mk38\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[106,397,50,49,317,38,368,80,59,115,5,287,58,82,10,416],"tags":[6,92,102,4,320,87,369,19,107,83,85,421,24,9,84,27,248,33,34,108],"class_list":["post-4822","post","type-post","status-publish","format-standard","hentry","category-environment","category-arduino-digitalelectronics","category-arduino","category-consultant","category-dfrobot","category-digitalelectronics","category-elecrow","category-esp32","category-fritzing","category-e-mentor","category-microcontrollers","category-program","category-arduino-programming","category-program-esp32","category-projects","category-unit","tag-arduino","tag-battery","tag-components","tag-consultant","tag-dfrobot","tag-display","tag-elecrow","tag-electronics","tag-environment","tag-esp32","tag-fritzing","tag-gravity-i2c-sd2405-rtc","tag-microcontroller","tag-programming","tag-programming-esp32","tag-projects-2","tag-sensors","tag-technology","tag-video-blog","tag-vlog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4822"}],"version-history":[{"count":1,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4822\/revisions"}],"predecessor-version":[{"id":4827,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4822\/revisions\/4827"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}