Mein ESP8266-01 erkennt den Sensor TSL2561 , aber die Messwerte werden 65535
aus irgendeinem seltsamen Grund immer ausgegeben. Aber wie gesagt, wenn ich den I2C-Scanner starte und das Kabel einstecke, sehe ich, dass der Sensor bei auftaucht0x39
.
Wenn ich denselben Sensor an einen ESP8266 NodeMCU-Breakout anschließe und dort denselben Code flashe, liest er ihn einwandfrei aus. Ich habe die Drähte wie unten gezeigt ohne Widerstände oder irgendetwas dazwischen angeschlossen.
| ESP8266-01 | TSL25611 |
|------------|------------|
| VCC (3.3V) | VCC (3.3V) |
| GND | GND |
| GPIO2 | SCL |
| GPIO0 | SDA |
Ich bin mir aber nicht sicher, was ich falsch mache.
Mein Code:
#include <Wire.h>
#include <ESP8266WebServer.h>
#include <TSL2561.h>
const char *ssid = "Wouter's Place";
const char *password = "";
ESP8266WebServer server(80);
TSL2561 tsl2561(TSL2561_ADDR_FLOAT);
void handleRoot() {
// Read illuminance
float visible = tsl2561.getLuminosity(TSL2561_VISIBLE);
float full = tsl2561.getLuminosity(TSL2561_FULLSPECTRUM);
float ir = tsl2561.getLuminosity(TSL2561_INFRARED);
String response = "";
response += "{\"illuminance\":{";
response += "\"visible\":";
response += visible;
response += ",\"full\":";
response += full;
response += ",\"ir\":";
response += ir;
response += "}";
response += "}";
server.send(200, "application/json", response);
}
void setup(void)
{
Wire.begin(0, 2);
Serial.begin(9600);
Serial.println();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("Connecting to: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(250);
Serial.print(".");
}
Serial.println();
Serial.print("Connected to wifi, ip: ");
Serial.println(WiFi.localIP());
Serial.println("Setting up TSL2561..");
if (!tsl2561.begin())
{
Serial.println("Could not find TSL2561 sensor, check wiring!");
while (1);
}
Serial.println("Starting server..");
server.on("/", handleRoot);
server.begin();
Serial.println("Web server running!");
}
void loop()
{
server.handleClient();
}
Ergebnisausgabe:
{
"illuminance":
{
"visible": 0,
"full": 65535
"ir": 65535
}
}
Ich habe den Fehler gefunden, nachdem ich ein wenig darüber nachgedacht hatte, was @DoxyLover erwähnt hat! Diese 2 Zeilen übrig gebliebenen Codes sollten nicht hier sein. Anscheinend ist die Standard-LED auf dem ESP-01 GPIO2 (das ist einer der I2C-Pins, die ich verwende).
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Benutzer103380
jsotola
DoxyLover
wouterds