Tag 16: Ein Webserver Piano

Hinter dem heutigen Türchen befindet sich ein Piezzo Schallwandler. Mit ihm ist es möglich, Töne zu generieren, wie im heutigen Versuch deutlich wird. Sie basteln heute eine Art Klavier, das über eine Webseite bedient werden kann. Doch zunächst der Aufbau:

Der Piezzo richtig angeschlossen

Der Piezzo richtig angeschlossen


Wenn Sie das Programm hochgeladen haben, können Sie die Webseite des Boards über die IP im Browser öffnen. Es ist heute egal ob Sie sich über Ihr Heimnetzwerk oder über den AccessPoint mit dem Board verbinden, denn es werden keine externen Daten geladen. Auf der Webseite finden Sie dann einige Buttons mit deren Betätigung Sie einen Ton auslösen. Die Übertragung ist recht schnell, aber dennoch sollten Sie dem Board eine Viertelsekunde Zeit geben um den Ton zu spielen, bevor Sie einen weiteren Ton senden. Ansonsten hört sich der Ton sehr seltsam an. Probieren Sie doch einmal den Klassiker unter den Anfängerliedern: Alle meine Entchen. Die Töne lauten:

C D E F G G A A A A G A A A A G F F F F E E G G G G C

Die Piano Webseite

Die Piano Webseite

34 Kommentare

  1. Enno Klatt

    RPI-Nutzer

    Serieller Monitor:
    ———————-
    Error WLAN Connect
    TCP Server Activ
    ———————-
    Die IP ist 192.168.178.55 aus Fritz-Box ersichtlich
    ping okay
    ———————-
    Die Webseite erscheint in allen Browsern
    ———————-

    Aber “ … ressource: /dataonly: parameter:“
    es wird kein tone-Wert von 262 bis 523 übermittelt.

    Was ist falsch?

  2. kub0185

    Warum Funktioniert das nicht mehr wenn ich mit F12 die Developer Tools von Chrom einschaltet? Dann kommt kein Ton mehr raus?

  3. NussNinja

    Bei mir funktioniert die Website nicht. Wenn ich die IP eingebe, kommt nur dieser Text im Browser:
    Response Header parsing failed. Response Data:

    3C 48 54 4D 4C 3E 3C 48 45 41 44 3E 0A 3C 6C 69 6E 6B 20 72 65 6C 3D 22 . ..
    4E 61 6E 6F 45 53 50 20 50 69 61 6E 6F 0A 3C 2F 74 69 74 6C 65 3E 0A 3C NanoESP Piano….NanoESP Piano..Play your Song:…C (
    34 29 3C 2F 62 75 74 74 6F 6E 3E 0A 09 3C 62 75 74 74 6F 6E 20 6F 6E 63 4)..D (4) ..E (4) ..F
    20 28 34 29 20 3C 2F 62 75 74 74 6F 6E 3E 0A 09 3C 62 75 74 74 6F 6E 20 (4) ..G (4) .
    09 3C 62 75 74 74 6F 6E 20 6F 6E 63 6C 69 63 6B 3D 22 72 65 74 75 72 6E .A (4) ..B (4) ..C (5) ….
    66 75 6E 63 74 69 6F 6E 20 73 65 6E 64 46 6F 72 6D 28 76 61 6C 75 65 29 function sendForm(value)
    20 7B 0A 20 20 76 61 72 20 78 68 72 20 3D 20 6E 65 77 20 58 4D 4C 48 74 {. var xhr = new XMLHt
    74 70 52 65 71 75 65 73 74 28 29 3B 0A 20 20 78 68 72 2E 6F 70 65 6E 28 tpRequest();. xhr.open(
    27 50 4F 53 54 27 2C 20 22 2F 64 61 74 61 6F 6E 6C 79 22 2C 20 74 72 75 ‚POST‘, „/dataonly“, tru
    65 29 3B 0A 0A 20 20 78 68 72 2E 73 65 6E 64 28 22 74 6F 6E 65 3D 22 2B e);.. xhr.send(„tone=“+
    76 61 6C 75 65 29 3B 0A 20 20 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 20 value);. return false;
    2F 2F 20 50 72 65 76 65 6E 74 20 70 61 67 65 20 66 72 6F 6D 20 73 75 62 // Prevent page from sub
    6D 69 74 74 69 6E 67 2E 0A 7D 0A 3C 2F 73 63 72 69 70 74 3E 0A 0A 3C 2F mitting..}…….

  4. Athanasie

    Hab jetzt den Summer auf ein dünnes Alu-Blech geklebt (war bei nem Breadboard von Conrad dabei). Viel besserer Sound :)

  5. TryIt

    Moin Moin,

    hat jemand eine Idee warum ich die Internetseiten nicht aufrufen kann? (Mac Mini mit Sierra 10.12.2 und Safari). Das Board ist sowohl im Access Point Modus als auch im Wlan zu sehen und die IP kann ich anpingen . Der serielle Monitor gibt den Request aus, aber es kommt keine Site. War schon am Tag mit dem „Osterei“ so. Der Rest lief dann problemlos, aber die Webserver Geschichten laufen einfach nicht. Habe auch schon den Zugriff vom iPhone und iPad getestet, gleiches Resultat. Firewall ist aus.. Wäre dankbar für Tips

    1. Skayo

      Probiers mal mit dem gutem altem Chrome Web Browser!
      Hat bei mir geklappt!

  6. GiveItaTry

    Moin Moin,

    hat jemand eine Idee, woran es liegt, dass ich die Websites im Browser nicht sehe? Mac Mini mit Sierra10.12.2 Das Board mit Access Point und Wlan bekommen eine IP und im seriellen Monitor sehe ich auch den request mit id 0 ….. Ich kann das Board unter beiden Ip Adresse anpingen. Es kommt aber keine Site, egal ob über das WLAN oder den Access Point. Bis Tag 15 hat alle problemlos geklappt. Allerdings hat auch schon der erste Tag mit dem „Osterei“ nicht hingehauen.

    1. Skayo

      Probiers mal mit dem gutem altem Chrome Web Browser!
      Hat bei mir geklappt!

  7. dein Vater

    Hilfe habe seit gestern folgenden fehler:

    C:\Dokumente und Einstellungen\familie\Eigene Dateien\Arduino\webserver_piano\webserver_piano.ino:9:62: fatal error: Websites.h: No such file or directory

    #include //websites in a special file as progmem

    ^

    compilation terminated.

    exit status 1
    Fehler beim Kompilieren für das Board Arduino Nano.

    hatte das Problem auch ganz am Anfang, dann hat es bei den nächsenprojeckten gefunzt und jetzt wieder nicht

    Weiß jemand hier eine Antwort?
    Danke im foraus

    1. holy moly

      Bei mir hat geholfen die Dateien erst zu entzippen und dann das entpackte Arduino file auszuführen. So werden dann anscheinend die anderen nebenan liegenden und benötigten Dateien auch gefunden.

  8. Squonk

    Bei mir war auch nur ein Pietzo-Plättchen im Kalender. Leider klingt dieses fast garnicht – zumindest kann ich es nur schlecht von meinem Tinitus unterscheiden.

  9. m0ep

    Gut dass ich ab heute Urlaub hab, kann ich mich en bissel mehr mit dem Kalender beschäftigen. Hab mir jetzt extra neue Poti bestellt, weil das Teil was im Kalender drin ist, schon nach ZWEI Tagen über den Jordan war. Ein Beinchen hängt nur noch lustlos am Plastik. Soll man bei Conrad nächstes Jahr nachbessern.

    Nun zum heutigen „Piano“; Also dieser Piezzo Schallwandler ist echt schwer in das Board rein zubekommen. Mit ner Zange und sanften Druck gings dann rein. Klingt aber eher nach 56k Modem als an ein Piano (Neue Projekt Idee? :D)

    Versteh aber noch nicht so ganz, warum ich mich zwar zu meinen Repeater bzw. über den Gastzugang ins WLAN anmelden kann, aber nicht direkt ins normale WLAN direkt vom Router. Einziger Unterschied den ich bisher festgestellt habe war die SSID. Mal die nächste Tage testen :/

  10. Paulaner

    Ich habe langsam den Eindruck unser Freund hat bei Microsoft gelernt und läßt uns die Entwicklungsarbeit machen.

    Wenn es bei 100 von 1000ten funktioniert ist etwas im Argen.

    Auch wenn der serielle Monitor mit beiden IP-Adressen funktioniert kommt kein Ton raus. ESP blinkt, aber der ‚Nano‘ und die 20ig Pizo’s sagen nix. Auch ein passiver Buzzer an Pin 8 nicht. Das hier erwähnte ‚Testprogramm‘ funktioniert.

    Enttäuschend.

    1. Dieda

      Ich musste in Zeile 68 den Wert 5 auf 16 ändern (Win10pro):
      if (method == GET) strTone = parameter.substring(6); else strTone = parameter.substring(16); //get note values

      1. Jonathan

        Danke, hab ich auch so geändert und schon funktioniert es.
        Bin zufrieden, aber was macht der Parameter?

        1. Dieda

          Er übergibt einfach die Position im String ab da bis zum Ende der Wert ausgelesen wird.
          Zu lesen hier: https://www.arduino.cc/en/Tutorial/StringSubstring
          Die Ausgabe im SerialMonitor war ‚New Request from id :0, method: POST, ressource: /dataonly parameter:
          +IPD,0,8:tone=330‘
          Also von vorne angefangen zu zählen und 15 war dann die richtige Position. Ich weiss leider nicht warum bei anderen nach dem letzten Doppelpunkt mit zählen angefangen wird.

          1. Jonathan

            Danke für Erläuterungen.

  11. Detlef Redante

    Ich bekomme weiterhin die „TCP Server Error“ Meldung :(

    1. Hansi

      Wo bekommst Du diese Meldung? Am Browser oder am Serial-Monitor?

      1. Detlef Redante

        am Serial Monitor

    2. Stefan

      Nach langen hin und her hab ich endlich diesen Versuch ohne TCP oder WLAN Errors hinbekommen. Verbunden ist der NanoESP via Gästenetzwerk meiner Fritzbox. Die Lösung für die Fehlermeldungen war, das ich mir die Mac Adresse vom NanoESP anzeigen lasse, das Netzwerk neustarte, dann in der Fritzbox unter Heimnetzwerk -> Verbindungen als Gerät neu hinzugefügt habe. Im Gastzugang hab ich auch festgelegt, das die Geräte untereinander kommunizieren dürfen. Nach Einwahl auf den Webserver lief gerade erstmals auch dieser Versuch!

  12. Michel2016

    Hier auch, da konnte man nur bei absoluter Stille einen Ton hören.

    1. Hansi

      Schaut aus als wärst Du wieder im Rennen. Was war jetzt mit Deinem NanoESP?

  13. Mo

    Zwischen X und Pin D8 kann ich nix messen so kann es auch nicht funktionieren. Der Sketch upload ging ohne murren aufs Prezlboard, der Monitor Reagiert auf eingaben und schreibt Fleißig mit.

    Hat vieleicht noch jemand ne IDEE ?

  14. Lennart

    Geht mal wider nicht! Piezo macht kein Ton! Im seriellen Monitor und auf dem Board kann man aber ganz klar sehen dass die Meldung/Aufgabe einging. Also müsste die Programmierung ja stimmen… An was könnte das liegen? Hoffe ihr könnte mir helfen! :)

    1. Tom Janssen

      Ich habe mal aus dem Ordner „Beispiele/02. Digital“ des Arduino-Programms die Datei „BlinkWithoutDelay“ etwas modifiziert. Damit kann man zumindest ohne den WebServer testen, ob der Piezowandler funzt (siehe auch in meinem Blog):

      if (ledState == LOW) {
      ledState = HIGH;
      tone(8, 400, 1500);
      } else {
      ledState = LOW;
      noTone(8);
      }

  15. Mo

    Bei mir piepst es nicht :-(

    Selbst wenn ich direkt spannung 3V drauf gebe nix, müsste dann eigentlich nicht was zu hören sein ?

    1. fk (Beitrag Autor)

      Wenn du ihn direkt an Gleichspannung anlegst kannst du höchstens ein kurzes knacken hören. Töne entstehen nur bei Veränderungen der Spannung.

  16. bernd

    ja von „piano sound“ kann man kaum reden. hatte aber schwierigkeiten die dünnen Drähtchen an dickere Beinchen zu löten um überhaupt kontakt mit dem steckbrett zu kriegen.The access point address still responds „no answer“

  17. Forscher 2016

    Gestern wurde Blynk auf den Android-Systemen erneut aktualisiert. Das Senden des AUTH TOKENs funktioniert jetzt erfreulicherweise wieder so, wie vor dem letzten Update: Man klickt auf das hexagonale Symbol und dann erscheint sofort ein Feld „AUTH TOKENS Email all“.

    Kennt sich eigentlich jemand mit Blynk so gut aus, dass er mir erklären kann, warum jedes Projekt ein eigenes AUTH TOKEN benötigt („…Auth Token is a unique identifier which is needed to connect your hardware to your smartphone. Every new project you create will have its own Auth Token.“) Das erscheint mir etwas merkwürdig, da doch bei der Blynk-App immer nur ein Projekt gleichzeitig laufen kann und das AUTH TOKEN wird ja schliesslich durch das Einbinden in das ARDUINO-Programm (*.ino) fest mit dem IoT-Bord verknüpft, so dass es insgesamt eigentlich keinerlei Zuodnungsprobleme geben dürfte. Seltsam, nicht wahr?

    1. A.H.

      Man kann in Blynk schon mehrere Projekte gleichzeitig laufen lassen: Erstes Projekt wie gewohnt starten, dann das „Home“ links oben (links vom Projekt-Namen) tippen, dann aus das zweite Projekt swipen und das ebenfalls starten.

  18. Naseweis

    Bei mir war nur so ein Piezo-Plättchen aus einer Armbanduhr drin. Das klingt ohne ein Gehäuse wie ein abgestochener Gockel.

    1. blaubaer

      ;-))

    2. dein Vater

      :)

Schreibe einen Kommentar zu TryIt Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.