——
#DonLucElectronics #DonLuc #ETextiles #Wearable #FLORA #MicroOLED #BME280 #Arduino #Project #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
Bosch Sensortec BME280 – Combined Humidity And Pressure Sensor
The BME280 is as combined digital humidity, pressure and temperature sensor based on proven sensing principles. Its small dimensions and its low power consumption allow the implementation in battery driven devices such as handsets, GPS modules or watches. The BME280 is register and performance compatible to the Bosch Sensortec BMP280 digital pressure sensor. The BME280 achieves high performance in all applications requiring humidity and pressure measurement. These emerging applications of home automation control, in-door navigation, E-Textiles, fitness as well as GPS refinement require a high accuracy and a low TCO at the same time. The humidity sensor provides an extremely fast response time for fast context awareness applications and high overall accuracy over a wide temperature range. The integrated temperature sensor has been optimized for lowest noise and highest resolution. Its output is used for temperature compensation of the pressure and humidity sensors and can also be used for estimation of the ambient temperature. The sensor provides both SPI and I²C interfaces.
Typical Application
- Context awareness, e.g. skin detection, room change detection
- Fitness monitoring / well-being
- Warning regarding dryness or high temperatures
- Measurement of volume and air flow
- Home automation control
- Control heating, venting, air conditioning (HVAC)
- Internet of Things
- GPS enhancement (e.g. time-to-first-fix improvement, dead reckoning, slope detection)
- Indoor navigation (e.g. change of floor detection, elevator detection)
- Outdoor navigation, leisure and sports applications
- Weather forecast
- Vertical velocity indication (rise/sink speed)
- E-Textiles and Wearable
Target Devices
- Handsets such as mobile phones, tablet PCs, GPS devices
- Navigation systems
- Gaming (e.g flying toys)
- Camera (DSC, video)
- Home weather stations
- Flying toys
- Watches
- E-Textiles
- Wearable
DL2204Mk04
1 x FLORA – Version 1.0a
1 x SparkFun Micro OLED
1 x SparkFun Environmental Combo CCS811/BME280
1 x RGB Smart NeoPixel
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
FLORA – Version 1.0a
NEO – Digital 6
SDA – Analog A2
SCL – Analog A3
VIN – +5V
GND – GND
DL2204Mk04p.ino
/* ***** Don Luc Electronics © *****
Software Version Information
Project #23: E-Textiles - BME280 - Mk04
23-04
DL2204Mk04p.ino
1 x FLORA - Version 1.0a
1 x SparkFun Micro OLED
1 x SparkFun Environmental Combo CCS811/BME280
1 x RGB Smart NeoPixel
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
*/
// Include the Library Code
// Wire
#include <Wire.h>
// NeoPixels
#include <Adafruit_NeoPixel.h>
// SparkFun Micro OLED
#include <SFE_MicroOLED.h>
// SparkFun BME280 - Humidity, Temperature, Altitude and Barometric Pressure
#include <SparkFunBME280.h>
// NeoPixels
// On digital pin 6
#define PIN 6
// NeoPixels NUMPIXELS = 1
#define NUMPIXELS 1
// Pixels
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Red
int red = 0;
// Green
int green = 0;
// Blue
int blue = 0;
// Neopix
int iNeo = 0;
// Value
int zz = 0;
// SparkFun Micro OLED
#define PIN_RESET 9
#define DC_JUMPER 1
// I2C declaration
MicroOLED oled(PIN_RESET, DC_JUMPER);
// SparkFun BME280 - Temperature, Humidity, Altitude and Barometric Pressure
BME280 myBME280;
// Temperature Celsius
float BMEtempC = 0;
// Humidity
float BMEhumid = 0;
// Altitude Meters
float BMEaltitudeM = 0;
// Barometric Pressure
float BMEpressure = 0;
// Software Version Information
String sver = "23-04";
void loop() {
// SparkFun BME280 - Temperature, Humidity, Altitude and Barometric Pressure
isBME280();
// FLORA
isFLORA();
// Micro OLED
isMicroOLED();
// Delay
delay( 1000 );
}
getBME280.ino
// SparkFun BME280 - Temperature, Humidity, Altitude and Barometric Pressure
// isBME280 - Temperature, Humidity, Altitude and Barometric Pressure
void isBME280(){
// Temperature Celsius
BMEtempC = myBME280.readTempC();
// Humidity
BMEhumid = myBME280.readFloatHumidity();
// Altitude Meters
BMEaltitudeM = myBME280.readFloatAltitudeMeters();
// Barometric Pressure
BMEpressure = myBME280.readFloatPressure();
}
getFLORA.ino
// FLORA
// isFLORA
void isFLORA() {
// FLORA = Temperature Celsius
// BMEtempC
// FLORA = Temperature Celsius
if ( BMEtempC >= 50 ) {
// 40 <= Temperature Celsius < 50~~~
zz = 2;
isNUMPIXELS();
} else if ( BMEtempC >= 40 ) {
// 30 <= Temperature Celsius < 40
zz = 3;
isNUMPIXELS();
} else if ( BMEtempC >= 30 ) {
// 20 <= Temperature Celsius < 30
zz = 4;
isNUMPIXELS();
} else if ( BMEtempC >= 20 ) {
// 10 <= Temperature Celsius < 20
zz = 0;
isNUMPIXELS();
} else if ( BMEtempC >= 10 ) {
// ~~~0 <= Temperature Celsius < 10
zz = 1;
isNUMPIXELS();
}
}
getMicroOLED.ino
// SparkFun Micro OLED
// Setup Micro OLED
void setupMicroOLED() {
// Initialize the OLED
oled.begin();
// Clear the display's internal memory
oled.clear(ALL);
// Display what's in the buffer (splashscreen)
oled.display();
// Delay 1000 ms
delay(1000);
// Clear the buffer.
oled.clear(PAGE);
}
// Micro OLED
void isMicroOLED() {
// Text Display BME280
// Clear the display
oled.clear(PAGE);
// Set cursor to top-left
oled.setCursor(0, 0);
// Set font to type 0
oled.setFontType(0);
// Temperature Celsius
oled.print("T: ");
oled.print(BMEtempC);
oled.setCursor(0, 10);
// Humidity
oled.print("H: ");
oled.print(BMEhumid);
oled.setCursor(0, 20);
// Altitude Meters
oled.print("A: ");
oled.print(BMEaltitudeM);
oled.setCursor(0, 30);
// Barometric Pressure
oled.print("P: ");
oled.print(BMEpressure);
oled.display();
}
getNeopix.ino
// NeoPixels
// Neopix
void isNeopix()
{
// Pixels
pixels.setBrightness( 150 );
// Pixels color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor( iNeo, pixels.Color(red,green,blue) );
// This sends the updated pixel color to the hardware
pixels.show();
// Delay for a period of time (in milliseconds)
delay(50);
}
// isNUMPIXELS
void isNUMPIXELS()
{
// Neopix Value
switch ( zz ) {
case 0:
// NeoPixels Green
// Red
red = 0;
// Green
green = 255;
// Blue
blue = 0;
// Neopix
iNeo = 0;
isNeopix();
break;
case 1:
// NeoPixels Blue
// Red
red = 0;
// Green
green = 0;
// Blue
blue = 255;
// Neopix
iNeo = 0;
isNeopix();
break;
case 2:
// NeoPixels Red
// Red
red = 255;
// Green
green = 0;
// Blue
blue = 0;
// Neopix
iNeo = 0;
isNeopix();
break;
case 3:
// NeoPixels Yellow
// Red
red = 255;
// Green
green = 255;
// Blue
blue = 0;
// Neopix
iNeo = 0;
isNeopix();
break;
case 4:
// NeoPixels Magenta
// Red
red = 255;
// Green
green = 0;
// Blue
blue = 255;
// Neopix
iNeo = 0;
isNeopix();
break;
case 5:
// NeoPixels Cyan
// Red
red = 0;
// Green
green = 255;
// Blue
blue = 255;
// Neopix
iNeo = 0;
isNeopix();
break;
case 6:
// NeoPixels White
// Red
red = 255;
// Green
green = 255;
// Blue
blue = 255;
// Neopix
iNeo = 0;
isNeopix();
break;
}
}
// isNUMPIXELSoff
void isNUMPIXELSoff()
{
// Black Off
// NeoPixels
// Red
red = 0;
// Green
green = 0;
// Blue
blue = 0;
isNeopix();
}
setup.ino
// Setup
void setup() {
// NeoPixels
// This initializes the NeoPixel library
pixels.begin();
// Delay for a period of time (in milliseconds)
delay(50);
// isNUMPIXELS Off
isNUMPIXELSoff();
// Set up I2C bus
Wire.begin();
// Delay for a period of time (in milliseconds)
delay(50);
// SparkFun BME280 - Temperature, Humidity, Altitude and Barometric Pressure
myBME280.begin();
// Setup Micro OLED
setupMicroOLED();
}
——
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 – 2022 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





















