Hallo,
ich möchte mit einem SR04 über einen D1mini den Abstand messen und auf einer Homepage anzeigen.
Funktioniert auch alles! Allerdings nur wenn ich den Wemo erstmal von meiner Platine ziehe.
Er startet nicht so lange ich den SR04 angeschlossen habe.
Ziehe ich ihn oder den Wemos ab, läuft das Programm an. Dann stecke ich ihn bzw. den SR04 auf die Platine und alles ist perfekt.
Ich habe mehrere Ports versucht und immer das selbe Ergebnis.
Kann ich die beiden Ports zum Programmstart "abschalten"?
(Im Moment ist es 0 und 16)
Code:
#include <ESP8266WiFi.h>
const char* ssid = "*****";
const char* password = "*****";
WiFiServer server(80);
int trigger = 16;
int echo = 0;
long dauer = 0;
int PinConnect = 4; // WLAN Connect
long entfernung = 0;
void setup() {
Serial.begin(115200);
Serial.println("Setze Pins als Ausgänge");
pinMode(PinConnect, OUTPUT);
digitalWrite(PinConnect, LOW);
delay(10);
IPAddress ip(192, 168, 0, 71);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 0, 71);
WiFi.config(ip, dns, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
digitalWrite(PinConnect, HIGH);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
// Connect to WiFi network
WiFi.mode(WIFI_STA);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer * 0.018);
String cmd;
cmd += "\"";
WiFiClient client = server.available();
client.println("HTTP/1.1 200 OK");
client.println();
client.println("<!DOCTYPE html>");
client.println("<html xmlns='http://www.w3.org/1999/xhtml'>");
client.println("<head>\n<;meta charset='UTF-8'>");
client.println("<title>Abstandsmessung</title>");
client.println("</head>\n<body>");
client.println("<H2>Wemo D1 Mini</H2>");
client.println("<h3>");
if (entfernung >= 0 || entfernung <= 1000)
{
client.println("Kein Messwert");
}
else
{
client.print(entfernung);
client.println(" cm");
}
client.println("</h3>");
client.print("</body>\n</html>");
delay(500);
}
Lesezeichen