Einen wunderschönen guten Tag zusammen!
Ich habe aktuell ein Problem mit meinem Wemos D1 mini und hoffe, ihr könnt mir vielleicht helfen!
Ganz kurz zum Projekt:
Die Schaltung soll die Daten von einem BME280 (Temperatur, Luftfeuchte, Druck) auslesen und über ein NRF24L01 an eine andere Station schicken.
Stand:
Die Schaltung funktioniert, die Gegenstation empfängt die Daten und kann sie weiter verarbeiten, ABER...
...das Problem:
Der Wemos D1 Mini bootet innerhalb der Schaltung nicht anständig. Wenn ich ihn erst, z.B. über USB Kabel, starte, in die Schaltung stecke und dann neu starte tut er was er soll. Wenn ich ihn INNERHALB der Schaltung mit Spannung versorge bootet er nicht anständig. Im Serial Monitor gibt er dann auch nur sinnfreie Zeichen aus, er initialisiert scheinbar nicht mal die serielle Schnittstelle anständig.
Gibt es hier besondere Befindlichkeiten des Wemos? Dürfen manche Pins nicht belegt sein beim Start?
Ich hänge euch die Schaltung und das Platinen-Layout an. Unten kommt auch noch der Code. Wenn ihr noch mehr Details braucht, bitte Fragen.
Vielen Dank schon mal für eure Hilfe!!
Das ist mein Board:
Wemos D1 Mini von AZ Delivery
Das ist der Code:
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
// Initialisierung fuer Funk
#define CE D3
#define CS D4
RF24 radio (CE, CS);
const byte address1[6] = "00001";
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
struct sensor_data {
char str_temp[8];
char str_press[8];
char str_hum[8];
};
void setup() {
Serial.begin(19200);
delay(10);
Serial.println('\n');
Serial.println("BME280 test");
bool status;
// Status des Sensors pruefen
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
radio.begin();
radio.openWritingPipe(address1);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
sensor_data sensor;
Serial.println("Beschreibe Struct");
dtostrf(bme.readTemperature(), 1, 2, sensor.str_temp);
Serial.println(sensor.str_temp);
dtostrf((bme.readPressure() / 100.0F), 1, 2, sensor.str_press);
Serial.println(sensor.str_press);
dtostrf(bme.readHumidity(), 1, 2, sensor.str_hum);
Serial.println(sensor.str_hum);
Serial.println("Sende Struct");
radio.write(&sensor, sizeof(sensor));
Serial.println("Struct gesendet");
ESP.deepSleep(1200e6);
}
void loop() {
}