INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Nerv Weckbox für "Verschläfer"
10.01.2019, 12:53
Beitrag #1
Nerv Weckbox für "Verschläfer"
Was ich möchte:

Einen WLAN-gesteuerten Lautsprecher der mit der tone() Funktion über eine For-Schleife einen nervigen Ton abgiebt.

Code:
void nervShawn(){
for (int i = 50; i < 500;i++){
tone(14,i,500);
delay(10);}

for (int i = 500; i > 50;i--){
tone(14,i,500);
delay(10);}
}

Die tone() Schleife soll durch einen Button, auf einer Webseite, gestartet und beendet werden können.

Die tone()-Schleife soll durch einen Taster, am Gerät, beendet werden können.

Die Veränderungen (An / Aus / Taster wurde betätigt) sollen auf der Webseite angezeigt werden. (Mann will ja wissen ob der "Verschläfer" sich zu dem Taster bewegt hat)


Was ich schon weiß:

Das HelloServer-Beispiel, macht auf mich einen guten Eindruck um damit zu starten.

Ein Button muß anscheinend ein Link sein (Button innerhalb von a mit href).



Was ich nicht weis:

1.) Wie ich mit server.on eine oder mehrere Funktion/en aufrufe.
2.) Für was die Klammern in diesem Fall gut sind.
[] ist doch ein Array..aber was kann man da mitgeben?
Was kann mann () mitgeben?


Code:
server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });


3.) Wie kann ich eine For-Schleife durch einen Button abbrechen (interrupt)?
4.) Wie bekomme ich in "Echtzeit" eine Rückmeldung an die Webseite das der Taster betätigt wurde?

Was ich habe:

ESP8266 NodeMcu
Lautsprecher
Netzteil
Kabel
WLAN
no-ip eingerichtet in der Fritzbox
Einen "Verschläfer" der seine 2te Abmahnung kassiert hat.

Was ich nicht brauche:

Indisch-Englische Tutorial-Links
Einen "Verschläfer" mit einer Kündigung.



Danke im voraus.

MfG
Jones
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 13:25
Beitrag #2
RE: Nerv Weckbox für "Verschläfer"
Wenn Du mit einem ESP8266 arbeitest, wirst Du wohl die Zeit per NTP holen.
Du brauchst keine For-Schleife, Du hast Loop als Schleife. Damit fällt das Unterbrechen der for-Schleife weg.

Der Button kann ein Link sein, aber auch über Fetch oder AJAX gesteuert werden.
Ich nehme an, dass Du die Weckzeit auch in der Weboberfläche einstellen willst.

Ob Du mit einem Lautsprecher (welcher) direkt am ESP einen "nervenden" Ton bekommst, musst Du testen. Evtl. brauchst Du noch einen Verstärker.

Wie Du am Beispiel ESP8266/AdvancedWebServer in der IDE siehst, kann man im setup() bei server.on auch Funktionen angeben.

Zur Aktualisierung der Website im Browser hast Du 2 Möglichkeiten:
a) refresh-Meta-Tag im Header der Website
b) die Nutzung von Websockets

Bei hartnäckigen Schläfern sollte der Button so weit weg vom Bett sein, dass er aufstehen muss, um ihn zu erreichen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 16:47
Beitrag #3
RE: Nerv Weckbox für "Verschläfer"
(10.01.2019 12:53)troneleck schrieb:  Einen WLAN-gesteuerten Lautsprecher der mit der tone() Funktion über eine For-Schleife einen nervigen Ton abgiebt.

Code:
void nervShawn(){
for (int i = 50; i < 500;i++){
tone(14,i,500);
delay(10);}

for (int i = 500; i > 50;i--){
tone(14,i,500);
delay(10);}
}

Die tone() Schleife soll durch einen Button, auf einer Webseite, gestartet und beendet werden können.

Das funktioniert nicht!! Wie soll der Webserver auf den Button reagieren wenn er in der for Schleife gefangen ist?

Zitat:Die Veränderungen (An / Aus / Taster wurde betätigt) sollen auf der Webseite angezeigt werden. (Mann will ja wissen ob der "Verschläfer" sich zu dem Taster bewegt hat)

Mein Ansatz:
Ntp Zeit holen
Uhrzeit per Fetch() auf der Webseite sekündlich aktualisieren, dabei den Taster Status mit übertragen.
Das ist zwar keine Echtzeit, sollte aber für diese Anwendung reichen.

Zitat:Ein Button muß anscheinend ein Link sein (Button innerhalb von a mit href).

Muss er nicht!

Schau dich mal auf meiner Webseite um, da findest du auch Button in Html Seiten die Pins auf dem Esp... schalten.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste