{"id":4093,"date":"2024-09-02T08:54:16","date_gmt":"2024-09-02T15:54:16","guid":{"rendered":"https:\/\/www.donluc.com\/?p=4093"},"modified":"2024-09-02T08:54:16","modified_gmt":"2024-09-02T15:54:16","slug":"project-29-dfrobot-micro-sd-card-breakout-board-mk27","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=4093","title":{"rendered":"Project #29 &#8211; DFRobot &#8211; Micro SD Card Breakout Board &#8211; Mk27"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4093-1\" width=\"720\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #DFRobot #Smoke #CH4 #VOC #SHTC3 #SD #FireBeetle2ESP32E #Display #EEPROM #ESP32 #IoT #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\/DL2408Mk06a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06a.png\" alt=\"Micro SD Card Breakout Board\" width=\"720\" height=\"599\" class=\"alignnone size-full wp-image-4095\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06a.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06a-300x250.png 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\/DL2408Mk06b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06b.png\" alt=\"Micro SD Card Breakout Board\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-4096\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06b.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06b-300x225.png 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\/DL2408Mk06c.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06c.png\" alt=\"Micro SD Card Breakout Board\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-4097\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06c.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2024\/09\/DL2408Mk06c-300x225.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Adafruit MicroSD card breakout board+<\/strong><\/p>\n<p>Not just a simple breakout board, this microSD adapter goes the extra mile, designed for ease of use.<\/p>\n<ul>\n<li>Onboard 5 Volt -> 3 Volt regulator provides 150mA for power-hungry cards<\/li>\n<li>3 Volt level shifting means you can use this with ease on either 3 Volt or 5 Volt systems<\/li>\n<li>Uses a proper level shifting chip, not resistors: less problems, and faster read\/write access<\/li>\n<li>Use 3 or 4 digital pins to read and write 2Gb+ of storage<\/li>\n<li>Activity LED lights up when the SD card is being read or written<\/li>\n<li>Four #2 mounting holes<\/li>\n<li>Push-push socket with card slightly over the edge of the PCB so its easy to insert and remove<\/li>\n<li>Comes with 0.1&#8243; header, unattached, so you can get it on a breadboard or use wires, your choice<\/li>\n<li>Tested and assembled here at the Adafruit factory<\/li>\n<li>Works great with Arduino, with tons of example code and wiring diagrams<\/li>\n<\/ul>\n<p><strong>DL2408Mk06<\/strong><\/p>\n<p>1 x DFRobot FireBeetle 2 ESP32-E<br \/>\n1 x Adafruit MicroSD card breakout board+<br \/>\n1 x MicroSD 2 GB<br \/>\n1 x Fermion: MEMS Smoke Gas Detection Sensor<br \/>\n1 x Fermion: MEMS Methane CH4 Gas Detection Sensor<br \/>\n1 x Fermion: MEMS VOC Gas Detection Sensor<br \/>\n1 x Fermion: SHTC3 Temperature and 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 Lithium Ion Battery &#8211; 1000mAh<br \/>\n1 x Switch<br \/>\n1 x USB 3.1 Cable A to C<\/p>\n<p><strong>FireBeetle 2 ESP32-E<\/strong><\/p>\n<p>VOC &#8211; A1<br \/>\nCH4 &#8211; A2<br \/>\nSMO &#8211; A3<br \/>\nLED &#8211; 2<br \/>\nSCK &#8211; 18<br \/>\nMOSI &#8211; 23<br \/>\nMISO &#8211; 19<br \/>\nCS &#8211; 13<br \/>\nSCL &#8211; 22<br \/>\nSDA &#8211; 21<br \/>\nDC &#8211; D2<br \/>\nCS &#8211; D6<br \/>\nRST &#8211; D3<br \/>\nVIN &#8211; +3.3V<br \/>\nGND &#8211; GND<\/p>\n<p>DL2408Mk06p<\/p>\n<p><strong>DL2408Mk06p.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 - Micro SD Card Breakout Board - Mk27\r\n29-27\r\nDL2408Mk06p.ino\r\nDL2408Mk06\r\n1 x DFRobot FireBeetle 2 ESP32-E\r\n1 x Adafruit MicroSD card breakout board+\r\n1 x MicroSD 2 GB\r\n1 x Fermion: MEMS Smoke Gas Detection Sensor\r\n1 x Fermion: MEMS Methane CH4 Gas Detection Sensor\r\n1 x Fermion: MEMS VOC Gas Detection Sensor\r\n1 x Fermion: SHTC3 Temperature and Humidity Sensor\r\n1 x Fermion: 2.0&quot; 320x240 IPS TFT LCD\r\n1 x GDL Line 10 CM\r\n1 x Lithium Ion Battery - 1000mAh\r\n1 x Switch\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\/\/ DFRobot Display GDL API\r\n#include &lt;DFRobot_GDL.h&gt;\r\n\/\/ Arduino\r\n#include &lt;Arduino.h&gt;\r\n\/\/ Wire\r\n#include &lt;Wire.h&gt;\r\n\/\/ SHTC3 Temperature and Humidity Sensor\r\n#include &quot;SHTSensor.h&quot;\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\r\n\/\/ MEMS Smoke Gas\r\nint iSensorSmoke = A3;\r\nint iSensorValueSmoke = 0;\r\nint z = 0;\r\n\r\n\/\/ MEMS CH4 Gas\r\nint iSensorCH4 = A2;\r\nint iSensorValueCH4 = 0;\r\nint y = 0;\r\n\r\n\/\/ MEMS VOC Gas\r\nint iSensorVOC = A1;\r\nint iSensorValueVOC = 0;\r\nint x = 0;\r\n\r\n\/\/ MicroSD Card\r\nconst int chipSelect = 13;\r\nString zzzzzz = &quot;&quot;;\r\n\r\n\/\/ SHTC3 Temperature and Humidity Sensor\r\nSHTSensor sht;\r\n\/\/ Temperature\r\nfloat T;\r\n\/\/ Humidity\r\nfloat H;\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\/\/ LED Green\r\nint iLEDGreen = 2;\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-27&quot;;\r\n\r\nvoid loop() {\r\n\r\n  \/\/ MEMS Smoke Gas\r\n  isSmoke();\r\n  \r\n  \/\/ MEMS CH4 Gas\r\n  isCH4();\r\n  \r\n  \/\/ MEMS VOC Gas\r\n  isVOC();\r\n  \r\n  \/\/ SHTC3 Temperature and Humidity Sensor\r\n  isSHTC3();\r\n\r\n  \/\/ DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4, Smoke\r\n  isDisplayTH();\r\n\r\n  \/\/ MicroSD Card\r\n  isSD();\r\n\r\n  \/\/ Delay 5 Second\r\n  delay( 5000 );\r\n\r\n}\r\n<\/pre>\n<p><strong>getCH4.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ MEMS CH4 Gas\r\n\/\/ is CH4\r\nvoid isCH4(){\r\n\r\n  \/\/ MEMS CH4 Gas\r\n  y = analogRead( iSensorCH4 );\r\n  iSensorValueCH4 = map(y, 1, 4095, 1, 10000);\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 - Temperature and Humidity, VOC, CH4, Smoke\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    \/\/ Don Luc Electronics\r\n    screen.setCursor(0, 30);\r\n    screen.println(&quot;Don Luc Electronics&quot;);\r\n    \/\/ Version\r\n    screen.setCursor(0, 60);\r\n    screen.println( sver );\r\n    \/\/ Temperature\r\n    screen.setCursor(0, 90);\r\n    screen.println( &quot;Temp: &quot; );\r\n    screen.setCursor(60, 90);\r\n    screen.println( T );\r\n    screen.setCursor(130, 90);\r\n    screen.println(&quot;Celsius&quot;);\r\n    \/\/ Humidity\r\n    screen.setCursor(0, 120);\r\n    screen.println(&quot;Humi: &quot;);\r\n    screen.setCursor(60, 120);\r\n    screen.println( H );\r\n    screen.setCursor(130, 120);\r\n    screen.println(&quot;% RH&quot;);\r\n    \/\/ MEMS VOC Gas\r\n    screen.setCursor(0, 150);\r\n    screen.println( &quot;VOC: &quot; );\r\n    screen.setCursor(60, 150);\r\n    screen.println( iSensorValueVOC );\r\n    screen.setCursor(130, 150);\r\n    screen.println(&quot;ppm&quot;);\r\n    \/\/ MEMS CH4 Gas\r\n    screen.setCursor(0, 180);\r\n    screen.println( &quot;CH4: &quot; );\r\n    screen.setCursor(60, 180);\r\n    screen.println( iSensorValueCH4 );\r\n    screen.setCursor(130, 180);\r\n    screen.println(&quot;ppm&quot;);\r\n    \/\/ MEMS Smoke Gas\r\n    screen.setCursor(0, 210);\r\n    screen.println( &quot;SMO: &quot; );\r\n    screen.setCursor(60, 210);\r\n    screen.println( iSensorValueSmoke );\r\n    screen.setCursor(130, 210);\r\n    screen.println(&quot;ppm&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>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  \/\/DFR|EEPROM Unique ID|Version|\r\n  \/\/Temperature C|% RH|VOC|CH4|Smoke|*\\r\r\n  zzzzzz = &quot;DFR|&quot; + uid + &quot;|&quot; + sver + &quot;|&quot;\r\n  + String( T ) + &quot;|&quot; + String( H ) + &quot;|&quot;\r\n  + String( iSensorValueVOC ) + &quot;|&quot; + String( iSensorValueCH4 ) + &quot;|&quot;\r\n  + String( iSensorValueSmoke ) + &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;\/dfrdata.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>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  if (sht.readSample()) {\r\n     \r\n     \/\/ Temperature\r\n     T = sht.getTemperature();\r\n     \/\/ Humidity\r\n     H = sht.getHumidity();\r\n\r\n  }\r\n\r\n}\r\n<\/pre>\n<p><strong>getSmoke.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Smoke\r\n\/\/ isSmoke\r\nvoid isSmoke(){\r\n\r\n  \/\/ MEMS Smoke Gas\r\n  z = analogRead( iSensorSmoke );\r\n  iSensorValueSmoke = map(x, 1, 4095, 1, 1000);\r\n  \r\n}\r\n<\/pre>\n<p><strong>getVOC.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ MEMS VOC Gas\r\n\/\/ is VOC\r\nvoid isVOC(){\r\n\r\n  \/\/ MEMS VOC Gas\r\n  x = analogRead( iSensorVOC );\r\n  iSensorValueVOC = map(x, 1, 4095, 1, 500);\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  \/\/ SHTC3 Temperature and Humidity Sensor\r\n  sht.init();\r\n  \/\/ SHT3x\r\n  sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM);\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  \/\/ MicroSD Card\r\n  isSetupSD();\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>Teacher, Instructor, E-Mentor, 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>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 #Smoke #CH4 #VOC #SHTC3 #SD #FireBeetle2ESP32E #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Adafruit MicroSD card breakout board+ Not just a simple breakout board, this microSD adapter goes the extra mile, designed for ease of use. Onboard 5 Volt -> 3 Volt regulator &#8230; <a title=\"Project #29 &#8211; DFRobot &#8211; Micro SD Card Breakout Board &#8211; Mk27\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=4093\" aria-label=\"Read more about Project #29 &#8211; DFRobot &#8211; Micro SD Card Breakout Board &#8211; Mk27\">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,50,49,317,38,80,287,58,82,10],"tags":[86,6,92,102,4,320,87,19,83,85,359,24,9,84,27,33,34,108],"class_list":["post-4093","post","type-post","status-publish","format-standard","hentry","category-ddfrobot","category-arduino","category-consultant","category-dfrobot","category-digitalelectronics","category-esp32","category-program","category-arduino-programming","category-program-esp32","category-projects","tag-adafruit","tag-arduino","tag-battery","tag-components","tag-consultant","tag-dfrobot","tag-display","tag-electronics","tag-esp32","tag-fritzing","tag-micro-sd-card-breakout-board","tag-microcontroller","tag-programming","tag-programming-esp32","tag-projects-2","tag-technology","tag-video-blog","tag-vlog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4093","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=4093"}],"version-history":[{"count":1,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4093\/revisions"}],"predecessor-version":[{"id":4098,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/4093\/revisions\/4098"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}