i2c sensor

This commit is contained in:
2023-12-17 14:49:11 -05:00
parent 063e800be2
commit 57a00b7aea
2 changed files with 36 additions and 9 deletions

View File

@@ -1,8 +1,13 @@
// Uncomment modules as required // Uncomment modules as required
//#define RTC //#define RTC
//#define MICRO_SD //#define MICRO_SD
#define BMP280 // Adafruit BMP280; temp & pressure //#define BMP280 // Adafruit BMP280; temp & pressure
//#define BME280 // Generic BME280; temp, pressure & humidity //#define BME280 // Generic BME280; temp, pressure & humidity
/*
BME-280
SCL -> GPIO 22
SDA -> GPIO 21
*/
//#define AWSIoT //#define AWSIoT
#define MQTT_SSL #define MQTT_SSL
@@ -65,8 +70,8 @@ D22 14
D23 15 D23 15
D34 19 Input only D34 19 Input only
D35 20 Input only D35 20 Input only
D32 21* D32 21* => SCL I2C
D33 22* D33 22* => SDA I2C
D25 23* => Assigned to DAC D25 23* => Assigned to DAC
D26 24* => Assigned to DAC D26 24* => Assigned to DAC
D27 25 D27 25

View File

@@ -11,6 +11,7 @@
#include <Arduino.h> #include <Arduino.h>
#include <WiFi.h> #include <WiFi.h>
#include <Wire.h>
#include <WiFiClientSecure.h> #include <WiFiClientSecure.h>
#include <PubSubClient.h> #include <PubSubClient.h>
@@ -40,11 +41,15 @@ Adafruit_BME280 bme;
#endif #endif
// BMP280 // BMP280
#ifdef BMP280 #ifdef BMP280
// I2C setup
Adafruit_BMP280 bmp();
/*
// BMP280 SPI setup
#define BMP_SCK (18) #define BMP_SCK (18)
#define BMP_MISO (19) #define BMP_MISO (19)
#define BMP_MOSI (23) #define BMP_MOSI (23)
#define BMP_CS (5) #define BMP_CS (5)
//Adafruit_BMP280 bmp(BMP_CS); //Adafruit_BMP280 bmp(BMP_CS);*/
#endif #endif
// Mosquitto // Mosquitto
@@ -203,6 +208,7 @@ void mosquitto_connect ()
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
Serial.println(); Serial.println();
Serial.println("Running setup ...");
sensors_values.humidity = 0.0; sensors_values.humidity = 0.0;
sensors_values.pressure = 0.0; sensors_values.pressure = 0.0;
sensors_values.temperature = 0.0; sensors_values.temperature = 0.0;
@@ -228,13 +234,29 @@ void setup() {
//digitalWrite(DAC_CH1, LOW); //digitalWrite(DAC_CH1, LOW);
dacWrite(DAC1, 0); dacWrite(DAC1, 0);
#endif #endif
Serial.println("GPIO setup done");
Serial.println("Scanning I2C bus ...");
Serial.println("setup"); // Scan I2C bus
Serial.println("setup done"); byte address;
for (address = 1; address < 127; address++)
{
Serial.print("Address: ");
Serial.println(address, HEX);
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("I2C device was found at address: ");
Serial.println(address, HEX);
}
else if (Wire.endTransmission() == 4)
Serial.println("I2C unknown error.");
delay(150); //500
}
// WaveShare BME280 // WaveShare BME280
#ifdef BME280 #ifdef BME280
unsigned status = bme.begin(); unsigned status = bme.begin(); // 0x76
if (!status) { if (!status) {
Serial.println("Could not find a valid BME/BMP280 sensor, check wiring!"); Serial.println("Could not find a valid BME/BMP280 sensor, check wiring!");
Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID());//,16); Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID());//,16);
@@ -245,8 +267,8 @@ void setup() {
while (1); while (1);
} }
else { else {
humidity = bme.readHumidity(); sensors_values.humidity = bme.readHumidity();
pressure = bme.readPressure() / 100.0F; sensors_values.pressure = bme.readPressure() / 100.0F;
} }
#endif #endif