{"id":4333,"date":"2025-03-10T09:39:18","date_gmt":"2025-03-10T16:39:18","guid":{"rendered":"https:\/\/www.donluc.com\/?p=4333"},"modified":"2025-03-10T09:41:52","modified_gmt":"2025-03-10T16:41:52","slug":"project-15-environment-sd-mk28","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=4333","title":{"rendered":"Project #15: Environment \u2013 SD \u2013 Mk28"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4333-1\" width=\"720\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #Arduino #SD #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant<\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06a.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06a.jpg\" alt=\"SD\" width=\"720\" height=\"736\" class=\"alignnone size-full wp-image-4335\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06a.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06a-293x300.jpg 293w\" 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\/2025\/03\/DL2502Mk06b.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06b.jpg\" alt=\"SD\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4336\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06b.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06b-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\/2025\/03\/DL2502Mk06c.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06c.jpg\" alt=\"SD\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-4337\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06c.jpg 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2025\/03\/DL2502Mk06c-300x200.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Crowduino Uno &#8211; SD &#8211; SD Cards<\/strong><\/p>\n<p>There is a SD card slot on the Crowduino Uno &#8211; SD &#8211; SD Card board, with which you can easily use SD Card to record and thus to read data on the SD Card. The SD Card uses the SPI interface (D10\/D11\/D12) plus a CS Pin (D3 or D4) to cominicate with the main microcontroller Atmega328. First, Select the CS Pin you want to use with jumper. To make your project more flexible, you can select either the D3 or D4 pin as your CS pin for SD card. The default is D4. If your D4 have been applied for other modules, you can select the D3, but notice to modify related files in your program, which we will discuss later.<\/p>\n<p><strong>DL2502Mk06<\/strong><\/p>\n<p>1 x Crowduino Uno &#8211; SD<br \/>\n1 x Crowtail &#8211; Base Shield<br \/>\n1 x Crowtail &#8211; LED(Red)<br \/>\n1 x Crowtail &#8211; Button 2.0<br \/>\n1 x MicroSD Card 4 Gb<br \/>\n1 x Crowtail &#8211; RTC 2.0<br \/>\n1 x CR1220 Battery<br \/>\n1 x Crowtail &#8211; Temperature and Humidity Sensor 2.0<br \/>\n1 x Crowtail &#8211; Rotary Angle Sensor 2.0<br \/>\n1 x Crowtail &#8211; Moisture Sensor 2.0<br \/>\n1 x Crowtail &#8211; I2C LCD<br \/>\n1 x Crowtail &#8211; LED(Green)<br \/>\n1 x Crowtail &#8211; LED(Yellow)<br \/>\n1 x USB Battery Pack<br \/>\n1 x USB Mini-B Cable<\/p>\n<p><strong>Crowduino Uno &#8211; SD<\/strong><\/p>\n<p>SCL &#8211; A5<br \/>\nSDA &#8211; A4<br \/>\nPOT &#8211; A1<br \/>\nASM &#8211; A0<br \/>\nSCK &#8211; 12<br \/>\nMISO &#8211; 11<br \/>\nMOSI &#8211; 10<br \/>\nCS &#8211; 4<br \/>\nBUT &#8211; 9<br \/>\nLEDR &#8211; 8<br \/>\nLEDY &#8211; 7<br \/>\nLEDG &#8211; 6<br \/>\nITH &#8211; 5<br \/>\nVIN &#8211; +5V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>DL2502Mk06p<\/strong><\/p>\n<p><strong>DL2502Mk06p.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 \u2013 SD \u2013 Mk28\r\nDL2502Mk06p.ino\r\nDL2502Mk06\r\n1 x Crowduino Uno - SD\r\n1 x Crowtail - Base Shield\r\n1 x Crowtail - LED(Red)\r\n1 x Crowtail - Button 2.0\r\n1 x MicroSD Card 4 Gb\r\n1 x Crowtail - RTC 2.0\r\n1 x CR1220 Battery\r\n1 x Crowtail - Temperature and Humidity Sensor 2.0\r\n1 x Crowtail - Rotary Angle Sensor 2.0\r\n1 x Crowtail - Moisture Sensor 2.0\r\n1 x Crowtail - I2C LCD\r\n1 x Crowtail - LED(Green)\r\n1 x Crowtail - LED(Yellow)\r\n1 x USB Battery Pack\r\n1 x USB Mini-B 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 &lt;EEPROM.h&gt;\r\n\/\/ Wire\r\n#include &lt;Wire.h&gt;\r\n\/\/ Liquid Crystal\r\n#include &quot;LiquidCrystal.h&quot;\r\n\/\/ Temperature and Humidity Sensor\r\n#include &quot;DHT.h&quot;\r\n\/\/ RTC (Real-Time Clock)\r\n#include &quot;RTClib.h&quot;\r\n\/\/ Secure Digital (SD Card)\r\n#include &lt;SD.h&gt;\r\n#include &lt;SPI.h&gt;\r\n\r\n\/\/ Secure Digital (SD Card)\r\nconst int chipSelect = 4;\r\nString zzzzzz = &quot;&quot;;\r\n\r\n\/\/ Define LED Red\r\nint iLED = 8;\r\n\r\n\/\/ Button\r\nint iButton = 9;\r\n\/\/ Variable for reading the Button status\r\nint iButtonState = 0;\r\n\r\n\/\/ RTC (Real-Time Clock)\r\nRTC_DS1307 RTC;\r\nString dateRTC = &quot;&quot;;\r\nString timeRTC = &quot;&quot;;\r\n\r\n\/\/ Temperature and Humidity Sensor\r\n#define DHTPIN 5\r\n\/\/ DHT 11\r\n#define DHTTYPE DHT11\r\nDHT dht(DHTPIN, DHTTYPE);\r\n\/\/ Temperature and Humidity Sensor\r\nfloat h = 0;\r\nfloat t = 0;\r\n\r\n\/\/ Potentiometer\r\nint iPotentiometer = A1;\r\n\/\/ Change Your Threshold Here\r\nint Threshold = 0;\r\nint zz = 0;\r\n\r\n\/\/ Liquid Crystal\r\n\/\/ Connect via i2c\r\nLiquidCrystal lcd(0);\r\n\r\n\/\/ Crowtail Moisture Sensor\r\nint iSoilMoisture = A0;\r\nint iSoilMoistureVal = 0;\r\n\r\n\/\/ LED Yellow\r\nint iLEDYellow = 7;\r\n\r\n\/\/ LED Green\r\nint iLEDGreen = 6;\r\n\r\n\/\/ EEPROM Unique ID Information\r\nString uid = &quot;&quot;;\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;15-28&quot;;\r\n\r\nvoid loop() {\r\n\r\n  \/\/ Crowtail Moisture Sensor\r\n  isSoilMoisture();\r\n\r\n  \/\/ Temperature and Humidity Sensor\r\n  isTH();\r\n\r\n  \/\/ RTC (Real-Time Clock)\r\n  isRTC();\r\n\r\n  \/\/ Read the state of the Switch value\r\n  iButtonState = digitalRead(iButton);\r\n\r\n  \/\/ The Button is HIGH:\r\n  if (iButtonState == HIGH) {\r\n\r\n    \/\/ LED Red HIGH\r\n    digitalWrite(iLED, HIGH);\r\n\r\n    \/\/ MicroSD Card\r\n    isSD();\r\n\r\n  } else {\r\n\r\n    \/\/ LED Red LOW\r\n    digitalWrite(iLED, LOW);\r\n\r\n  }\r\n\r\n  \/\/ Delay 0.5 Second\r\n  delay( 500 );\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\/\/ getDisplay\r\n\/\/ Crowbits - OLED 128X64 UID\r\nvoid isDisplayUID(){\r\n\r\n  \/\/ Set up the LCD&#039;s number of rows and columns: \r\n  lcd.begin(16, 2);\r\n  \/\/ Print a message to the LCD.\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(&quot;Don Luc Electron&quot;);\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 1);\r\n  \/\/ Print a message to the LCD.\r\n  lcd.print( sver );\r\n\r\n}\r\n\/\/ isDisplay Green\r\nvoid isDisplayG(){\r\n\r\n  \/\/ Print a message to the LCD\r\n  \/\/ Clear\r\n  lcd.clear();\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(&quot;Humid Soil&quot;);\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 1);\r\n  \/\/ Print a message to the LCD\r\n  lcd.print( iSoilMoistureVal );\r\n  \r\n}\r\n\/\/ isDisplay Yellow\r\nvoid isDisplayY(){\r\n\r\n  \/\/ Print a message to the LCD\r\n  \/\/ Clear\r\n  lcd.clear();\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(&quot;Dry Soil&quot;);\r\n  \/\/ Cursor\r\n  lcd.setCursor(0, 1);\r\n  \/\/ Print a message to the LCD\r\n  lcd.print( iSoilMoistureVal );\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\/\/ RTC (Real-Time Clock)\r\n\/\/ Setup RTC\r\nvoid isSetupRTC(){\r\n\r\n  \/\/ RTC (Real-Time Clock)\r\n  RTC.begin();\r\n\r\n  \/\/ RTC Running\r\n  if (! RTC.isrunning()) {\r\n    \r\n    \/\/ following line sets the RTC to the date &amp; time\r\n    \/\/this sketch was compiled\r\n    RTC.adjust(DateTime(__DATE__, __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(2014, 1, 21, 3, 0, 0))\r\n    \r\n  }\r\n  \r\n}\r\n\/\/ RTC (Real-Time Clock)\r\nvoid isRTC(){\r\n\r\n  \/\/ RTC (Real-Time Clock)\r\n  DateTime now = RTC.now();\r\n  \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  \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>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   \/\/ See if the card is present and can be initialized:\r\n  if (!SD.begin(chipSelect)) {\r\n\r\n    \/\/ Don&#039;t do anything more:\r\n    while (1);\r\n    \r\n  }\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|Date|Time|\r\n  \/\/Temperature|Humidity|Soil Moisture|\r\n  zzzzzz = &quot;DLE|&quot; + uid + &quot;|&quot; + sver + &quot;|&quot; + String( dateRTC ) + &quot;|&quot; \r\n  + String( timeRTC ) + &quot;|&quot; + String(t) + &quot;|&quot; + String(h) + &quot;|&quot; \r\n  + String(iSoilMoistureVal) + &quot;|&quot;;\r\n\r\n  \/\/ Open the file. Note that only one file can be open at a time,\r\n  \/\/ so you have to close this one before opening another.\r\n  File dataFile = SD.open(&quot;dledata.txt&quot;, FILE_WRITE);\r\n\r\n  \/\/ If the file is available, write to it:\r\n  if (dataFile) {\r\n    \r\n    \/\/ Write\r\n    dataFile.println( zzzzzz );\r\n    dataFile.close();\r\n\r\n  }\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\/\/ Crowtail Moisture Sensor\r\n\/\/ Soil Moisture\r\nvoid isSoilMoisture(){\r\n\r\n  \/\/ Connect Soil Moisture Sensor to Analog 0\r\n  \/\/ iSoilMoistureVal =&gt; 0~700 Soil Moisture\r\n  iSoilMoistureVal = analogRead( iSoilMoisture );\r\n\r\n  \/\/ Threshold =&gt; 200~500\r\n  zz = analogRead( iPotentiometer );\r\n  Threshold = map( zz, 0, 1024, 200, 500);\r\n\r\n  \/\/ Threshold\r\n  if (iSoilMoistureVal &gt; Threshold) {\r\n\r\n    \/\/ 300~700 - Humid Soil\r\n    \/\/ LED Yellow\r\n    digitalWrite(iLEDYellow, LOW);\r\n    \/\/ Display Green\r\n    isDisplayG();\r\n    \/\/ LED Green\r\n    digitalWrite(iLEDGreen, HIGH);\r\n    \r\n  }\r\n  else {\r\n    \r\n    \/\/ 0-300 Dry Soil\r\n    \/\/ LED Green\r\n    digitalWrite(iLEDGreen, LOW);\r\n    \/\/ Display Yellow\r\n    isDisplayY();\r\n    digitalWrite(iLEDYellow, HIGH);\r\n    \r\n  }\r\n\r\n}\r\n<\/pre>\n<p><strong>getTH.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Temperature and Humidity Sensor\r\nvoid isTH(){\r\n\r\n  \/\/ Temperature\r\n  t = dht.readTemperature();\r\n  \/\/ Humidity\r\n  h = dht.readHumidity();\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  \/\/ isUID EEPROM Unique ID\r\n  isUID();\r\n  \r\n  \/\/ Delay\r\n  delay(100);\r\n\r\n  \/\/ Initialize the LED iLED Yellow\r\n  pinMode(iLEDYellow, OUTPUT);\r\n\r\n  \/\/ Initialize the LED LED Green\r\n  pinMode(iLEDGreen, OUTPUT);\r\n\r\n  \/\/ Temperature and Humidity Sensor\r\n  dht.begin();\r\n\r\n  \/\/ Delay\r\n  delay(100);\r\n  \r\n  \/\/ Setup RTC\r\n  isSetupRTC();\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  \/\/ iLED Red\r\n  pinMode(iLED, OUTPUT);\r\n\r\n  \/\/ LED Red LOW\r\n  digitalWrite(iLED, LOW);\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ Button\r\n  pinMode(iButton,INPUT);\r\n\r\n  \/\/ Delay\r\n  delay( 100 );\r\n\r\n  \/\/ Display UID\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>Patreon:<\/strong> https:\/\/patreon.com\/DonLucElectronics59<br \/>\n<strong>DFRobot:<\/strong> https:\/\/learn.dfrobot.com\/user-10186.html<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> https:\/\/www.tiktok.com\/@luc.paquin8<br \/>\n<strong>Twitch:<\/strong> https:\/\/www.twitch.tv\/lucpaquin<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 #Arduino #SD #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Crowduino Uno &#8211; SD &#8211; SD Cards There is a SD card slot on the Crowduino Uno &#8211; SD &#8211; SD Card board, with which you can easily use SD Card to &#8230; <a title=\"Project #15: Environment \u2013 SD \u2013 Mk28\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=4333\" aria-label=\"Read more about Project #15: Environment \u2013 SD \u2013 Mk28\">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,50,49,38,368,59,115,5,138,287,58],"tags":[6,92,102,4,87,369,19,107,85,24,9,27,333,248,33,34,108],"class_list":["post-4333","post","type-post","status-publish","format-standard","hentry","category-environment","category-arduino","category-consultant","category-digitalelectronics","category-elecrow","category-fritzing","category-e-mentor","category-microcontrollers","category-patreon","category-program","category-arduino-programming","tag-arduino","tag-battery","tag-components","tag-consultant","tag-display","tag-elecrow","tag-electronics","tag-environment","tag-fritzing","tag-microcontroller","tag-programming","tag-projects-2","tag-sd","tag-sensors","tag-technology","tag-video-blog","tag-vlog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4333","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=4333"}],"version-history":[{"count":3,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4333\/revisions"}],"predecessor-version":[{"id":4590,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4333\/revisions\/4590"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}