Ich habe folgenden Quellcode zum ansteuern von 433mhz Steckdosen geschrieben. Dieser läuft zwar aber nicht stabil. Nach vielen Ansteuerungen oder in unregelmäßigen Zeitfolgen funktionier die Steuerung nicht mehr. !!Quelltext wurde als spam markiert deswegen ist er als pdf angehängt!! Ich bitte um Hilfe!
Max schrieb: > !!Quelltext wurde als spam markiert deswegen ist er als pdf angehängt!! Du hättest ihn auch als Quelltext anhängen können. So jedenfalls ist der Quelltext extrem schlecht lesbar. Proportionalschrift? Kaum erkennbare Einrückungen, viel zu große Zeilenabstände, willkürliche Seitenumbrüche? Nee.
Dann geh doch vor, wie es alle hier machen, die was zum Laufen bringen wollen: Das Allernotwendigste programmieren - und TESTEN! Da ist es (hoffentlich noch übersichtlich.) Wenn das nicht gehen will, kannst du uns das als Code zeigen. Wenn du nachschaust, wie man das macht, wird es auch als Code angenommen. Und dir wird geholfen! Die Feinheiten machst du DANACH! Schritt für Schritt. Dann siehst du meist schon selber, ab wann es unzuverlässig wird...
case mit break nicht mit return oder ohne alles beenden. alle 'return' in loop überdenken...
1 | #include <ESP8266WiFi.h> |
2 | |
3 | const char* ssid = ""; |
4 | const char* password = ""; |
5 | short rc_pin = 3; |
6 | int ledPin = 2; |
7 | WiFiServer server(80); |
8 | |
9 | |
10 | void setup() { |
11 | Serial.begin(115200); |
12 | delay(10); |
13 | pinMode(rc_pin, OUTPUT); //definiere rc_Pin als Ausgang (schliesslich wollen wir senden) |
14 | pinMode(ledPin, OUTPUT); |
15 | |
16 | // Connect to WiFi network
|
17 | Serial.println(); |
18 | Serial.println(); |
19 | Serial.print("Connecting to "); |
20 | Serial.println(ssid); |
21 | WiFi.begin(ssid, password); |
22 | |
23 | while (WiFi.status() != WL_CONNECTED) { |
24 | delay(500); |
25 | Serial.print("."); |
26 | }
|
27 | |
28 | Serial.println(""); |
29 | Serial.println("WiFi connected"); |
30 | |
31 | // Start the server
|
32 | server.begin(); |
33 | Serial.println("Server started"); |
34 | // Print the IP address
|
35 | Serial.print("Use this URL to connect: "); |
36 | Serial.print("http://"); |
37 | Serial.print(WiFi.localIP()); |
38 | Serial.println("/"); |
39 | }
|
40 | void loop() { |
41 | digitalWrite(ledPin, HIGH); |
42 | delay(2000); |
43 | digitalWrite(ledPin, LOW); |
44 | delay(2000); |
45 | |
46 | // Check if a client has connected
|
47 | WiFiClient client = server.available(); |
48 | if (!client) { |
49 | return; |
50 | }
|
51 | |
52 | // Wait until the client sends some data
|
53 | Serial.println("new client"); |
54 | while (!client.available()) { |
55 | delay(1); |
56 | }
|
57 | |
58 | // Read the first line of the request
|
59 | String request = client.readStringUntil('\r'); |
60 | Serial.println(request); |
61 | client.flush(); |
62 | |
63 | // Match the request
|
64 | int value = LOW; |
65 | if (request.indexOf("/LED=ON") != -1) { |
66 | sendCode("111110100010"); |
67 | digitalWrite(ledPin, HIGH); |
68 | }
|
69 | if (request.indexOf("/LED=OFF") != -1) { |
70 | sendCode("111110100001"); |
71 | digitalWrite(ledPin, LOW); |
72 | }
|
73 | |
74 | // Set ledPin according to the request
|
75 | //digitalWrite(ledPin, value);
|
76 | // Return the response
|
77 | client.println("HTTP/1.1 200 OK"); |
78 | client.println("Content-Type: text/html"); |
79 | client.println(""); |
80 | client.println("<!DOCTYPE HTML>"); |
81 | client.println("<html>"); |
82 | client.print("Led pin is now: "); |
83 | |
84 | if (value == HIGH) { |
85 | client.print("On"); |
86 | } else { |
87 | client.print("Off"); |
88 | }
|
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.