#15 – Environment
Project #15: Environment – Serial Camera – Mk29
——
#DonLucElectronics #DonLuc #Arduino #Camera #SD #RTC #EEPROM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail – Serial Camera
The Crowtail Serial Camera is a JPEG color camera module easy for PC and MCU use. It has integrated image processing DSP to generate 320 x 240 or 640 x 480 JPEG images without thumbnail information, captured pictures will be stored in the internal buffer and transferred via UART port. The UART Can be configured to TTL or CMOS by hardware.
- -Crowtail interface
- -Default baud rate of the serial port is 38400
- -640 x 480 or 320 x 240 resolution
- -JPEG compressed image without Thumbnail Information
- -5 Volt power supply
DL2503Mk02
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – Serial Camera
1 x Crowtail – Button 2.0
1 x MicroSD Card 4 Gb
1 x Crowtail – RTC 2.0
1 x CR1220 Battery
1 x Crowtail – LED(Green)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
SCK – 12
MISO – 11
MOSI – 10
CS – 4
BUT – 9
LEDG – 6
VIN – +5V
GND – GND
DL2503Mk02p
DL2503Mk02p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – Serial Camera – Mk29 DL2503Mk02p.ino DL2503Mk02 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - Serial Camera 1 x Crowtail - Button 2.0 1 x MicroSD Card 4 Gb 1 x Crowtail - RTC 2.0 1 x CR1220 Battery 1 x Crowtail - LED(Green) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // RTC (Real-Time Clock) #include "RTClib.h" // Secure Digital (SD Card) #include <SD.h> #include <SPI.h> // Serial Camera #include <Adafruit_VC0706.h> // Software Serial #include <SoftwareSerial.h> // Camera TX connected to pin 2 // Camera RX to pin 3: SoftwareSerial cameraconnection = SoftwareSerial(2, 3); // Serial Camera Adafruit_VC0706 cam = Adafruit_VC0706(&cameraconnection); // Create an image with the name DLEPxxx.JPG char filename[13]; // Secure Digital (SD Card) const int chipSelect = 4; String zzzzzz = ""; // Button int iButton = 9; // Variable for reading the Button status int iButtonState = 0; // RTC (Real-Time Clock) RTC_DS1307 RTC; String dateRTC = ""; String timeRTC = ""; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-29"; void loop() { // RTC (Real-Time Clock) isRTC(); // Display RTC isDisplayRTC(); // Read the state of the Switch value iButtonState = digitalRead(iButton); // The Button is HIGH: if (iButtonState == HIGH) { // LED Green HIGH digitalWrite(iLEDGreen, HIGH); // Camera isCamera(); // MicroSD Card isSD(); // LED Green LOW digitalWrite(iLEDGreen, LOW); } else { // LED Green LOW digitalWrite(iLEDGreen, LOW); } // Delay delay( 500 ); }
getCamera.ino
// Camera // Setup Camera void isSetupCamera(){ // Setup Camera cam.begin(); // Biggest cam.setImageSize(VC0706_640x480); } // is Camera void isCamera(){ // Camera Snap cam.takePicture(); // File Name strcpy(filename, "DLEP000.JPG"); for (int i = 0; i < 1000; i++) { filename[4] = '0' + i/10; filename[5] = '0' + i/10; filename[6] = '0' + i%10; // create if does not exist, do not open existing, write, sync after write if (! SD.exists(filename)) { break; } } // Open the file for writing File imgFile = SD.open(filename, FILE_WRITE); // Get the size of the image (frame) taken uint16_t jpglen = cam.frameLength(); // Time int32_t time = millis(); pinMode(8, OUTPUT); // Read all the data up to # bytes! byte wCount = 0; // For counting # of writes while (jpglen > 0) { // read 32 bytes at a time; uint8_t *buffer; uint8_t bytesToRead = min(32, jpglen); // change 32 to 64 for a speedup but may not work with all setups! buffer = cam.readPicture(bytesToRead); imgFile.write(buffer, bytesToRead); if(++wCount >= 64) { // Every 2K, give a little feedback so it doesn't appear locked up //Serial.print('.'); wCount = 0; } //Serial.print("Read "); Serial.print(bytesToRead, DEC); Serial.println(" bytes"); jpglen -= bytesToRead; } // Close imgFile.close(); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID // Display UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // Display RTC void isDisplayRTC(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print( dateRTC ); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print( timeRTC ); }
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)); } }
getRTC.ino
// RTC (Real-Time Clock) // Setup RTC void isSetupRTC(){ // RTC (Real-Time Clock) RTC.begin(); // RTC Running if (! RTC.isrunning()) { // following line sets the RTC to the date & time //this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0)) } } // RTC (Real-Time Clock) void isRTC(){ // RTC (Real-Time Clock) DateTime now = RTC.now(); // Date dateRTC = now.year(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.month(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.day(), DEC; // Time timeRTC = now.hour(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.minute(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.second(), DEC; }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card // See if the card is present and can be initialized: if (!SD.begin(chipSelect)) { // Don't do anything more: while (1); } } // MicroSD Card void isSD() { zzzzzz = ""; //DLE|EEPROM Unique ID|Version|Date|Time|filename| zzzzzz = "DLE|" + uid + "|" + sver + "|" + String( dateRTC ) + "|" + String( timeRTC ) + "|" + filename + "|"; // Open the file. Note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("dledata.txt", FILE_WRITE); // If the file is available, write to it: if (dataFile) { // Write dataFile.println( zzzzzz ); dataFile.close(); } }
setup.ino
// Setup void setup() { // Delay delay(100); // isUID EEPROM Unique ID isUID(); // Delay delay(100); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // LED Green digitalWrite(iLEDGreen, LOW); // Delay delay(100); // Setup RTC isSetupRTC(); // Delay delay(100); // MicroSD Card isSetupSD(); // Delay delay(100); // Button pinMode(iButton,INPUT); // Delay delay( 100 ); // Setup Camera isSetupCamera(); // Delay delay( 100 ); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
Hackster: https://www.hackster.io/luc-paquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – SD – Mk28
——
#DonLucElectronics #DonLuc #Arduino #SD #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowduino Uno – SD – SD Cards
There is a SD card slot on the Crowduino Uno – SD – 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.
DL2502Mk06
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – LED(Red)
1 x Crowtail – Button 2.0
1 x MicroSD Card 4 Gb
1 x Crowtail – RTC 2.0
1 x CR1220 Battery
1 x Crowtail – Temperature and Humidity Sensor 2.0
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
SCK – 12
MISO – 11
MOSI – 10
CS – 4
BUT – 9
LEDR – 8
LEDY – 7
LEDG – 6
ITH – 5
VIN – +5V
GND – GND
DL2502Mk06p
DL2502Mk06p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – SD – Mk28 DL2502Mk06p.ino DL2502Mk06 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - LED(Red) 1 x Crowtail - Button 2.0 1 x MicroSD Card 4 Gb 1 x Crowtail - RTC 2.0 1 x CR1220 Battery 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // RTC (Real-Time Clock) #include "RTClib.h" // Secure Digital (SD Card) #include <SD.h> #include <SPI.h> // Secure Digital (SD Card) const int chipSelect = 4; String zzzzzz = ""; // Define LED Red int iLED = 8; // Button int iButton = 9; // Variable for reading the Button status int iButtonState = 0; // RTC (Real-Time Clock) RTC_DS1307 RTC; String dateRTC = ""; String timeRTC = ""; // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-28"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // RTC (Real-Time Clock) isRTC(); // Read the state of the Switch value iButtonState = digitalRead(iButton); // The Button is HIGH: if (iButtonState == HIGH) { // LED Red HIGH digitalWrite(iLED, HIGH); // MicroSD Card isSD(); } else { // LED Red LOW digitalWrite(iLED, LOW); } // Delay 0.5 Second delay( 500 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); }
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)); } }
getRTC.ino
// RTC (Real-Time Clock) // Setup RTC void isSetupRTC(){ // RTC (Real-Time Clock) RTC.begin(); // RTC Running if (! RTC.isrunning()) { // following line sets the RTC to the date & time //this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0)) } } // RTC (Real-Time Clock) void isRTC(){ // RTC (Real-Time Clock) DateTime now = RTC.now(); // Date dateRTC = now.year(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.month(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.day(), DEC; // Time timeRTC = now.hour(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.minute(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.second(), DEC; }
getSD.ino
// MicroSD Card // MicroSD Setup void isSetupSD() { // MicroSD Card // See if the card is present and can be initialized: if (!SD.begin(chipSelect)) { // Don't do anything more: while (1); } } // MicroSD Card void isSD() { zzzzzz = ""; //DLE|EEPROM Unique ID|Version|Date|Time| //Temperature|Humidity|Soil Moisture| zzzzzz = "DLE|" + uid + "|" + sver + "|" + String( dateRTC ) + "|" + String( timeRTC ) + "|" + String(t) + "|" + String(h) + "|" + String(iSoilMoistureVal) + "|"; // Open the file. Note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("dledata.txt", FILE_WRITE); // If the file is available, write to it: if (dataFile) { // Write dataFile.println( zzzzzz ); dataFile.close(); } }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
getTH.ino
// Temperature and Humidity Sensor void isTH(){ // Temperature t = dht.readTemperature(); // Humidity h = dht.readHumidity(); }
setup.ino
// Setup void setup() { // Delay delay(100); // isUID EEPROM Unique ID isUID(); // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Temperature and Humidity Sensor dht.begin(); // Delay delay(100); // Setup RTC isSetupRTC(); // Delay delay(100); // MicroSD Card isSetupSD(); // Delay delay(100); // iLED Red pinMode(iLED, OUTPUT); // LED Red LOW digitalWrite(iLED, LOW); // Delay delay( 100 ); // Button pinMode(iButton,INPUT); // Delay delay( 100 ); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – GPS – Mk27
——
#DonLucElectronics #DonLuc #Arduino #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail – GPS
This Crowtail – GPS module is a cost-efficient and field-programmable gadget armed with a NEO-6M-0-001 and serial communication configuration. It features 55 channels, and a GPS L1 C/A code receiver. The sensitivity of tracking and acquisition both reach up to -161dBm, making it a great choice for personal navigation projects and location services, as well as an outstanding one among products of the same price class.
- -Input Voltage: 5 Volt
- -Supports NMEA and U-Blox Binary
- -Low power consumption
- -Baud rates configurable
DL2502Mk04
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – GPS
1 x Crowtail – RTC 2.0
1 x Crowtail – Temperature and Humidity Sensor 2.0
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
LEDY – 7
LEDG – 6
ITH – 5
GPR – 2
GPT – 3
VIN – +5V
GND – GND
DL2502Mk04p
DL2502Mk04p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – GPS – Mk27 DL2502Mk04p.ino DL2502Mk04 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - GPS 1 x Crowtail - RTC 2.0 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // RTC (Real-Time Clock) #include "RTClib.h" // GPS Receiver #include <TinyGPS++.h> // Software Serial #include <SoftwareSerial.h> // GPS Receiver static const int RXPin = 2; // This one is unused and doesnt have a conection static const int TXPin = 3; // GPS Baud static const uint32_t GPSBaud = 9600; // The TinyGPS++ object TinyGPSPlus gps; // The serial connection to the GPS device SoftwareSerial ss(RXPin, TXPin); // Latitude float TargetLat; // Longitude float TargetLon; // GPS Status String GPSSt = ""; // RTC (Real-Time Clock) RTC_DS1307 RTC; String dateRTC = ""; String timeRTC = ""; // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-27"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // RTC (Real-Time Clock) isRTC(); // isGPS isGPS(); // Delay 2 Second delay( 2000 ); // Display Temperature and Humidity isDisplayTH(); // Delay 2 Second delay( 2000 ); // Display EEPROM isDisplayEEPROM(); // Delay 2 Second delay( 2000 ); // Display RTC isDisplayRTC(); // Delay 2 Second delay( 2000 ); // GPS Vector Pointer Target isDisplayInfo(); // Delay 2 Second delay( 2000 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // Display Temperature and Humidity void isDisplayTH(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print("H: "); lcd.print(h); lcd.print(" %"); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print("T: "); lcd.print(t); lcd.print(" *C"); } // Display EEPROM void isDisplayEEPROM(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print("EEPROM"); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print( uid ); } // Display RTC void isDisplayRTC(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print( dateRTC ); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print( timeRTC ); } // GPS Vector Pointer Target void isDisplayInfo(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print( "Lat: " ); lcd.print( TargetLat ); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print( "Lon: " ); lcd.print( TargetLon ); }
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)); } }
getGPS.ino
// GPS Receiver // isGPS void isGPS(){ // Receives NEMA data from GPS receiver // This sketch displays information every time a //new sentence is correctly encoded while ( ss.available() > 0) { // Read if ( gps.encode( ss.read() )) { // GPS Vector Pointer Target displayInfo(); } } if (millis() > 5000 && gps.charsProcessed() < 10) { while(true); } } // GPS Vector Pointer Target void displayInfo(){ // Location if (gps.location.isValid()) { // Latitude TargetLat = gps.location.lat(); // Longitude TargetLon = gps.location.lng(); // GPS Status 2 GPSSt = "Yes"; } else { // GPS Status 0 GPSSt = "No"; } }
getRTC.ino
// RTC (Real-Time Clock) // Setup RTC void isSetupRTC(){ // RTC (Real-Time Clock) RTC.begin(); // RTC Running if (! RTC.isrunning()) { // following line sets the RTC to the date & time //this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0)) } } // RTC (Real-Time Clock) void isRTC(){ // RTC (Real-Time Clock) DateTime now = RTC.now(); // Date dateRTC = now.year(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.month(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.day(), DEC; // Time timeRTC = now.hour(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.minute(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.second(), DEC; }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
getTH.ino
// Temperature and Humidity Sensor void isTH(){ // Temperature t = dht.readTemperature(); // Humidity h = dht.readHumidity(); }
setup.ino
// Setup void setup() { // Delay delay(100); // isUID EEPROM Unique ID isUID(); // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Temperature and Humidity Sensor dht.begin(); // Delay delay(100); // Setup RTC isSetupRTC(); // Delay delay(100); // GPS Receiver // Setup GPS ss.begin(GPSBaud); // Delay delay(100); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – RTC – Mk26
——
#DonLucElectronics #DonLuc #Arduino #RTC #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail – RTC 2.0
If you want to make your own electronic watch a RTC module is necessary to generate you the right time, with very low power consumption. This tiny RTC module is based on the clock chip DS1307 which communicates with microcontrollers with I2C protocol. The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. This module is really low power consumption, it can serves you more than a month with a CR1220 battery.
DL2502Mk02
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – RTC 2.0
1 x Crowtail – Temperature and Humidity Sensor 2.0
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
LEDY – 7
LEDG – 6
ITH – 5
VIN – +5V
GND – GND
DL2502Mk02p
DL2502Mk02p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – RTC – Mk26 DL2502Mk02p.ino DL2502Mk02 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - RTC 2.0 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // RTC (Real-Time Clock) #include "RTClib.h" // RTC (Real-Time Clock) RTC_DS1307 RTC; String dateRTC = ""; String timeRTC = ""; // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-26"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // RTC (Real-Time Clock) isRTC(); // Delay 2 Second delay( 2000 ); // Display Temperature and Humidity isDisplayTH(); // Delay 2 Second delay( 2000 ); // Display EEPROM isDisplayEEPROM(); // Delay 2 Second delay( 2000 ); // Display RTC isDisplayRTC(); // Delay 2 Second delay( 2000 ); }
getDisplay.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – RTC – Mk26 DL2502Mk02p.ino DL2502Mk02 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - RTC 2.0 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // RTC (Real-Time Clock) #include "RTClib.h" // RTC (Real-Time Clock) RTC_DS1307 RTC; String dateRTC = ""; String timeRTC = ""; // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-26"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // RTC (Real-Time Clock) isRTC(); // Delay 2 Second delay( 2000 ); // Display Temperature and Humidity isDisplayTH(); // Delay 2 Second delay( 2000 ); // Display EEPROM isDisplayEEPROM(); // Delay 2 Second delay( 2000 ); // Display RTC isDisplayRTC(); // Delay 2 Second delay( 2000 ); }
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)); } }
getRTC.ino
// RTC (Real-Time Clock) // Setup RTC void isSetupRTC(){ // RTC (Real-Time Clock) RTC.begin(); // RTC Running if (! RTC.isrunning()) { // following line sets the RTC to the date & time //this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // RTC.adjust(DateTime(2014, 1, 21, 3, 0, 0)) } } // RTC (Real-Time Clock) void isRTC(){ // RTC (Real-Time Clock) DateTime now = RTC.now(); // Date dateRTC = now.year(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.month(), DEC; dateRTC = dateRTC + "/"; dateRTC = dateRTC + now.day(), DEC; // Time timeRTC = now.hour(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.minute(), DEC; timeRTC = timeRTC + ":"; timeRTC = timeRTC + now.second(), DEC; }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
getTH.ino
// Temperature and Humidity Sensor void isTH(){ // Temperature t = dht.readTemperature(); // Humidity h = dht.readHumidity(); }
setup.ino
// Setup void setup() { // Delay delay(100); // isUID EEPROM Unique ID isUID(); // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Temperature and Humidity Sensor dht.begin(); // Delay delay(100); // Setup RTC isSetupRTC(); // Delay delay(100); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – EEPROM – Mk25
——
#DonLucElectronics #DonLuc #Arduino #EEPROM #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
EEPROM
EEPROM (Electrically Erasable Programmable Read-only Memory) is a type of non-volatile memory. EEPROM is a type of non-volatile ROM that enables individual bytes of data to be erased and reprogrammed. That is why EEPROM chips are known as byte erasable chips. EEPROM is usually used to store small amounts of data in computing and other electronic devices. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip device, to store relatively small amounts of data by allowing individual bytes to be erased and reprogrammed.
DL2501Mk08
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – Temperature and Humidity Sensor 2.0
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
LEDY – 7
LEDG – 6
ITH – 5
VIN – +5V
GND – GND
DLE-EEPROM-UID-UnoMk001
DLE-EEPROM-UID-UnoMk001.ino
/* ***** Don Luc Electronics © ****** Software Version Information DLE-EEPROM-UID-UnoMk001 Arduino UNO 5V ver: UnoMk001 EEPROM with unique ID */ // Include Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Software Version Information String sver = "UnoMk001"; // Unit ID information String uid = "DLEU001"; // Read Unique ID // String ruid = ""; void loop() { // <== Write and Read EEPROM isEEPROMw(); }
getEEPROM.ino
// getEEPROM // Write and Read EEPROM with Unique ID for Unit void isEEPROMw() { // Write EEPROM with Unique ID for Unit int incb = 0; int v = 0; String emp = ""; String ruid = ""; // Set Unit ID // The message starts with uid then is followed by 7 characters // First clear a string buffer emp = ""; // Loop through the 7 ID characters and write their ASCII (byte) value to the EEPROM for (int y = 0; y < 7; y++) { // Get ASCII value of character v = int(uid.charAt(y)); // + 5)); // Add the actual character to the buffer emp = emp + uid.charAt(y + 5); // Write the value to the EEPROM EEPROM.write(y, v); } // Write EEPROM with Unique ID for Unit Serial.println( "Write ID Information"); // Read ID Information // Unit ID for (int y = 0; y < 7; y++) { ruid = ruid + char(EEPROM.read(y)); } // Read ID Information Serial.print( "Read ID Information: "); Serial.println( ruid ); Serial.println( "Ok!" ); ruid = ""; delay( 5000 ); }
setup.ino
// Setup void setup() { // Open the serial port at 9600 bps: Serial.begin(9600); // Serial Serial.print( "Software Version Information: "); Serial.println( sver ); Serial.print( "Unit ID Information: "); Serial.println( uid ); delay(5000); }
DL2501Mk08p
DL2501Mk08p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – EEPROM – Mk25 DL2501Mk08p.ino DL2501Mk08 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // EEPROM library to read and write EEPROM with unique ID for unit #include <EEPROM.h> // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // EEPROM Unique ID Information String uid = ""; // Software Version Information String sver = "15-25"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // Delay 2 Second delay( 2000 ); // Display Temperature and Humidity isDisplayTH(); // Delay 2 Second delay( 2000 ); // Display EEPROM isDisplayEEPROM(); // Delay 2 Second delay( 2000 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // Display Temperature and Humidity void isDisplayTH(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print("H: "); lcd.print(h); lcd.print(" %"); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print("T: "); lcd.print(t); lcd.print(" *C"); } // Display EEPROM void isDisplayEEPROM(){ // Clear lcd.clear(); // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print("EEPROM"); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print( uid ); }
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)); } }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
getTH.ino
// Temperature and Humidity Sensor void isTH(){ // Temperature t = dht.readTemperature(); // Humidity h = dht.readHumidity(); }
setup.ino
// Setup void setup() { // Delay delay(100); // isUID EEPROM Unique ID isUID(); // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Temperature and Humidity Sensor dht.begin(); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – DHT11 – Mk24
——
#DonLucElectronics #DonLuc #Arduino #DHT11 #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail – Temperature and Humidity Sensor 2.0
This module can help you detect the temperature and humidity of the environment of your house. The module contains a DHT11 Temperature and Humidity sensor that is a complex sensor with a calibrated digital signal out. It uses digital module acquisition technology and the temperature & humidity sensor technology. The sensor consists of a resistance-type moisture element and an NTC temperature measuring element. Because of the single-wire serial interface, it is easy to use the module.
- -Work Voltage: 3.3 Volt ~ 5 Volt
- -Measuring Range: Humidity: 20% – 90% RH
- -Measuring Range: Temperature: 0 ~ 50 °C
- -Signal Collecting Period: 2S
- -Accuracy: Humidity: ±5% RH
- -Accuracy: Temperature: ±2°C
DL2501Mk06
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – Temperature and Humidity Sensor 2.0
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
LEDY – 7
LEDG – 6
ITH – 5
VIN – +5V
GND – GND
DL2501Mk06p
DL2501Mk06p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – DHT11 – Mk24 DL2501Mk06p.ino DL2501Mk06 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - Temperature and Humidity Sensor 2.0 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Temperature and Humidity Sensor #include "DHT.h" // Temperature and Humidity Sensor #define DHTPIN 5 // DHT 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Temperature and Humidity Sensor float h = 0; float t = 0; // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // Software Version Information String sver = "15-24"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Temperature and Humidity Sensor isTH(); // Delay 2 Second delay( 2000 ); // Display Temperature and Humidity isDisplayTH(); // Delay 2 Second delay( 2000 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // Display Temperature and Humidity void isDisplayTH(){ // Set the cursor to column 0, line 0 lcd.setCursor(0, 0); lcd.print("H: "); lcd.print(h); lcd.print(" %"); // Set the cursor to column 0, line 1 lcd.setCursor(0, 1); lcd.print("T: "); lcd.print(t); lcd.print(" *C"); }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
getTH.ino
// Temperature and Humidity Sensor void isTH(){ // Temperature t = dht.readTemperature(); // Humidity h = dht.readHumidity(); }
setup.ino
// Setup void setup() { // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Temperature and Humidity Sensor dht.begin(); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – Crowtail Rotary Angle Sensor – Mk23
——
#DonLucElectronics #DonLuc #Arduino #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail – Rotary Angle Sensor 2.0
This rotary angle sensor may also be known as potentiometer that produces analog output between 0 and 3.3-5 Volt. The angular range is 300 degrees with a linear change in value. The resistance value is 10k ohms, perfect for Arduino use. Some applications like smart light control, volume control, only you can not think of things, no impossible things.
DL2501Mk04
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – Rotary Angle Sensor 2.0
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
POT – A1
ASM – A0
LEDY – 7
LEDG – 6
VIN – +5V
GND – GND
DL2501Mk04p
DL2501Mk04p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – Crowtail Rotary Angle Sensor – Mk23 DL2501Mk04p.ino DL2501Mk04 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - Rotary Angle Sensor 2.0 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Potentiometer int iPotentiometer = A1; // Change Your Threshold Here int Threshold = 0; int zz = 0; // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // Software Version Information String sver = "15-23"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Delay 1 Second delay( 1000 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold => 200~500 zz = analogRead( iPotentiometer ); Threshold = map( zz, 0, 1024, 200, 500); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
setup.ino
// Setup void setup() { // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Project #15: Environment – Crowtail Moisture Sensor – Mk22
——
#DonLucElectronics #DonLuc #Arduino #ASM #Display #Elecrow #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Crowtail Moisture Sensor 2.0
This Moisture Sensor can be used to detect the moisture of soil and thus to monitor if the plants in your garden need some water. This sensor uses the two probes to pass current through the soil, and then it reads then resistance to get the moisture level. More water makes the soil conduct electricity more easily (less resistance), while dry soil conducts electricity poorly (more resistance). Compares to the other moistures sensor using the same moisture test method, this module has super long legs, making it suitable for actual applications. This Moisture Sensor can be used to detect the moisture of soil or your pet plant’s water level, let the plants in your garden reach out for human help.
Crowtail – I2C LCD
A new crowtail for LCD1602, it contains LCD1602 and MCP23008 module. Unique interface for crowtail. Provide convenience to work with a LCD.
DL2501Mk02
1 x Crowduino Uno – SD
1 x Crowtail – Base Shield
1 x Crowtail – Moisture Sensor 2.0
1 x Crowtail – I2C LCD
1 x Crowtail – LED(Green)
1 x Crowtail – LED(Yellow)
1 x USB Battery Pack
1 x USB Mini-B Cable
Crowduino Uno – SD
SCL – A5
SDA – A4
ASM – A0
LEDY – 7
LEDG – 6
VIN – +5V
GND – GND
DL2501Mk02p
DL2501Mk02p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – Crowtail Moisture Sensor – Mk22 15-22 DL2501Mk02p.ino DL2501Mk02 1 x Crowduino Uno - SD 1 x Crowtail - Base Shield 1 x Crowtail - Moisture Sensor 2.0 1 x Crowtail - I2C LCD 1 x Crowtail - LED(Green) 1 x Crowtail - LED(Yellow) 1 x USB Battery Pack 1 x USB Mini-B Cable */ // Include the Library Code // Wire #include <Wire.h> // Liquid Crystal #include "LiquidCrystal.h" // Liquid Crystal // Connect via i2c LiquidCrystal lcd(0); // Crowtail Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; // Change Your Threshold Here int Threshold = 300; // LED Yellow int iLEDYellow = 7; // LED Green int iLEDGreen = 6; // Software Version Information String sver = "15-22"; void loop() { // Crowtail Moisture Sensor isSoilMoisture(); // Delay 1 Second delay( 1000 ); }
getDisplay.ino
// getDisplay // Crowbits - OLED 128X64 UID void isDisplayUID(){ // Set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. // Cursor lcd.setCursor(0, 0); lcd.print("Don Luc Electron"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD. lcd.print( sver ); } // isDisplay Green void isDisplayG(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Humid Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); } // isDisplay Yellow void isDisplayY(){ // Print a message to the LCD // Clear lcd.clear(); // Cursor lcd.setCursor(0, 0); lcd.print("Dry Soil"); // Cursor lcd.setCursor(0, 1); // Print a message to the LCD lcd.print( iSoilMoistureVal ); }
getSoilMoisture.ino
// Crowtail Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 // iSoilMoistureVal => 0~700 Soil Moisture iSoilMoistureVal = analogRead( iSoilMoisture ); // Threshold if (iSoilMoistureVal > Threshold) { // 300~700 - Humid Soil // LED Yellow digitalWrite(iLEDYellow, LOW); // Display Green isDisplayG(); // LED Green digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LED Green digitalWrite(iLEDGreen, LOW); // Display Yellow isDisplayY(); digitalWrite(iLEDYellow, HIGH); } }
setup.ino
void setup() { // Delay delay(100); // Initialize the LED iLED Yellow pinMode(iLEDYellow, OUTPUT); // Initialize the LED LED Green pinMode(iLEDGreen, OUTPUT); // Display UID isDisplayUID(); // Delay 5 Second delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – Soil Moisture Sensor – Mk20
——
#DonLucElectronics #DonLuc #Arduino #ASM #Project #Patreon #Electronics #Microcontrollers #IoT #Fritzing #Programming #Consultant
——
——
——
——
Soil Moisture Sensor
Soil moisture is the critical parameter in agriculture. If there is a shortage or overabundance of water, plants may die. At the same time, this data depends on many external factors, primarily weather conditions and climate changes. That is why it is so vital to understand the most effective methods for analyzing soil moisture content.
This term refers to the entire quantity of water in the ground’s pores or on its surface. The moisture content of soil depends on such factors as weather, type of land, and plants. The parameter is vital in monitoring soil moisture activities, predicting natural disasters, managing water supply, etc. This data may signal a future flood or water deficit ahead of other indicators.
DL2411Mk03
1 x SparkFun RedBoard Qwiic
1 x Gravity: Analog Soil Moisture Sensor
2 x LED
1 x ProtoScrewShield
1 x USB Battery Pack
1 x USB Micro-B Cable
SparkFun RedBoard Qwiic
ASM – A0
LEDP- 13
LEDG- 12
VIN – +5V
GND – GND
DL2411Mk03p
DL2411Mk03p.ino
/****** Don Luc Electronics © ****** Software Version Information Project #15: Environment – Soil Moisture Sensor – Mk20 15-20 DL2411Mk03p.ino DL2411Mk03 1 x SparkFun RedBoard Qwiic 1 x Gravity: Analog Soil Moisture Sensor 2 x LED 1 x ProtoScrewShield 1 x USB Battery Pack 1 x USB Micro-B Cable */ // Include the Library Code // Gravity: Analog Soil Moisture Sensor int iSoilMoisture = A0; int iSoilMoistureVal = 0; int zz = 0; // Change Your Threshold Here int Threshold = 300; // LED ProtoScrewShield Yellow int iLEDProto = 13; // LED Green int iLEDGreen = 12; // Software Version Information String sver = "15-20"; void loop() { // Gravity: Analog Soil Moisture Sensor isSoilMoisture(); // Delay 1 Second delay( 1000 ); }
getSoilMoisture.ino
// Gravity: Analog Soil Moisture Sensor // Soil Moisture void isSoilMoisture(){ // Connect Soil Moisture Sensor to Analog 0 zz = analogRead( iSoilMoisture ); // iSoilMoistureVal => 0~900 Soil Moisture iSoilMoistureVal = map( zz, 0, 715, 0, 900); // Serial Serial.print("Moisture Sensor Value: "); // Threshold if (iSoilMoistureVal > Threshold) { // 300~900 - Humid Soil // LEDProto digitalWrite(iLEDProto, LOW); // Serial Serial.print( "Humid Soil " ); Serial.println( iSoilMoistureVal ); // LEDGreen digitalWrite(iLEDGreen, HIGH); } else { // 0-300 Dry Soil // LEDGreen digitalWrite(iLEDGreen, LOW); // Serial Serial.print( "Dry Soil " ); Serial.println( iSoilMoistureVal ); // LEDProto digitalWrite(iLEDProto, HIGH); } }
setup.ino
// Setup void setup() { // Delay delay(100); // Serial Serial.begin(57600); // Initialize the LED iLEDProto pinMode(iLEDProto, OUTPUT); // Initialize the LED iLEDGreen pinMode(iLEDGreen, OUTPUT); // Delay 1 Second delay( 1000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Electronics, IoT, Teacher, Instructor, 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/
Patreon: https://patreon.com/DonLucElectronics59
DFRobot: https://learn.dfrobot.com/user-10186.html
Hackster.io: https://www.hackster.io/neosteam-labs
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin8
Twitch: https://www.twitch.tv/lucpaquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc
Project #15: Environment – MQ, PIR, HCSR04, RHT03, RTC and MicroSD – Mk19
——
#DonLucElectronics #DonLuc #Environment #MQ #PIR #HCSR04 #RHT03 #RTC #MicroSD #ArduinoUNO #Arduino #PowerBoost #Project #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
——
——
Project enclosure for protecting your electronic. You’ve got too much stuff to fit into a so you need an upgrade and here it is.
- Arduino UNO
- ProtoScrewShield
- RGB LCD Character
- HC-SR04 Ultrasonic Sensor
- ChronoDot – Real Time Clock, Batteries
- MicroSD Card Board, MicroSD 2.0 GB
- Adafruit PowerBoost 500 Shield, Lithium Ion Battery – 3.7v 2000mAh
- Hydrogen Gas Sensor
- Carbon Monoxide & Flammable Gas Sensor
- Carbon Monoxide Gas Sensor
- Alcohol Gas Sensor
- Temperature and Humidity Sensor
- PIR Motion Sensor
- Breadboard Solderables, Acrylics, Wood, Rocker Switch, LED Green, Resistors, USB Cable, Etc…
DL2111Mk01
1 x Arduino UNO – R3
1 x ProtoScrewShield
1 x RGB LCD Shield 16×2 Character Negative Display
1 x HC-SR04 Ultrasonic Sensor
1 x ChronoDot – Ultra-Precise Real Time Clock – v2.1
1 x CR1632 Batteries
1 x MicroSD Card Breakout Board+
1 x MicroSD 2.0 GB
1 x Rocker Switch – SPST (Round)
1 x 10K Ohm
1 x LED Green
1 x 220 Ohm
1 x Adafruit PowerBoost 500 Shield
1 x Lithium Ion Battery – 3.7v 2000mAh
4 x Pololu Carrier for MQ Gas Sensors
1 x SparkFun Hydrogen Gas Sensor – MQ-8
1 x 4.7K Ohm
1 x Pololu Carbon Monoxide & Flammable Gas Sensor – MQ-9
1 x 22k Ohm
1 x SparkFun Carbon Monoxide Gas Sensor – MQ-7
1 x 10K Ohm
1 x SparkFun Alcohol Gas Sensor – MQ-3
1 x 220k Ohm
1 x Temperature and Humidity Sensor- RHT03
1 x PIR Motion Sensor (JST)
1 x SparkFun Solderable Half-Breadboard
1 x Breadboard Solderable
1 x Adafruit Perma-Prote Half-Size Breadboard
1 x Acrylic Blue 5.75 inches x 3.75 inches x 1/8 inch
1 x Acrylic Ivory 5.75 inches x 3.75 inches x 1/8 inch
1 x Wood
2 x Union Squad – 1 Inch
4 x Screw 6-32, Flat Washer, Lock Washer, Hex Nut
28 x Screw – 4-40
14 x Standoff – Metal 4-40 – 3/8″
8 x Standoff – Metal 4-40 – 1″
1 x SparkFun Cerberus USB Cable
Arduino UNO – R3
CLK – Digital 13
DO – Digital 12
DI – Digital 11
CS – Digital 10
ECH – Digital 9
TIR – Digital 8
PIR – Digital 7
RHT – Digital 5
RS0 – Digital 3
LEG – Digital 2
MQ8 – Analog 0
MQ9 – Analog 1
MQ7 – Analog 2
MQ3 – Analog 3
SDA – Analog 4
SCL – Analog 5
VIN – +5V
GND – GND
DL2111Mk01p.ino
/* ***** Don Luc Electronics © ***** Software Version Information Project #15: Environment – MQ, PIR, HCSR04, RHT03, RTC and MicroSD – Mk19 11-01 DL2111Mk01p.ino 1 x Arduino UNO - R3 1 x ProtoScrewShield 1 x RGB LCD Shield 16x2 Character Negative Display 1 x HC-SR04 Ultrasonic Sensor 1 x ChronoDot - Ultra-Precise Real Time Clock - v2.1 1 x CR1632 Batteries 1 x MicroSD Card Breakout Board+ 1 x MicroSD 2.0 GB 1 x Rocker Switch - SPST (Round) 1 x 10K Ohm 1 x LED Green 1 x 220 Ohm 1 x Adafruit PowerBoost 500 Shield 1 x Lithium Ion Battery - 3.7v 2000mAh 4 x Pololu Carrier for MQ Gas Sensors 1 x SparkFun Hydrogen Gas Sensor - MQ-8 1 x 4.7K Ohm 1 x Pololu Carbon Monoxide & Flammable Gas Sensor - MQ-9 1 x 22k Ohm 1 x SparkFun Carbon Monoxide Gas Sensor - MQ-7 1 x 10K Ohm 1 x SparkFun Alcohol Gas Sensor - MQ-3 1 x 220k Ohm 1 x Temperature and Humidity Sensor - RHT03 1 x PIR Motion Sensor (JST) 1 x SparkFun Solderable Half-Breadboard 1 x Breadboard Solderable 1 x Adafruit Perma-Prote Half-Size Breadboard 1 x Acrylic Blue 5.75 inches x 3.75 inches x 1/8 inch 1 x Acrylic Ivory 5.75 inches x 3.75 inches x 1/8 inch 1 x Wood 2 x Union Squad - 1 Inch 4 x Screw 6-32, Flat Washer, Lock Washer, Hex Nut 28 x Screw - 4-40 14 x Standoff - Metal 4-40 - 3/8" 8 x Standoff - Metal 4-40 - 1"d 1 x SparkFun Cerberus USB Cable */ // Include the Library Code // EEPROM Library to Read and Write EEPROM with Unique ID for Unit #include <EEPROM.h> // RHT Temperature and Humidity Sensor #include <SparkFun_RHT03.h> // Adafruit RGB LCD Shield 16x2 #include <Adafruit_RGBLCDShield.h> // Wire #include <Wire.h> // DS3231 RTC Date and Time #include <RTClib.h> // SD Card #include <SPI.h> #include <SD.h> // RHT Temperature and Humidity Sensor // RHT03 data pin Digital 5 const int RHT03_DATA_PIN = 5; // This creates a RTH03 object, which we'll use to interact with the sensor RHT03 rht; float latestHumidity; float latestTempC; // Gas Sensors MQ // Hydrogen Gas Sensor - MQ-8 int iMQ8 = A0; int iMQ8Raw = 0; int iMQ8ppm = 0; // Two points are taken from the curve in datasheet. // With these two points, a line is formed which is // "approximately equivalent" to the original curve. float H2Curve[3] = {2.3, 0.93,-1.44}; // Carbon Monoxide & Flammable Gas Sensor - MQ-9 int iMQ9 = A1; int iMQ9Raw = 0; int iMQ9ppm = 0; // Carbon Monoxide Gas Sensor - MQ-7 int iMQ7 = A2; int iMQ7Raw = 0; int iMQ7ppm = 0; // Alcohol Gas Sensor - MQ-3 int iMQ3 = A3; int iMQ3Raw = 0; int iMQ3ppm = 0; // PIR Motion // Motion detector const int iMotion = 7; // Proximity int proximity = LOW; String Det = ""; // Adafruit RGB LCD Shield Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield(); // These #defines make it easy to set the backlight color #define OFF 0x0 #define RED 0x1 #define YELLOW 0x3 #define GREEN 0x2 #define TEAL 0x6 #define BLUE 0x4 #define VIOLET 0x5 #define WHITE 0x7 // Momentary Button int yy = 0; uint8_t momentaryButton = 0; // DS3231 RTC Date and Time RTC_DS3231 rtc; String sDate; String sTime; // SD Card const int chipSelect = 10; String zzzzzz = ""; // LED Green int iLEDGreen = 2; // Rocker Switch - SPST (Round) int iSS1 = 3; // State int iSS1State = 0; // HC-SR04 Ultrasonic Sensor int iTrig = 8; int iEcho = 9; // Stores the distance measured by the distance sensor float distance = 0; // Software Version Information String uid = ""; // Version String sver = "15-19"; void loop() { // Adafruit RGB LCD Shield // Clear RGBLCDShield.clear(); // iLEDGreen LOW digitalWrite(iLEDGreen, LOW ); // RHT Temperature and Humidity Sensor isRHT03(); // Gas Sensors MQ isGasSensor(); // isPIR Motion isPIR(); // DS3231 RTC Date and Time isRTC(); // HC-SR04 Ultrasonic Sensor isHCSR04(); // Adafruit RGB LCD Shield // Display isDisplay(); // Slide Switch // Read the state of the iSS1 value iSS1State = digitalRead(iSS1); // If it is the Slide Switch State is HIGH if (iSS1State == HIGH) { // iLEDGreen HIGH digitalWrite(iLEDGreen, HIGH ); // MicroSD Card isSD(); } else { // iLEDGreen LOW digitalWrite(iLEDGreen, LOW ); } // Delay delay( 500 ); }
getEEPROM.ino
// EEPROM // isUID EEPROM Unique ID void isUID() { // Is Unit ID uid = ""; for (int x = 0; x < 5; x++) { uid = uid + char(EEPROM.read(x)); } }
getGasSensorMQ.ino
// Gas Sensors MQ // Gas Sensor void isGasSensor() { // Read in analog value from each gas sensors // Hydrogen Gas Sensor - MQ-8 iMQ8Raw = analogRead( iMQ8 ); // Carbon Monoxide & Flammable Gas Sensor - MQ-9 iMQ9Raw = analogRead( iMQ9 ); // Carbon Monoxide Gas Sensor - MQ-7 iMQ7Raw = analogRead( iMQ7 ); // Alcohol Gas Sensor - MQ-3 iMQ3Raw = analogRead( iMQ3 ); // Caclulate the PPM of each gas sensors // Hydrogen Gas Sensor - MQ-8 iMQ8ppm = isMQ8( iMQ8Raw ); // Carbon Monoxide & Flammable Gas Sensor - MQ-9 iMQ9ppm = isMQ9( iMQ9Raw ); // Carbon Monoxide Gas Sensor - MQ-7 iMQ7ppm = isMQ7( iMQ7Raw ); // Alcohol Gas Sensor - MQ-3 iMQ3ppm = isMQ3( iMQ3Raw ); } // Hydrogen Gas Sensor - MQ-8 - PPM int isMQ8(double rawValue) { // RvRo double RvRo = rawValue * (3.3 / 1023); return (pow(4.7,( ((log(RvRo)-H2Curve[1])/H2Curve[2]) + H2Curve[0]))); } // Carbon Monoxide & Flammable Gas Sensor - MQ-9 int isMQ9(double rawValue) { double RvRo = rawValue * 3.3 / 4095; double ppm = 3.027*exp(1.0698*( RvRo )); return ppm; } // Carbon Monoxide Gas Sensor - MQ-7 int isMQ7(double rawValue) { double RvRo = rawValue * 3.3 / 4095; double ppm = 3.027*exp(1.0698*( RvRo )); return ppm; } // Alcohol Gas Sensor - MQ-3 int isMQ3(double rawValue) { double RvRo = rawValue * 3.3 / 4095; double bac = RvRo * 0.21; return bac; }
getHC-SR04.ino
// HC-SR04 Ultrasonic Sensor // Setup HC-SR04 void setupHCSR04() { // The trigger iTrig will output pulses of electricity pinMode(iTrig, OUTPUT); // The echo iEcho will measure the duration of pulses coming back from the distance sensor pinMode(iEcho, INPUT); } // HC-SR04 void isHCSR04() { // Variable to store the distance measured by the sensor distance = isDistance(); } // Distance float isDistance() { // Variable to store the time it takes for a ping to bounce off an object float echoTime; // Variable to store the distance calculated from the echo time float calculatedDistance; // Send out an ultrasonic pulse that's 10ms long digitalWrite(iTrig, HIGH); delayMicroseconds(10); digitalWrite(iTrig, LOW); // Use the pulseIn command to see how long it takes for the // pulse to bounce back to the sensor echoTime = pulseIn(iEcho, HIGH); // Calculate the distance of the object that reflected the pulse // (half the bounce time multiplied by the speed of sound) // cm = 58.0 calculatedDistance = echoTime / 58.0; // Send back the distance that was calculated return calculatedDistance; }
getPIR.ino
// PIR Motion // Setup PIR void setupPIR() { // Setup PIR Montion pinMode(iMotion, INPUT_PULLUP); } // isPIR Motion void isPIR() { // Proximity proximity = digitalRead(iMotion); if (proximity == LOW) { // PIR Motion Sensor's LOW, Motion is detected Det = "Motion Yes"; } else { // PIR Motion Sensor's HIGH Det = "No"; } }
getRGBLCDShield.ino
// Adafruit RGB LCD Shield // Setup RGB LCD Shield void isSetupRGBLCDShield() { // Adafruit RGB LCD Shield // Set up the LCD's number of columns and rows: RGBLCDShield.begin(16, 2); // Set the cursor to column 0, line 0 RGBLCDShield.setBacklight(RED); // Don luc RGBLCDShield.setCursor(0,0); RGBLCDShield.print("Don Luc"); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Electronics RGBLCDShield.print("Electronics"); // Delay delay(5000); // Clear RGBLCDShield.clear(); // Set the cursor to column 0, line 0 RGBLCDShield.setBacklight(TEAL); // Version RGBLCDShield.setCursor(0,0); RGBLCDShield.print("Version: " + sver); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Unit ID RGBLCDShield.print("Unit ID: " + uid); // Delay delay(5000); // Clear RGBLCDShield.clear(); } // isDisplay void isDisplay() { // Momentary Button momentaryButton = RGBLCDShield.readButtons(); switch ( yy ) { case 1: // RHT Temperature and Humidity Sensor // Set the cursor to column 0, line 0 RGBLCDShield.setCursor(0,0); // Temperature C RGBLCDShield.print( "Temp C: " ); RGBLCDShield.print( latestTempC ); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Humidity RGBLCDShield.print( "Humidity: " ); RGBLCDShield.print( latestHumidity ); break; case 2: // Set the cursor to column 0, line 0 // PIR Motion Sensor RGBLCDShield.setCursor(0,0); RGBLCDShield.print( "PIR: " ); RGBLCDShield.print( Det ); // Set the cursor to column 0, line 1 // HC-SR04 Ultrasonic Sensor RGBLCDShield.setCursor(0, 1); RGBLCDShield.print( "HC-SR04: " ); RGBLCDShield.print( distance ); break; case 3: // Gas Sensors 1 // Set the cursor to column 0, line 0 RGBLCDShield.setCursor(0,0); // Hydrogen Gas Sensor - MQ-8 RGBLCDShield.print( "MQ-8: " ); RGBLCDShield.print( iMQ8ppm ); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Carbon Monoxide & Flammable Gas Sensor - MQ-9 RGBLCDShield.print( "MQ-9: " ); RGBLCDShield.print( iMQ9ppm ); break; case 4: // Gas Sensors 2 // Set the cursor to column 0, line 0 RGBLCDShield.setCursor(0,0); // Carbon Monoxide Gas Sensor - MQ-7 RGBLCDShield.print( "MQ-7: " ); RGBLCDShield.print( iMQ7ppm ); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Alcohol Gas Sensor - MQ-3 RGBLCDShield.print( "MQ-3: " ); RGBLCDShield.print( iMQ3ppm ); break; case 5: // DS3231 RTC Date and Time // Date and Time DateTime now = rtc.now(); // Set the cursor to column 0, line 0 // Date RGBLCDShield.setCursor(0,0); RGBLCDShield.print( sDate ); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Time RGBLCDShield.print( sTime ); break; default: // Don luc Electronics yy = 5; RGBLCDShield.setBacklight(RED); // Set the cursor to column 0, line 0 // Don luc RGBLCDShield.setCursor(0,0); RGBLCDShield.print("Don Luc"); // Set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); // Electronics RGBLCDShield.print("Electronics"); } if ( momentaryButton ) { if ( momentaryButton & BUTTON_UP ) { yy = 1; // RHT Temperature and Humidity Sensor RGBLCDShield.setBacklight(GREEN); } if ( momentaryButton & BUTTON_DOWN ) { yy = 2; // PIR Motion Sensor RGBLCDShield.setBacklight(VIOLET); } if ( momentaryButton & BUTTON_LEFT ) { yy = 3; // Gas Sensors 1 RGBLCDShield.setBacklight(TEAL); } if ( momentaryButton & BUTTON_RIGHT ) { yy = 4; // Gas Sensors 2 RGBLCDShield.setBacklight(YELLOW); } if ( momentaryButton & BUTTON_SELECT ) { yy = 5; // DS3231 RTC Date and Time RGBLCDShield.setBacklight(WHITE); } } }
getRHT.ino
// RHT Temperature and Humidity Sensor // setup RHT Temperature and Humidity Sensor void setupRTH03() { // RHT Temperature and Humidity Sensor // Call rht.begin() to initialize the sensor and our data pin rht.begin(RHT03_DATA_PIN); } // RHT Temperature and Humidity Sensor void isRHT03(){ // Call rht.update() to get new humidity and temperature values from the sensor. int updateRet = rht.update(); // The humidity(), tempC(), and tempF() functions can be called -- after // a successful update() -- to get the last humidity and temperature value latestHumidity = rht.humidity(); latestTempC = rht.tempC(); }
getRTC.ino
// DS3231 RTC Date and Time // Setup DS3231 RTC void isSetupRTC() { if (! rtc.begin()) { while (1); } if (rtc.lostPower()) { // Following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } } // DS3231 RTC Date and Time void isRTC(){ // Date and Time sDate = ""; sTime = ""; // Date Time DateTime now = rtc.now(); // sData sDate += String(now.year(), DEC); sDate += "/"; sDate += String(now.month(), DEC); sDate += "/"; sDate += String(now.day(), DEC); // sTime sTime += String(now.hour(), DEC); sTime += ":"; sTime += String(now.minute(), DEC); sTime += ":"; sTime += String(now.second(), DEC); }
getSD.ino
// MicroSD Card // MicroSD Setup void setupSD() { // MicroSD Card if (!SD.begin(chipSelect)) { while (true); } } // MicroSD Card void isSD() { zzzzzz = ""; // Don Luc Electronics © (1983-2021) // Arduino Data // EEPROM Unique ID // Version // Date // Time // Temperature Celsius // Humidity // Hydrogen Gas Sensor - MQ-8 // Carbon Monoxide & Flammable Gas Sensor - MQ-9 // Carbon Monoxide Gas Sensor - MQ-7 // Alcohol Gas Sensor - MQ-3 // PIR Motion // HC-SR04 Ultrasonic Sensor // EEPROM Unique ID|Version|Date|Time|Temperature Celsius|Humidity|MQ-8|MQ-9|MQ-7|MQ-3|PIR Motion|HC-SR04| zzzzzz = uid + "|" + sver + "|" + sDate + "|" + sTime + "|" + latestTempC + "|" + latestHumidity + "|" + iMQ8ppm + "|" + iMQ9ppm + "|" + iMQ7ppm + "|" + iMQ3ppm + "|" + Det + "|" + distance + "|"; // Open the file. Note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("arddata.txt", FILE_WRITE); // If the file is available, write to it: if ( dataFile ) { dataFile.println( zzzzzz ); dataFile.close(); } }
setup.ino
// Setup void setup() { // EEPROM Unique ID isUID(); // RHT Temperature and Humidity Sensor // Setup RTH03 Temperature and Humidity Sensor setupRTH03(); // PIR Motion // Setup PIR setupPIR(); // Setup DS3231 RTC isSetupRTC(); //MicroSD Card setupSD(); // Initialize the LED Green pinMode(iLEDGreen, OUTPUT); // iLEDGreen LOW digitalWrite(iLEDGreen, LOW ); // Slide Switch pinMode(iSS1, INPUT); // Setup HC-SR04 setupHCSR04(); // Adafruit RGB LCD Shield isSetupRGBLCDShield(); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor and E-Mentor
- IoT
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/luc/
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc