{"id":4152,"date":"2024-09-30T08:57:10","date_gmt":"2024-09-30T15:57:10","guid":{"rendered":"https:\/\/www.donluc.com\/?p=4152"},"modified":"2024-09-30T08:57:10","modified_gmt":"2024-09-30T15:57:10","slug":"project-29-dfrobot-rtc-mk31","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=4152","title":{"rendered":"Project #29 &#8211; DFRobot &#8211; RTC &#8211; Mk31"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4152-1\" width=\"720\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #DFRobot #RTC #SD #ASM #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #SparkFun #Adafruit #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant<\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08a.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08a.jpg\" alt=\"RTC\" width=\"720\" height=\"671\" class=\"alignnone size-full wp-image-4154\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08a.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08a-300x280.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\/2024\/09\/DL2409Mk08b.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08b.jpg\" alt=\"RTC\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-4155\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08b.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08b-300x225.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\/2024\/09\/DL2409Mk08c.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08c.jpg\" alt=\"RTC\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-4156\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08c.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2409Mk08c-300x225.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Real-Time Clock<\/strong><\/p>\n<p>A Real-Time Clock (RTC) is an electronic device, most often in the form of an integrated circuit, that measures the passage of time. Although the term often refers to the devices in personal computers, servers and embedded systems, RTCs are present in almost any electronic device which needs to keep accurate time of day.<\/p>\n<p><strong>Although keeping time can be done without an RTC, using one has benefits:<\/strong><\/p>\n<ul>\n<li>Reliably maintains and provides current time through disruptive system states such as hangs, sleep, reboots, or if given sufficient backup power, full shutdown and hardware reassembly, without the need to have its time set again.<\/li>\n<li>Low power consumption, important when running from alternate power.<\/li>\n<li>Frees the main system for time-critical tasks.<\/li>\n<li>Sometimes more accurate than other methods.<\/li>\n<\/ul>\n<p><strong>DL2409Mk08<\/strong><\/p>\n<p>1 x FireBeetle 2 ESP32-C6<br \/>\n1 x Adalogger FeatherWing &#8211; RTC + SD<br \/>\n1 x CR1220 3 Volt Lithium Coin Cell Battery<br \/>\n1 x Fermion: SHTC3 Temperature &#038; Humidity Sensor<br \/>\n1 x Fermion: 2.0&#8243; 320&#215;240 IPS TFT LCD<br \/>\n1 x GDL Line 10 CM<br \/>\n1 x Gravity: Analog Soil Moisture Sensor<br \/>\n1 x 3 AAA Battery Holder with On\/Off Switch and 2-Pin JST<br \/>\n3 x AAA Battery<br \/>\n1 x SparkFun Solderable Breadboard &#8211; Large<br \/>\n1 x USB 3.1 Cable A to C<\/p>\n<p><strong>FireBeetle 2 ESP32-C6<\/strong><\/p>\n<p>SCL &#8211; 20<br \/>\nSDA &#8211; 19<br \/>\nASM &#8211; A1<br \/>\nLED &#8211; 15<br \/>\nDC &#8211; D2<br \/>\nCS &#8211; D6<br \/>\nRST &#8211; D3<br \/>\nVIN &#8211; +3.3V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>DL2409Mk08p<\/strong><\/p>\n<p><strong>DL2409Mk08p.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 #29 - DFRobot - RTC - Mk31\r\n29-31\r\nDL2409Mk08p.ino\r\nDL2409Mk08\r\n1 x FireBeetle 2 ESP32-C6\r\n1 x Adalogger FeatherWing - RTC + SD\r\n1 x CR1220 3 Volt Lithium Coin Cell Battery\r\n1 x Fermion: SHTC3 Temperature &amp; Humidity Sensor\r\n1 x Fermion: 2.0&quot; 320x240 IPS TFT LCD\r\n1 x GDL Line 10 CM\r\n1 x Gravity: Analog Soil Moisture Sensor\r\n1 x 3 AAA Battery Holder with On\/Off Switch and 2-Pin JST\r\n3 x AAA Battery\r\n1 x SparkFun Solderable Breadboard - Large\r\n1 x USB 3.1 Cable A to C\r\n*\/\r\n\r\n\/\/ Include the Library Code\r\n\/\/ EEPROM Library to Read and Write EEPROM\r\n\/\/ with Unique ID for Unit\r\n#include &quot;EEPROM.h&quot;\r\n\/\/ Arduino\r\n#include &lt;Arduino.h&gt;\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\/\/ Fermion: SHTC3 Temperature &amp; Humidity Sensor\r\n#include&quot;DFRobot_SHTC3.h&quot;\r\n\/\/ Date and Time Functions PCF8523 RTC\r\n#include &lt;RTClib.h&gt;\r\n\r\n\/\/ Date and Time PCF8523 RTC\r\nRTC_PCF8523 rtc;\r\nString dateRTC = &quot;&quot;;\r\nString timeRTC = &quot;&quot;;\r\n\r\n\/\/ Fermion: SHTC3 Temperature &amp; Humidity Sensor\r\nDFRobot_SHTC3 SHTC3;\r\nuint32_t id = 0;\r\nfloat temperature;\r\nfloat humidity;\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 240x320\r\nDFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST);\r\n\r\n\/\/ Gravity: Analog Soil Moisture Sensor\r\nint iSoilMoisture = A1;\r\nint iSoilMoistureVal = 0;\r\nint zz = 0;\r\n\/\/ Change Your Threshold Here\r\nint Threshold = 300;\r\nString SM = &quot;&quot;;\r\n\r\n\/\/ LED Green\r\nint iLEDGreen = 15;\r\n\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;29-31&quot;;\r\n\r\nvoid loop() {\r\n\r\n  \/\/ Date and Time PCF8523 RTC\r\n  isRTC();\r\n  \r\n  \/\/ SHTC3 Temperature and Humidity Sensor\r\n  isSHTC3();\r\n  \r\n  \/\/ Gravity: Analog Soil Moisture Sensor\r\n  isSoilMoisture();\r\n\r\n  \/\/ DFRobot Display 240x320 - ASM - Temperature and Humidity - Date and Time\r\n  isDisplayTH();\r\n\r\n  \/\/ Delay 5 Second\r\n  delay( 5000 );\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 240x320\r\n\/\/ DFRobot Display 240x320 - UID\r\nvoid isDisplayUID() {\r\n\r\n    \/\/ DFRobot Display 240x320\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 Mono 9pt\r\n    screen.setFont(&amp;FreeMono9pt7b);\r\n    \/\/ TextSize =&gt; 1.5\r\n    screen.setTextSize(1.5);\r\n    \/\/ DFRobot Display\r\n    screen.setCursor(0, 30);\r\n    screen.println(&quot;DFRobot Display&quot;);\r\n    \/\/ Don Luc Electronics\r\n    screen.setCursor(0, 60);\r\n    screen.println(&quot;Don Luc Electronics&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\/\/ DFRobot Display 240x320 - ASM - Temperature and Humidity\r\nvoid isDisplayTH() {\r\n  \r\n    \/\/ DFRobot Display 240x320\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 Mono 9pt\r\n    screen.setFont(&amp;FreeMono9pt7b);\r\n    \/\/ TextSize =&gt; 1.5\r\n    screen.setTextSize(1.5);\r\n    \/\/ Soil Moisture Sensor\r\n    screen.setCursor(0, 30);\r\n    screen.println(&quot;Soil Moisture Sensor&quot;);\r\n    \/\/ Date and Time\r\n    screen.setCursor(0, 60);\r\n    screen.println( dateRTC + &quot; - &quot; + timeRTC );\r\n    \/\/ Gravity: Analog Soil Moisture Sensor\r\n    screen.setCursor(0, 90);\r\n    screen.println( &quot;ASM: &quot; );\r\n    screen.setCursor(60, 90);\r\n    screen.println( iSoilMoistureVal );\r\n    screen.setCursor(0, 120);\r\n    screen.println( SM );\r\n    \/\/ SHTC3 Temperature\r\n    screen.setCursor(0, 150);\r\n    screen.println( &quot;Tem: &quot; );\r\n    screen.setCursor(60, 150);\r\n    screen.println( temperature );\r\n    screen.setCursor(120, 150);\r\n    screen.println( &quot;C&quot; );\r\n    \/\/ SHTC3 Humidity\r\n    screen.setCursor(0, 180);\r\n    screen.println( &quot;Hum: &quot; );\r\n    screen.setCursor(60, 180);\r\n    screen.println( humidity );\r\n    screen.setCursor(120, 180);\r\n    screen.println( &quot;%RH&quot; );\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\/\/ EEPROM\r\n\/\/ isUID EEPROM Unique ID\r\nvoid isUID() {\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>getRTC.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Date and Time PCF8523 RTC \r\n\/\/ Setup Date and Time PCF8523 RTC \r\nvoid isSetupRTC() {\r\n\r\n  \/\/ Date and Time PCF8523 RTC   \r\n  if (! rtc.begin()) {\r\n    while (1);\r\n  }  \r\n  if (! rtc.initialized()) {\r\n    \r\n    \/\/ Following line sets the RTC to the date &amp; time this sketch was compiled\r\n    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\r\n    \/\/ This line sets the RTC with an explicit date &amp; time, for example to set\r\n    \/\/ January 21, 2014 at 3am you would call:\r\n    \/\/ rtc.adjust(DateTime(2024, 9, 26, 9, 1, 0));\r\n    \r\n  }\r\n\r\n  \/\/ When the RTC was stopped and stays connected to the battery, it has\r\n  \/\/ to be restarted by clearing the STOP bit. Let&#039;s do this to ensure\r\n  \/\/ the RTC is running.\r\n  rtc.start();\r\n\r\n   \/\/ The PCF8523 can be calibrated for:\r\n  \/\/  - Aging adjustment\r\n  \/\/  - Temperature compensation\r\n  \/\/  - Accuracy tuning\r\n  \/\/ The offset mode to use, once every two hours or once every minute.\r\n  \/\/ The offset Offset value from -64 to +63. \r\n  \/\/ See the Application Note for calculation of offset values.\r\n  \/\/ https:\/\/www.nxp.com\/docs\/en\/application-note\/AN11247.pdf\r\n  \/\/ The deviation in parts per million can be calculated over \r\n  \/\/ a period of observation. Both the drift (which can be negative)\r\n  \/\/ and the observation period must be in seconds. For accuracy \r\n  \/\/ the variation should be observed over about 1 week.\r\n  \/\/ Note: any previous calibration should cancelled prior to \r\n  \/\/ any new observation period.\r\n  \/\/ Seconds plus or minus over oservation period - set to \r\n  \/\/ 0 to cancel previous calibration.\r\n  float drift = 43;\r\n  \/\/ total obsevation period in seconds (86400 = seconds in 1 day: \r\n  \/\/ 7 days = (7 * 86400) seconds )\r\n  float period_sec = (7 * 86400);\r\n  \/\/ Deviation in parts per million (\u03bcs)\r\n  float deviation_ppm = (drift \/ period_sec * 1000000);\r\n  \/\/ Use with offset mode PCF8523_TwoHours\r\n  float drift_unit = 4.34;\r\n  \/\/For corrections every min the drift_unit is 4.069 ppm \r\n  \/\/ (use with offset mode PCF8523_OneMinute)\r\n  \/\/ float drift_unit = 4.069; \r\n  int offset = round(deviation_ppm \/ drift_unit);\r\n\r\n}\r\n\/\/ Date and Time PCF8523 RTC \r\nvoid isRTC () {\r\n\r\n  \/\/ Date and Time\r\n  DateTime now = rtc.now();\r\n  \/\/ Date\r\n  dateRTC = now.year(), DEC; \r\n  dateRTC = dateRTC + &quot;\/&quot;;\r\n  dateRTC = dateRTC + now.month(), DEC;\r\n  dateRTC = dateRTC + &quot;\/&quot;;\r\n  dateRTC = dateRTC + now.day(), DEC;\r\n  \/\/ Time\r\n  timeRTC = now.hour(), DEC;\r\n  timeRTC = timeRTC + &quot;:&quot;;\r\n  timeRTC = timeRTC + now.minute(), DEC;\r\n  timeRTC = timeRTC + &quot;:&quot;;\r\n  timeRTC = timeRTC + now.second(), DEC;\r\n  \r\n}\r\n<\/pre>\n<p><strong>getSHTC3.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ SHTC3 Temperature and Humidity Sensor\r\n\/\/ SHTC3\r\nvoid isSHTC3(){\r\n\r\n  \/\/ SHTC3 Temperature and Humidity Sensor\r\n  \/**\r\n   *    Mode  For configuring sensor working mode    \r\n   *    SHTC3\uff1a\r\n           PRECISION_HIGH_CLKSTRETCH_ON Clock Stretching Enabled \r\n   *       PRECISION_HIGH_CLKSTRETCH_OFF Clock Stretching Disabled \r\n   *       PRECISION_LOW_CLKSTRETCH_ON Clock Stretching Enabled &amp; Low Power\r\n   *       PRECISION_LOW_CLKSTRETCH_OFF Clock Stretching Disabled &amp; Low Power\r\n   *\/\r\n  temperature = SHTC3.getTemperature(PRECISION_HIGH_CLKSTRETCH_ON);\r\n  \/**\r\n   *    Mode  For configuring sensor working mode \r\n   *    SHTC3\r\n   *       PRECISION_HIGH_CLKSTRETCH_ON Clock Stretching Enabled \r\n   *       PRECISION_HIGH_CLKSTRETCH_OFF Clock Stretching Disabled \r\n   *       PRECISION_LOW_CLKSTRETCH_ON Clock Stretching Enabled &amp; Low Power\r\n   *       PRECISION_LOW_CLKSTRETCH_OFF Clock Stretching Disabled &amp; Low Power\r\n   *\/\r\n  humidity = SHTC3.getHumidity(PRECISION_HIGH_CLKSTRETCH_OFF);\r\n\r\n}\r\n<\/pre>\n<p><strong>getSoilMoisture.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Gravity: Analog Soil Moisture Sensor\r\n\/\/ Soil Moisture\r\nvoid isSoilMoisture(){\r\n\r\n  \/\/ Connect Soil Moisture Sensor to Analog 0\r\n  zz = analogRead( iSoilMoisture );\r\n\r\n  \/\/ iSoilMoistureVal =&gt; 0~900 Soil Moisture\r\n  iSoilMoistureVal = map( zz, 0, 4095, 0, 900);\r\n\r\n  \/\/ Threshold\r\n  if (iSoilMoistureVal &gt; Threshold)\r\n\r\n    \/\/ 300~950 - Humid Soil\r\n    SM = &quot;Humid Soil&quot;;\r\n    \r\n  else {\r\n    \r\n    \/\/ 0-300 Dry Soil\r\n    SM = &quot;Dry Soil&quot;;\r\n\r\n  }\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  \/\/ Give display time to power on\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 240x320\r\n  screen.begin();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ Fermion: SHTC3 Temperature &amp; Humidity Sensor\r\n  SHTC3.begin();\r\n  \/*SHTC3 is set to sleep mode by default. Please wake it up before use. \r\n  Use SHTC3.sleep() to let SHTC3 enter sleep mode; SHTC3 \r\n  stops working in sleep mode*\/\r\n  SHTC3.wakeup();\r\n  \r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ Setup Date and Time PCF8523 RTC \r\n  isSetupRTC();\r\n\r\n  \/\/ Date and Time PCF8523 RTC\r\n  isRTC();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ Initialize the LED Green\r\n  pinMode(iLEDGreen, OUTPUT);\r\n\r\n  \/\/ iLEDGreen HIGH\r\n  digitalWrite(iLEDGreen, HIGH );\r\n\r\n  \/\/ DFRobot Display 240x320 - 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>Electronics, IoT, Teacher, Instructor, R&#038;D and Consulting<\/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 and Underwater Vehicle<\/li>\n<li>Unmanned Vehicles Terrestrial and Marine<\/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; 2024<\/strong><br \/>\nhttps:\/\/www.donluc.com\/luc\/<\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.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>Twitter:<\/strong> https:\/\/twitter.com\/labs_steam<br \/>\n<strong>Pinterest:<\/strong> https:\/\/www.pinterest.com\/NeoSteamLabs\/<br \/>\n<strong>Instagram:<\/strong> https:\/\/www.instagram.com\/neosteamlabs\/<br \/>\n<strong>DFRobot Luc.Paquin:<\/strong> https:\/\/edu.dfrobot.com\/dashboard\/makelogs<br \/>\n<strong>Hackster.io:<\/strong> https:\/\/www.hackster.io\/neosteam-labs<br \/>\n<strong>ELECROW:<\/strong> https:\/\/www.elecrow.com\/share\/sharepj\/center\/no\/760816d385ebb1edc0732fd873bfbf13<br \/>\n<strong>TikTok:<\/strong> www.tiktok.com\/@luc.paquin8<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 #DFRobot #RTC #SD #ASM #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #SparkFun #Adafruit #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Real-Time Clock A Real-Time Clock (RTC) is an electronic device, most often in the form of an integrated circuit, that measures the passage of time. Although the term often &#8230; <a title=\"Project #29 &#8211; DFRobot &#8211; RTC &#8211; Mk31\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=4152\" aria-label=\"Read more about Project #29 &#8211; DFRobot &#8211; RTC &#8211; Mk31\">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":[318,47,50,49,317,38,80,59,115,5,287,58,82,10,43],"tags":[86,6,92,102,4,320,87,19,83,85,24,9,84,27,332,109,33,34,108],"class_list":["post-4152","post","type-post","status-publish","format-standard","hentry","category-ddfrobot","category-adafruit","category-arduino","category-consultant","category-dfrobot","category-digitalelectronics","category-esp32","category-fritzing","category-e-mentor","category-microcontrollers","category-program","category-arduino-programming","category-program-esp32","category-projects","category-sparkfun","tag-adafruit","tag-arduino","tag-battery","tag-components","tag-consultant","tag-dfrobot","tag-display","tag-electronics","tag-esp32","tag-fritzing","tag-microcontroller","tag-programming","tag-programming-esp32","tag-projects-2","tag-rtc","tag-sparkfun","tag-technology","tag-video-blog","tag-vlog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4152","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=4152"}],"version-history":[{"count":2,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4152\/revisions"}],"predecessor-version":[{"id":4747,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4152\/revisions\/4747"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}