Problem mit D1 mini
- jbaben
- Autor
- Offline
- Junior Member
Weniger
Mehr
- Beiträge: 27
- Dank erhalten: 3
06 Feb 2020 15:03 #634
von jbaben
jbaben erstellte das Thema Problem mit D1 mini
Hallo,
wenn ich in dem beigefügten Sketch das OLED Display und den Sensor BME280 initialisiere, stürzt das Programm ab (TemperCould not find a valid BME280 sensor, check wiring!, wdt reset).
Initialisiere ich nur das Display --> Anzeige OK
Initialisiere ich nur den Sensor --> Anzeige OK
Woran kann das liegen ?
MfG
Juergen B.
wenn ich in dem beigefügten Sketch das OLED Display und den Sensor BME280 initialisiere, stürzt das Programm ab (TemperCould not find a valid BME280 sensor, check wiring!, wdt reset).
Initialisiere ich nur das Display --> Anzeige OK
Initialisiere ich nur den Sensor --> Anzeige OK
// Import required libraries
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include "SSD1306.h" // siehe OLEDDisplay.h
#include "modified_font.h" // modified_font.txt --> modified_font.h
#define BME_SCK 0 // SCL GPIO0
#define BME_MISO 12
#define BME_MOSI 2 // SDA GPIO2
#define BME_CS 10
// OLED Display
#define SDA D6
#define SCL D5
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
SSD1306 display(0x3c, SDA, SCL);
#define SEALEVELPRESSURE_HPA (1013.25)
unsigned long delayTime = 1000;
Adafruit_BME280 bme; // I2C: SCL = D1, SDA = D2
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
// Replace with your network credentials
const char* ssid = "ssid";
const char* password = "passwort";
void printValues(void);
void setup(){
// Serial port for debugging purposes
Serial.begin(115200);
// Ini OLED Display
display.init();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_16); // set a font
display.clear();
display.setColor(WHITE);
// Initialize the sensor
if (!bme.begin()) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
// Print D1 Mini Local IP Address
Serial.println(WiFi.localIP());
}
void loop(){
printValues();
delay(delayTime);
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
// Convert temperature to Fahrenheit
/*Serial.print("Temperature = ");
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(" *F");*/
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
// Output OLED Display
// clear display
display.clear();
// display temperature
display.setFont(ArialMT_Plain_16); // set a font
display.drawString(0,0, "Temperature: ");
display.drawString(0,30, String(bme.readTemperature()));
display.drawString(50, 30, "°C");
display.display();
}
Woran kann das liegen ?
MfG
Juergen B.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Greenhouse
- Offline
- Junior Member
Weniger
Mehr
- Beiträge: 25
- Dank erhalten: 11
08 Feb 2020 09:02 #635
von Greenhouse
Problem mit D1 mini
Hallo Jürgen,
die Fehlemeldung kommt aus Deinem Code und wird nach dem Befehl "bme.begin" geworfen.
Wenn ich Deinen Code richtig verstehe, hängen Display und Sensor beide am I2C Bus.
Die BMx280 (BMP280 oder BME280) können über einen Anschlußpin (eventuell SD0) zwischen den Busadressen 0x76 und 0x77 umgeschaltet werden (Pin über Pulldown Widerstand mit GND verbinden).
Bei der Initialisierung der Verbindung kannst Du bei der Initialisierung der bme Variable mitgeben.
Für den ESP8266 gibt es einen Sketch mit dem Namen I2CBus-Scanner (Google ist Dein Freund).
Diesen Sketch auf den ESP8266 geflashed liefert er die Adressen der am I2C Bus angeschlossenen Devices.
Wenn die Verdrahtung stimmt, sollte der Temperatursensor dort auftauchen.
Für die Fehlersuche würde ich jeweils nur einen Teilnehmer anschließen (erst nur mit Display, dann nur mit Sensor).
Gruß
Greenhouse
die Fehlemeldung kommt aus Deinem Code und wird nach dem Befehl "bme.begin" geworfen.
Wenn ich Deinen Code richtig verstehe, hängen Display und Sensor beide am I2C Bus.
Die BMx280 (BMP280 oder BME280) können über einen Anschlußpin (eventuell SD0) zwischen den Busadressen 0x76 und 0x77 umgeschaltet werden (Pin über Pulldown Widerstand mit GND verbinden).
Bei der Initialisierung der Verbindung kannst Du bei der Initialisierung der bme Variable mitgeben.
Für den ESP8266 gibt es einen Sketch mit dem Namen I2CBus-Scanner (Google ist Dein Freund).
Diesen Sketch auf den ESP8266 geflashed liefert er die Adressen der am I2C Bus angeschlossenen Devices.
Wenn die Verdrahtung stimmt, sollte der Temperatursensor dort auftauchen.
Für die Fehlersuche würde ich jeweils nur einen Teilnehmer anschließen (erst nur mit Display, dann nur mit Sensor).
Gruß
Greenhouse
Folgende Benutzer bedankten sich: jbaben
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- jbaben
- Autor
- Offline
- Junior Member
Weniger
Mehr
- Beiträge: 27
- Dank erhalten: 3
11 Feb 2020 16:24 #636
von jbaben
Problem mit D1 mini
Hallo,
vielen Dank für die Hinweise.
Konnte das Problem lösen, und zwar so:
1. auch das OLED an den I2C-Bus (Anschluß D1, D2) angeschlossen
2. Sketch I2CBUS-Scanner lieferte die Adressen: 0x76 = Sensor BME280/BMP280, 0x3C = OLED
3. Sensor und OLED mit den entsprechenden Adressen initialisiert.
4. Fertig
MfG
Juergen B.
vielen Dank für die Hinweise.
Konnte das Problem lösen, und zwar so:
1. auch das OLED an den I2C-Bus (Anschluß D1, D2) angeschlossen
2. Sketch I2CBUS-Scanner lieferte die Adressen: 0x76 = Sensor BME280/BMP280, 0x3C = OLED
3. Sensor und OLED mit den entsprechenden Adressen initialisiert.
4. Fertig
MfG
Juergen B.
Folgende Benutzer bedankten sich: supportteam
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Codebesprechung
- Problem mit D1 mini