Microcontrollers
Microcontrollers
Project #30 – UNIHIKER – Gravity: Analog Ambient Light Sensor – Mk03
——
#DonLucElectronics #DonLuc #UNIHIKER #AmbientLight #Display #IoT #Project #Debian #Python #Thonny #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Gravity: Analog Ambient Light Sensor
This Gravity: Analog ambient light sensor can assist you in detecting light density and provide an analog voltage signal to the controller as feedback. Additionally, you have the ability to trigger other components within your project by setting voltage thresholds. To facilitate easier usage of the ambient light sensor, this product is designed with a universal Gravity interface that can be plugged in without requiring soldering. Two screw holes allow you to fasten it to any desired location. Making messy DuPont wires and complex connections a thing of the past and enabling you to focus your energy on your creative designs.
DL2408Mk07
1 x UNIHIKER
1 x Gravity: Analog Ambient Light Sensor
1 x USB Battery Pack
1 x USB 3.1 Cable A to C
UNIHIKER
ADC – 21
VIN – +5V
GND – GND
DL2408Mk07p
DL2408Mk07p.py
""" ****** Don Luc Electronics © ****** Software Version Information Project #30 - UNIHIKER - Gravity: Analog Ambient Light Sensor - Mk03 30-03 DL2408Mk07.py DL2408Mk07 1 x UNIHIKER 1 x Gravity: Analog Ambient Light Sensor 1 x USB Battery Pack 1 x USB 3.1 Cable A to C -*- coding: utf-8 -*- """ # Import the unihiker library from unihiker import GUI # Import the time library import time # Import the Board module from the pinpong.board package from pinpong.board import Board # Import all modules from the pinpong.extension.unihiker package from pinpong.extension.unihiker import * # Initialize the board by selecting the board type and port number; # if not specified, the program will automatically detect it Board().begin() # Initialize pin 21 as analog input mode # Gravity: Analog Ambient Light Sensor adc0 = Pin(Pin.P21, Pin.ANALOG) # Instantiate the GUI class and create a gui object gui = GUI() # Display the initial background image 'DL2408Mk07p' img = gui.draw_image(x=0, y=0, w=240, h=320, image='DL2408Mk07p.png') # Ambient Light Sensor # Display the initial Ambient Light Sensor valueLight valueLight = gui.draw_text(x=30, y=151, text='0', font_size=18) # Gravity: Analog Ambient Light Sensor # Display the initial Gravity: Analog Ambient Light Sensor valueAnalogLight valueAnalogLight = gui.draw_text(x=30, y=221, text='0', font_size=18) while True: # Ambient Light Sensor # Read the light value AmbientLightSensor = light.read() # Update the displayed light value valueLight.config(text=AmbientLightSensor) # Gravity: Analog Ambient Light Sensor # Read analog value AnalogAmbientLightSensor = adc0.read_analog() valueAnalogLight.config(text=AnalogAmbientLightSensor) # Delay for 1 second to keep the screen content displayed for a longer time time.sleep(1)
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – Micro SD Card Breakout Board – Mk27
——
#DonLucElectronics #DonLuc #DFRobot #Smoke #CH4 #VOC #SHTC3 #SD #FireBeetle2ESP32E #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
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 provides 150mA for power-hungry cards
- 3 Volt level shifting means you can use this with ease on either 3 Volt or 5 Volt systems
- Uses a proper level shifting chip, not resistors: less problems, and faster read/write access
- Use 3 or 4 digital pins to read and write 2Gb+ of storage
- Activity LED lights up when the SD card is being read or written
- Four #2 mounting holes
- Push-push socket with card slightly over the edge of the PCB so its easy to insert and remove
- Comes with 0.1″ header, unattached, so you can get it on a breadboard or use wires, your choice
- Tested and assembled here at the Adafruit factory
- Works great with Arduino, with tons of example code and wiring diagrams
DL2408Mk06
1 x DFRobot FireBeetle 2 ESP32-E
1 x Adafruit MicroSD card breakout board+
1 x MicroSD 2 GB
1 x Fermion: MEMS Smoke Gas Detection Sensor
1 x Fermion: MEMS Methane CH4 Gas Detection Sensor
1 x Fermion: MEMS VOC Gas Detection Sensor
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x GDL Line 10 CM
1 x Lithium Ion Battery – 1000mAh
1 x Switch
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-E
VOC – A1
CH4 – A2
SMO – A3
LED – 2
SCK – 18
MOSI – 23
MISO – 19
CS – 13
SCL – 22
SDA – 21
DC – D2
CS – D6
RST – D3
VIN – +3.3V
GND – GND
DL2408Mk06p
DL2408Mk06p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - Micro SD Card Breakout Board - Mk27 29-27 DL2408Mk06p.ino DL2408Mk06 1 x DFRobot FireBeetle 2 ESP32-E 1 x Adafruit MicroSD card breakout board+ 1 x MicroSD 2 GB 1 x Fermion: MEMS Smoke Gas Detection Sensor 1 x Fermion: MEMS Methane CH4 Gas Detection Sensor 1 x Fermion: MEMS VOC Gas Detection Sensor 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x GDL Line 10 CM 1 x Lithium Ion Battery - 1000mAh 1 x Switch 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SD Card #include "FS.h" #include "SD.h" #include "SPI.h" // MEMS Smoke Gas int iSensorSmoke = A3; int iSensorValueSmoke = 0; int z = 0; // MEMS CH4 Gas int iSensorCH4 = A2; int iSensorValueCH4 = 0; int y = 0; // MEMS VOC Gas int iSensorVOC = A1; int iSensorValueVOC = 0; int x = 0; // MicroSD Card const int chipSelect = 13; String zzzzzz = ""; // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC D2 #define TFT_CS D6 #define TFT_RST D3 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 2; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-27"; void loop() { // MEMS Smoke Gas isSmoke(); // MEMS CH4 Gas isCH4(); // MEMS VOC Gas isVOC(); // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4, Smoke isDisplayTH(); // MicroSD Card isSD(); // Delay 5 Second delay( 5000 ); }
getCH4.ino
// MEMS CH4 Gas // is CH4 void isCH4(){ // MEMS CH4 Gas y = analogRead( iSensorCH4 ); iSensorValueCH4 = map(y, 1, 4095, 1, 10000); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4, Smoke void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature screen.setCursor(0, 90); screen.println( "Temp: " ); screen.setCursor(60, 90); screen.println( T ); screen.setCursor(130, 90); screen.println("Celsius"); // Humidity screen.setCursor(0, 120); screen.println("Humi: "); screen.setCursor(60, 120); screen.println( H ); screen.setCursor(130, 120); screen.println("% RH"); // MEMS VOC Gas screen.setCursor(0, 150); screen.println( "VOC: " ); screen.setCursor(60, 150); screen.println( iSensorValueVOC ); screen.setCursor(130, 150); screen.println("ppm"); // MEMS CH4 Gas screen.setCursor(0, 180); screen.println( "CH4: " ); screen.setCursor(60, 180); screen.println( iSensorValueCH4 ); screen.setCursor(130, 180); screen.println("ppm"); // MEMS Smoke Gas screen.setCursor(0, 210); screen.println( "SMO: " ); screen.setCursor(60, 210); screen.println( iSensorValueSmoke ); screen.setCursor(130, 210); screen.println("ppm"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card pinMode( chipSelect , OUTPUT ); if(!SD.begin( chipSelect )){ ; return; } uint8_t cardType = SD.cardType(); // CARD NONE if(cardType == CARD_NONE){ ; return; } // SD Card Type if(cardType == CARD_MMC){ ; } else if(cardType == CARD_SD){ ; } else if(cardType == CARD_SDHC){ ; } else { ; } // Size uint64_t cardSize = SD.cardSize() / (1024 * 1024); } // MicroSD Card void isSD() { zzzzzz = ""; //DFR|EEPROM Unique ID|Version| //Temperature C|% RH|VOC|CH4|Smoke|*\r zzzzzz = "DFR|" + uid + "|" + sver + "|" + String( T ) + "|" + String( H ) + "|" + String( iSensorValueVOC ) + "|" + String( iSensorValueCH4 ) + "|" + String( iSensorValueSmoke ) + "|*\r";; // msg + 1 char msg[zzzzzz.length() + 1]; zzzzzz.toCharArray(msg, zzzzzz.length() + 1); // Append File appendFile(SD, "/dfrdata.txt", msg ); } // List Dir void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ // List Dir dirname; File root = fs.open(dirname); if(!root){ return; } if(!root.isDirectory()){ return; } File file = root.openNextFile(); while(file){ if(file.isDirectory()){ file.name(); if(levels){ listDir(fs, file.name(), levels -1); } } else { file.name(); file.size(); } file = root.openNextFile(); } } // Write File void writeFile(fs::FS &fs, const char * path, const char * message){ // Write File path; File file = fs.open(path, FILE_WRITE); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); } // Append File void appendFile(fs::FS &fs, const char * path, const char * message){ // Append File path; File file = fs.open(path, FILE_APPEND); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
getSmoke.ino
// Smoke // isSmoke void isSmoke(){ // MEMS Smoke Gas z = analogRead( iSensorSmoke ); iSensorValueSmoke = map(x, 1, 4095, 1, 1000); }
getVOC.ino
// MEMS VOC Gas // is VOC void isVOC(){ // MEMS VOC Gas x = analogRead( iSensorVOC ); iSensorValueVOC = map(x, 1, 4095, 1, 500); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Delay delay(100); // MicroSD Card isSetupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #30 – UNIHIKER – Ambient Light Sensor – Mk02
——
#DonLucElectronics #DonLuc #UNIHIKER #Display #IoT #Project #Debian #Python #Thonny #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
UNIHIKER Ambient Light Sensor
A light sensor is a photoelectric device that converts light energy (Photons) detected to electrical energy (Electrons). There is more to a light sensor than just its definition. It comes in different types and is used in various applications. This project provides a foundation for home lighting design, whether adjusting brightness levels in work areas or creating a cozy atmosphere in bedrooms, making it a practical tool. It measures the ambient light level of your surroundings and determines the suitable brightness of your screen.
DL2408Mk05
1 x UNIHIKER
1 x USB Battery Pack
1 x USB 3.1 Cable A to C
DL2408Mk05p
DL2408Mk05p.py
""" ****** Don Luc Electronics © ****** Software Version Information Project #30 - UNIHIKER - Ambient Light Sensor - Mk02 30-02 DL2408Mk05.py DL2408Mk05 1 x UNIHIKER 1 x USB Battery Pack 1 x USB 3.1 Cable A to C -*- coding: utf-8 -*- """ # Import the unihiker library from unihiker import GUI # Import the time library import time # Import the Board module from the pinpong.board package from pinpong.board import Board # Import all modules from the pinpong.extension.unihiker package from pinpong.extension.unihiker import * # Initialize the board by selecting the board type and port number; # if not specified, the program will automatically detect it Board().begin() # Instantiate the GUI class and create a gui object gui = GUI() # Display the initial background image 'dlemk02' img = gui.draw_image(x=0, y=0, w=240, h=320, image='DL2408Mk05p.png') # Ambient Light Sensor # Display the initial Ambient Light Sensor valueLight valueLight = gui.draw_text(x=30, y=151, text='0', font_size=18) while True: # Ambient Light Sensor # Read the light value AmbientLightSensor = light.read() # Update the displayed light value valueLight.config(text=AmbientLightSensor) # Delay for 1 second to keep the screen content displayed for a longer time time.sleep(1)
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – MEMS Smoke – Mk26
——
#DonLucElectronics #DonLuc #DFRobot #Smoke #CH4 #VOC #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Fermion: MEMS Smoke Gas Detection Sensor
Fermion: MEMS Smoke Gas Detection Sensor employs state-of-the-art microelectromechanical system (MEMS) technology, endowing the sensor with compact dimensions, low power consumption, minimal heat generation, short preheating time, and swift response recovery. The sensor can measure smoke concentration qualitatively and is suitable for smoke alarm and other application scenarios. Kindly remove the protective film before usage. It is advisable to preheat the module for at least 24 hours. Detection range: 10-1000 ppm.
DL2408Mk04
1 x FireBeetle 2 ESP32-C6
1 x Fermion: MEMS Smoke Gas Detection Sensor
1 x Fermion: MEMS Methane CH4 Gas Detection Sensor
1 x Fermion: MEMS VOC Gas Detection Sensor
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x MicroSD 2 GB
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
VOC – 2
CH4 – 3
SMO – 4
SCK – 23
MOSI – 22
MISO – 21
CS – 18
SCL – 20
SDA – 19
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
——
DL2408Mk04p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - MEMS Smoke - Mk26 29-26 DL2408Mk04p.ino DL2408Mk04 1 x FireBeetle 2 ESP32-C6 1 x Fermion: MEMS Smoke Gas Detection Sensor 1 x Fermion: MEMS Methane CH4 Gas Detection Sensor 1 x Fermion: MEMS VOC Gas Detection Sensor 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x MicroSD 2 GB 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SD Card #include "FS.h" #include "SD.h" #include "SPI.h" // MEMS Smoke Gas int iSensorSmoke = 4; int iSensorValueSmoke = 0; int z = 0; // MEMS CH4 Gas int iSensorCH4 = 3; int iSensorValueCH4 = 0; int y = 0; // MEMS VOC Gas int iSensorVOC = 2; int iSensorValueVOC = 0; int x = 0; // MicroSD Card const int chipSelect = 18; String zzzzzz = ""; // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-26"; void loop() { // MEMS Smoke Gas isSmoke(); // MEMS CH4 Gas isCH4(); // MEMS VOC Gas isVOC(); // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4, Smoke isDisplayTH(); // MicroSD Card isSD(); // Delay 5 Second delay( 5000 ); }
getCH4.ino
// MEMS CH4 Gas // is CH4 void isCH4(){ // MEMS CH4 Gas y = analogRead( iSensorCH4 ); iSensorValueCH4 = map(y, 1, 4095, 1, 10000); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4, Smoke void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature screen.setCursor(0, 90); screen.println( "Temp: " ); screen.setCursor(60, 90); screen.println( T ); screen.setCursor(130, 90); screen.println("Celsius"); // Humidity screen.setCursor(0, 120); screen.println("Humi: "); screen.setCursor(60, 120); screen.println( H ); screen.setCursor(130, 120); screen.println("% RH"); // MEMS VOC Gas screen.setCursor(0, 150); screen.println( "VOC: " ); screen.setCursor(60, 150); screen.println( iSensorValueVOC ); screen.setCursor(130, 150); screen.println("ppm"); // MEMS CH4 Gas screen.setCursor(0, 180); screen.println( "CH4: " ); screen.setCursor(60, 180); screen.println( iSensorValueCH4 ); screen.setCursor(130, 180); screen.println("ppm"); // MEMS Smoke Gas screen.setCursor(0, 210); screen.println( "SMO: " ); screen.setCursor(60, 210); screen.println( iSensorValueSmoke ); screen.setCursor(130, 210); screen.println("ppm"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card pinMode( chipSelect , OUTPUT ); if(!SD.begin( chipSelect )){ ; return; } uint8_t cardType = SD.cardType(); // CARD NONE if(cardType == CARD_NONE){ ; return; } // SD Card Type if(cardType == CARD_MMC){ ; } else if(cardType == CARD_SD){ ; } else if(cardType == CARD_SDHC){ ; } else { ; } // Size uint64_t cardSize = SD.cardSize() / (1024 * 1024); } // MicroSD Card void isSD() { zzzzzz = ""; //DFR|EEPROM Unique ID|Version| //Temperature C|% RH|VOC|CH4|Smoke|*\r zzzzzz = "DFR|" + uid + "|" + sver + "|" + String( T ) + "|" + String( H ) + "|" + String( iSensorValueVOC ) + "|" + String( iSensorValueCH4 ) + "|" + String( iSensorValueSmoke ) + "|*\r";; // msg + 1 char msg[zzzzzz.length() + 1]; zzzzzz.toCharArray(msg, zzzzzz.length() + 1); // Append File appendFile(SD, "/dfrdata.txt", msg ); } // List Dir void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ // List Dir dirname; File root = fs.open(dirname); if(!root){ return; } if(!root.isDirectory()){ return; } File file = root.openNextFile(); while(file){ if(file.isDirectory()){ file.name(); if(levels){ listDir(fs, file.name(), levels -1); } } else { file.name(); file.size(); } file = root.openNextFile(); } } // Write File void writeFile(fs::FS &fs, const char * path, const char * message){ // Write File path; File file = fs.open(path, FILE_WRITE); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); } // Append File void appendFile(fs::FS &fs, const char * path, const char * message){ // Append File path; File file = fs.open(path, FILE_APPEND); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
getSmoke.ino
// Smoke // isSmoke void isSmoke(){ // MEMS Smoke Gas z = analogRead( iSensorSmoke ); iSensorValueSmoke = map(x, 1, 4095, 1, 1000); }
getVOC.ino
// MEMS VOC Gas // is VOC void isVOC(){ // MEMS VOC Gas x = analogRead( iSensorVOC ); iSensorValueVOC = map(x, 1, 4095, 1, 500); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Delay delay(100); // MicroSD Card isSetupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #30 – UNIHIKER – Accelerometer and Gyroscope – Mk01
——
#DonLucElectronics #DonLuc #UNIHIKER #Display #IoT #Project #Debian #Thonny #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
UNIHIKER Accelerometer and Gyroscope
The UNIHIKER’s back panel is equipped with a 6-axis accelerometer-gyroscope sensor, capable of reading the X, Y, and Z values of acceleration individually, as well as the total strength in X, Y, and Z directions, and the X, Y, and Z values of the gyroscope.
DL2408Mk03
1 x UNIHIKER
1 x USB Battery Pack
1 x USB 3.1 Cable A to C
DL2408Mk03p
DL2408Mk03p.py
""" ****** Don Luc Electronics © ****** Software Version Information Project #30 - UNIHIKER - Accelerometer and Gyroscope - Mk01 30-01 DL2408Mk03p.py DL2408Mk03 1 x UNIHIKER 1 x USB Battery Pack 1 x USB 3.1 Cable A to C -*- coding: utf-8 -*- """ # Import the unihiker library from unihiker import GUI # Import the time library import time # Import the Board module from the pinpong.board package from pinpong.board import Board # Import all modules from the pinpong.extension.unihiker package from pinpong.extension.unihiker import * # Initialize the board by selecting the board type and port number; # if not specified, the program will automatically detect it Board().begin() # Instantiate the GUI class and create a gui object gui = GUI() # Display the initial background image 'dlemk02' img = gui.draw_image(x=0, y=0, w=240, h=320, image='dlemk02.png') # Accelerometer # Display the initial Accelerometer X valueAX valueAX = gui.draw_text(x=60, y=145, text='0', font_size=10) # Display the initial Accelerometer Y valueAY valueAY = gui.draw_text(x=60, y=170, text='0', font_size=10) # Display the initial Accelerometer Z valueAZ valueAZ = gui.draw_text(x=60, y=195, text='0', font_size=10) # Gyroscope # Display the initial Gyroscope X valueGX valueGX = gui.draw_text(x=60, y=240, text='0', font_size=10) # Display the initial Gyroscope Y valueGY valueGY = gui.draw_text(x=60, y=260, text='0', font_size=10) # Display the initial Gyroscope Z valueGZ valueGZ = gui.draw_text(x=60, y=285, text='0', font_size=10) while True: # Accelerometer # Display the Accelerometer X AX = accelerometer.get_x() # Update the displayed Accelerometer X valueAX valueAX.config(text=AX) # Display the Accelerometer Y AY = accelerometer.get_y() # Update the displayed Accelerometer Y valueAY valueAY.config(text=AY) # Display the Accelerometer Z AZ = accelerometer.get_z() # Update the displayed Accelerometer Z valueAZ valueAZ.config(text=AZ) # Gyroscope # Display the Gyroscope X GX = gyroscope.get_x() # Update the displayed Gyroscope X valueAX valueGX.config(text=GX) # Display the Gyroscope Y GY = gyroscope.get_y() # Update the displayed Gyroscope Y valueAY valueGY.config(text=GY) # Display the Gyroscope Z GZ = gyroscope.get_z() # Update the displayed Gyroscope Z valueAZ valueGZ.config(text=GZ) # Delay for 1 second to keep the screen content displayed for a longer time time.sleep(1)
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – MEMS CH4 – Mk25
——
#DonLucElectronics #DonLuc #DFRobot #CH4 #VOC #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Fermion: MEMS Methane CH4 Gas Detection Sensor
Fermion: MEMS Methane CH4 Gas Detection Sensor employs state-of-the-art micro-electromechanical system (MEMS) technology, endowing the sensor with compact dimensions, low power consumption, minimal heat generation, short preheating time, and swift response recovery. The sensor can qualitatively measure methane gas concentration and is suitable for combustible gas leakage monitoring devices, gas leak detectors, fire/safety detection systems and other applications. Detection range: 1-10000 ppm. It is advisable to preheat the module for at least 24 hours.
DL2408Mk02
1 x FireBeetle 2 ESP32-C6
1 x Fermion: MEMS Methane CH4 Gas Detection Sensor
1 x Fermion: MEMS VOC Gas Detection Sensor
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x MicroSD 2 GB
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
VOC – 2
CH4 – 3
SCK – 23
MOSI – 22
MISO – 21
CS – 18
SCL – 20
SDA – 19
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
——
DL2408Mk02p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - MEMS CH4 - Mk25 29-25 DL2408Mk02p.ino DL2408Mk02 1 x FireBeetle 2 ESP32-C6 1 x Fermion: MEMS Methane CH4 Gas Detection Sensor 1 x Fermion: MEMS VOC Gas Detection Sensor 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x MicroSD 2 GB 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SD Card #include "FS.h" #include "SD.h" #include "SPI.h" // MEMS CH4 Gas int iSensorCH4 = 3; int iSensorValueCH4 = 0; int y = 0; // MEMS VOC Gas int iSensorVOC = 2; int iSensorValueVOC = 0; int x = 0; // MicroSD Card const int chipSelect = 18; String zzzzzz = ""; // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-25"; void loop() { // MEMS CH4 Gas isCH4(); // MEMS VOC Gas isVOC(); // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4 isDisplayTH(); // MicroSD Card isSD(); // Delay 5 Second delay( 5000 ); }
getCH4.ino
// MEMS CH4 Gas // is CH4 void isCH4(){ // MEMS CH4 Gas y = analogRead( iSensorCH4 ); iSensorValueCH4 = map(y, 1, 4095, 1, 10000); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity, VOC, CH4 void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature screen.setCursor(0, 90); screen.println( "Temp: " ); screen.setCursor(60, 90); screen.println( T ); screen.setCursor(130, 90); screen.println("Celsius"); // Humidity screen.setCursor(0, 120); screen.println("Humi: "); screen.setCursor(60, 120); screen.println( H ); screen.setCursor(130, 120); screen.println("% RH"); // MEMS VOC Gas screen.setCursor(0, 150); screen.println( "VOC: " ); screen.setCursor(60, 150); screen.println( iSensorValueVOC ); screen.setCursor(130, 150); screen.println("ppm"); // MEMS CH4 Gas screen.setCursor(0, 180); screen.println( "CH4: " ); screen.setCursor(60, 180); screen.println( iSensorValueCH4 ); screen.setCursor(130, 180); screen.println("ppm"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card pinMode( chipSelect , OUTPUT ); if(!SD.begin( chipSelect )){ ; return; } uint8_t cardType = SD.cardType(); // CARD NONE if(cardType == CARD_NONE){ ; return; } // SD Card Type if(cardType == CARD_MMC){ ; } else if(cardType == CARD_SD){ ; } else if(cardType == CARD_SDHC){ ; } else { ; } // Size uint64_t cardSize = SD.cardSize() / (1024 * 1024); } // MicroSD Card void isSD() { zzzzzz = ""; //DFR|EEPROM Unique ID|Version| //Temperature C|% RH|VOC|CH4|*\r zzzzzz = "DFR|" + uid + "|" + sver + "|" + String( T ) + "|" + String( H ) + "|" + String( iSensorValueVOC ) + "|" + String( iSensorValueCH4 ) + "|*\r"; // msg + 1 char msg[zzzzzz.length() + 1]; zzzzzz.toCharArray(msg, zzzzzz.length() + 1); // Append File appendFile(SD, "/dfrdata.txt", msg ); } // List Dir void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ // List Dir dirname; File root = fs.open(dirname); if(!root){ return; } if(!root.isDirectory()){ return; } File file = root.openNextFile(); while(file){ if(file.isDirectory()){ file.name(); if(levels){ listDir(fs, file.name(), levels -1); } } else { file.name(); file.size(); } file = root.openNextFile(); } } // Write File void writeFile(fs::FS &fs, const char * path, const char * message){ // Write File path; File file = fs.open(path, FILE_WRITE); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); } // Append File void appendFile(fs::FS &fs, const char * path, const char * message){ // Append File path; File file = fs.open(path, FILE_APPEND); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
getVOC.ino
// MEMS VOC Gas // is VOC void isVOC(){ // MEMS VOC Gas x = analogRead( iSensorVOC ); iSensorValueVOC = map(x, 1, 4095, 1, 500); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Delay delay(100); // MicroSD Card isSetupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot Luc.Paquin: https://edu.dfrobot.com/dashboard/makelogs
Hackster.io: https://www.hackster.io/neosteam-labs
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – MEMS VOC – Mk23
——
#DonLucElectronics #DonLuc #DFRobot #VOC #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Fermion: MEMS Volatile Organic Compounds VOC Gas Detection Sensor
Fermion: MEMS Volatile Organic Compounds VOC Gas Sensor employs state-of-the-art microelectromechanical system (MEMS) technology, endowing the sensor with compact dimensions, low power consumption, minimal heat generation, short preheating time, and swift response recovery. The sensor can qualitatively measure VOC gas concentration and is suitable for indoor air quality detection, fresh air system, air purifier and other application scenarios. Kindly remove the protective film before usage. Gas detected: ethanol, formaldehyde, toluene, etc. Detection range: 1-500 ppm. It is advisable to preheat the module for at least 24 hours.
DL2407Mk07
1 x FireBeetle 2 ESP32-C6
1 x Fermion: MEMS VOC Gas Detection Sensor
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x MicroSD 2 GB
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
VOC – 2
SCK – 23
MOSI – 22
MISO – 21
CS – 18
SCL – 20
SDA – 19
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
——
DL2407Mk07p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - MEMS VOC - Mk23 29-23 DL2407Mk07p.ino DL2407Mk07 1 x FireBeetle 2 ESP32-C6 1 x Fermion: MEMS VOC Gas Detection Sensor 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x MicroSD 2 GB 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SD Card #include "FS.h" #include "SD.h" #include "SPI.h" // MEMS VOC Gas int iSensorVOC = 2; int iSensorValueVOC = 0; int x = 0; // MicroSD Card const int chipSelect = 18; String zzzzzz = ""; // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-23"; void loop() { // MEMS VOC Gas isVOC(); // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity isDisplayTH(); // MicroSD Card isSD(); // Delay 5 Second delay( 5000 ); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature screen.setCursor(0, 90); screen.println( "Temp: " ); screen.setCursor(60, 90); screen.println( T ); screen.setCursor(125, 90); screen.println("Celsius"); // Humidity screen.setCursor(0, 120); screen.println("Humi: "); screen.setCursor(60, 120); screen.println( H ); screen.setCursor(125, 120); screen.println("% RH"); // MEMS VOC Gas screen.setCursor(0, 150); screen.println( "VOC: " ); screen.setCursor(60, 150); screen.println( iSensorValueVOC ); screen.setCursor(125, 150); screen.println("ppm"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card pinMode( chipSelect , OUTPUT ); if(!SD.begin( chipSelect )){ ; return; } uint8_t cardType = SD.cardType(); // CARD NONE if(cardType == CARD_NONE){ ; return; } // SD Card Type if(cardType == CARD_MMC){ ; } else if(cardType == CARD_SD){ ; } else if(cardType == CARD_SDHC){ ; } else { ; } // Size uint64_t cardSize = SD.cardSize() / (1024 * 1024); } // MicroSD Card void isSD() { zzzzzz = ""; //DFR|EEPROM Unique ID|Version| //Temperature C|% RH|VOC|*\r zzzzzz = "DFR|" + uid + "|" + sver + "|" + String( T ) + "|" + String( H ) + "|" + String( iSensorValueVOC ) + "|*\r"; // msg + 1 char msg[zzzzzz.length() + 1]; zzzzzz.toCharArray(msg, zzzzzz.length() + 1); // Append File appendFile(SD, "/dfrdata.txt", msg ); } // List Dir void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ // List Dir dirname; File root = fs.open(dirname); if(!root){ return; } if(!root.isDirectory()){ return; } File file = root.openNextFile(); while(file){ if(file.isDirectory()){ file.name(); if(levels){ listDir(fs, file.name(), levels -1); } } else { file.name(); file.size(); } file = root.openNextFile(); } } // Write File void writeFile(fs::FS &fs, const char * path, const char * message){ // Write File path; File file = fs.open(path, FILE_WRITE); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); } // Append File void appendFile(fs::FS &fs, const char * path, const char * message){ // Append File path; File file = fs.open(path, FILE_APPEND); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
getVOC.ino
// MEMS VOC Gas // is VOC void isVOC(){ // MEMS VOC Gas x = analogRead( iSensorVOC ); iSensorValueVOC = map(x, 1, 4095, 1, 500); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Delay delay(100); // MicroSD Card isSetupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – SD Card – Mk22
——
#DonLucElectronics #DonLuc #DFRobot #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
SD Card
Secure Digital, officially abbreviated as SD, is a proprietary, non-volatile, flash memory card format the SD Association (SDA) developed for use in portable devices. Because of their small physical dimensions, SD cards became widely used in many consumer electronic devices, such as Arduino, digital cameras, camcorders, video game consoles, mobile phones, action cameras such as the GoPro Hero series, and camera drones.
DL2407Mk06
1 x FireBeetle 2 ESP32-C6
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x MicroSD 2 GB
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
SCK – 23
MOSI – 22
MISO – 21
CS – 18
SCL – 20
SDA – 19
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
——
DL2407Mk06p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - SD Card - Mk22 29-22 DL2407Mk06p.ino DL2407Mk06 1 x FireBeetle 2 ESP32-C6 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x MicroSD 2 GB 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SD Card #include "FS.h" #include "SD.h" #include "SPI.h" // MicroSD Card const int chipSelect = 18; String zzzzzz = ""; // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-22"; void loop() { // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity isDisplayTH(); // MicroSD Card isSD(); // Delay 5 Second delay( 5000 ); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature // Text Color => red screen.setTextColor(0xf800); screen.setCursor(0, 90); screen.println( "Temperature" ); screen.setCursor(0, 120); screen.println( T ); screen.setCursor(100, 120); screen.println("Celsius"); // Humidity // Text Color => blue screen.setTextColor(0x001f); screen.setCursor(0, 150); screen.println("Humidity"); screen.setCursor(0, 180); screen.println( H ); screen.setCursor(100, 180); screen.println("% RH"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card pinMode( chipSelect , OUTPUT ); if(!SD.begin( chipSelect )){ ; return; } uint8_t cardType = SD.cardType(); // CARD NONE if(cardType == CARD_NONE){ ; return; } // SD Card Type if(cardType == CARD_MMC){ ; } else if(cardType == CARD_SD){ ; } else if(cardType == CARD_SDHC){ ; } else { ; } // Size uint64_t cardSize = SD.cardSize() / (1024 * 1024); } // MicroSD Card void isSD() { zzzzzz = ""; //DFR|EEPROM Unique ID|Version| //Temperature C|% RH|*\r zzzzzz = "DFR|" + uid + "|" + sver + "|" + String( T ) + "|" + String( H ) + "|*\r"; // msg + 1 char msg[zzzzzz.length() + 1]; zzzzzz.toCharArray(msg, zzzzzz.length() + 1); // Append File appendFile(SD, "/dfrdata.txt", msg ); } // List Dir void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ // List Dir dirname; File root = fs.open(dirname); if(!root){ return; } if(!root.isDirectory()){ return; } File file = root.openNextFile(); while(file){ if(file.isDirectory()){ file.name(); if(levels){ listDir(fs, file.name(), levels -1); } } else { file.name(); file.size(); } file = root.openNextFile(); } } // Write File void writeFile(fs::FS &fs, const char * path, const char * message){ // Write File path; File file = fs.open(path, FILE_WRITE); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); } // Append File void appendFile(fs::FS &fs, const char * path, const char * message){ // Append File path; File file = fs.open(path, FILE_APPEND); if(!file){ return; } if(file.print(message)){ ; } else { ; } file.close(); }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Delay delay(100); // MicroSD Card isSetupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – SHTC3 – Mk21
——
#DonLucElectronics #DonLuc #DFRobot #SHTC3 #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Fermion: SHTC3 Temperature and Humidity Sensor
The SHTC3 digital humidity sensor from Sensirion builds on the success of the proven SHTC1 sensor and offers consistent high accuracy within the measuring range. The sensor covers a humidity measurement range of 0 to 100% RH and a temperature detection range of -40 Celsius to 125 Celsius with a typical accuracy of ±2% RH and ±0.2 Celsius. The board supply voltage of 3.3 Volt to 5 Volt and a current consumption below 0.15mA in low power mode make the SHTC3 perfectly suitable for mobile or wireless battery-driven applications.
DL2407Mk05
1 x FireBeetle 2 ESP32-C6
1 x Fermion: SHTC3 Temperature and Humidity Sensor
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
SCL – 20
SDA – 19
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
——
DL2407Mk05p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - SHTC3 - Mk21 29-21 DL2407Mk05p.ino DL2407Mk05 1 x FireBeetle 2 ESP32-C6 1 x Fermion: SHTC3 Temperature and Humidity Sensor 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Arduino #include <Arduino.h> // Wire #include <Wire.h> // SHTC3 Temperature and Humidity Sensor #include "SHTSensor.h" // SHTC3 Temperature and Humidity Sensor SHTSensor sht; // Temperature float T; // Humidity float H; // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-21"; void loop() { // SHTC3 Temperature and Humidity Sensor isSHTC3(); // DFRobot Display 240x320 - Temperature and Humidity isDisplayTH(); // Delay 5 Second delay( 5000 ); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - Temperature and Humidity void isDisplayTH() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => black screen.fillScreen(0x0000); // Text Color => white screen.setTextColor(0xffff); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // Don Luc Electronics screen.setCursor(0, 30); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 60); screen.println( sver ); // Temperature // Text Color => red screen.setTextColor(0xf800); screen.setCursor(0, 90); screen.println( "Temperature" ); screen.setCursor(0, 120); screen.println( T ); screen.setCursor(100, 120); screen.println("Celsius"); // Humidity // Text Color => blue screen.setTextColor(0x001f); screen.setCursor(0, 150); screen.println("Humidity"); screen.setCursor(0, 180); screen.println( H ); screen.setCursor(100, 180); screen.println("% RH"); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
getSHTC3.ino
// SHTC3 Temperature and Humidity Sensor // SHTC3 void isSHTC3(){ // SHTC3 Temperature and Humidity Sensor if (sht.readSample()) { // Temperature T = sht.getTemperature(); // Humidity H = sht.getHumidity(); } }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Wire Wire.begin(); // Delay delay( 100 ); // SHTC3 Temperature and Humidity Sensor sht.init(); // SHT3x sht.setAccuracy(SHTSensor::SHT_ACCURACY_MEDIUM); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #29 – DFRobot – ESP32-C6 and LCD Display – Mk20
——
#DonLucElectronics #DonLuc #DFRobot #FireBeetle2ESP32C6 #Display #EEPROM #ESP32 #IoT #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
FireBeetle 2 ESP32-C6
The FireBeetle 2 ESP32-C6 is a versatile low-power IoT controller board designed for Smart Home Automation, control and monitoring system. It features a 160MHz RISC-V 32-bit processor, providing excellent energy efficiency and flexibility for Internet of Things (IoT) projects. The board supports multiple communication protocols, including Wi-Fi 6, Bluetooth 5, Zigbee 3.0, and Thread 1.3, enabling versatile wireless connectivity.
Fermion: 2.0″ 320×240 IPS TFT LCD
This 2.0 inches LCD display adopts ST7789V driver chip and has 320 x 240 color pixels, performing excellently in the angle of view. It supports SPI communication mode and GDI port, plug, and play. The module can be powered by 3.3 Volt ~ 5 Volt, compatible with multiple main-controllers like Arduino UNO, Leonardo, ESP32, ESP8266, FireBeetle M0, and so on. Besides, there is an onboard MicroSD card slot for displaying more pictures.
DL2407Mk04
1 x FireBeetle 2 ESP32-C6
1 x Fermion: 2.0″ 320×240 IPS TFT LCD
1 x GDL Line 10 CM
1 x 1 x Lithium Ion Battery – 1000mAh
1 x USB 3.1 Cable A to C
FireBeetle 2 ESP32-C6
DC – 8
CS – 1
RST – 14
VIN – +3.3V
GND – GND
DL2407Mk04p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #29 - DFRobot - ESP32-C6 and LCD Display - Mk20 29-20 DL2407Mk04p.ino DL2407Mk04 1 x FireBeetle 2 ESP32-C6 1 x Fermion: 2.0" 320x240 IPS TFT LCD 1 x GDL Line 10 CM 1 x 1 x Lithium Ion Battery - 1000mAh 1 x USB 3.1 Cable A to C */ // Include the Library Code // EEPROM Library to Read and Write EEPROM // with Unique ID for Unit #include "EEPROM.h" // DFRobot Display GDL API #include <DFRobot_GDL.h> // Defined ESP32 #define TFT_DC 8 #define TFT_CS 1 #define TFT_RST 14 /*dc=*/ /*cs=*/ /*rst=*/ // DFRobot Display 240x320 DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST); // VID int VID = 0; String zzzzzz = ""; // LED Green int iLEDGreen = 15; // EEPROM Unique ID Information #define EEPROM_SIZE 64 String uid = ""; // Software Version Information String sver = "29-20"; void loop() { // VID VID = VID + 1; // DFRobot Display 240x320 - VID isDisplayVID(); // Delay 5 Second delay( 5000 ); }
getDisplay.ino
// DFRobot Display 240x320 // DFRobot Display 240x320 - UID void isDisplayUID() { // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => ghostwhite screen.fillScreen(0xf7bf); // Text Color => black screen.setTextColor(0x0000); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println("Version"); screen.setCursor(0, 120); screen.println( sver ); // EEPROM screen.setCursor(0, 150); screen.println("EEPROM"); screen.setCursor(0, 180); screen.println( uid ); } // DFRobot Display 240x320 - VID void isDisplayVID() { // zzzzzz = VID zzzzzz = String(VID); // DFRobot Display 240x320 // Text Display // Text Wrap screen.setTextWrap(false); // Rotation screen.setRotation(3); // Fill Screen => ghostwhite screen.fillScreen(0xf7bf); // Text Color => black screen.setTextColor(0x0000); // Font => Free Mono 9pt screen.setFont(&FreeMono9pt7b); // TextSize => 1.5 screen.setTextSize(1.5); // DFRobot Display screen.setCursor(0, 30); screen.println("DFRobot Display"); // Don Luc Electronics screen.setCursor(0, 60); screen.println("Don Luc Electronics"); // Version screen.setCursor(0, 90); screen.println( sver ); // EEPROM screen.setCursor(0, 120); screen.println( uid ); // Text Color => red screen.setTextColor(0xf800); // VID screen.setCursor(0, 150); screen.println("VID"); screen.setCursor(0, 180); screen.println( zzzzzz ); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 7; x++) { uid = uid + char(EEPROM.read(x)); } }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // EEPROM Size EEPROM.begin(EEPROM_SIZE); // EEPROM Unique ID isUID(); // Delay delay( 100 ); // Delay delay( 100 ); // DFRobot Display 240x320 screen.begin(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // DFRobot Display 240x320 - UID // Don Luc Electronics // Version // EEPROM isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Teacher, Instructor, E-Mentor, R&D and Consulting
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Automation
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- Artificial Intelligence (AI)
- RTOS
- Sensors, eHealth Sensors, Biosensor, and Biometric
- Research & Development (R & D)
- Consulting
Follow Us
Luc Paquin – Curriculum Vitae – 2024
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc