Day 13: Smart Switch for Soundboard

Today we will find again a 1 kOhm resistor hidden behind the door of the Advent calendar. But we are not going to use it today. Instead I would like to show you how you can build a smart touch switch. We will use a simple setup that is made up of four loose hanging wires as touch buttons and a wire jumper to pin 23.

Vier gelbe Drähte als Touch-Buttons

Four yellow wires serving as touch buttons

Our experiment today is special for its program, which you should activate now on the configuration page. Once enabled, you will notice that the status LED flashes briefly and then turns off, because the board is again running in the power-saving deep-sleep mode. It will not wake up after certain time however. It will wake up only, when you touch one of the touch buttons. The board then sends information via the touch button to the broker who triggered the wakeup. It will look something like this:

{"cmd":"get_touch_state","pin_name":"Touch4″,"pin_id":6,"pin_nr":14,"pin_state":true}

While the connection is being established, you can see that the status LED is flashing green. Once the data is sent, the LED is lit green, which indicates that sending was successful. If the LED is red, sending did not work. The board goes back into deep-sleep mode immediately after that. The system is very energy efficient so that you could power the board by batteries and place the smart switch anywhere in your flat.

Note: Simply pull out the wire jumper from pin 23 and reset the board to leave deep-sleep mode and switch to normal mode.

The smart switch itself is something special. We are going to connect the switch with Node-RED and an application. We will use the audio-out node once more in today’s Node-RED flow, but this time we need it to play audio files, too. First of all, import today’s flow; and, do not forget, disable previous flows and enter your personal ID instead of the [PID] placeholder.

Der Flow des heutigen Tages

Today’s flow

Check out and discover the functionalities of the individual buttons. But before that, turn down the volume of your speakers.

9 Comments

  1. Bernd

    Es hat alles so funktioniert wie beschrieben. Die Sounddateien waren auch alle auf Anhieb (wieder?) da. Zum Unterbrechen der Sounddateien war der Tipp von Paulaner (Reload Dashboard) wertvoll :-) Mit angefeuchteten Fingern war die Empfindlichkeit dann auch hinreichend gut.

    Mir ist es übrigens nicht gelungen, auch mit nachinstallierten Nodes, ein lokales Audio-File (WAV, MP3) abzuspielen. Hat jemand eine Anleitung oder Beispiel dafür?

    Reply
  2. Marco81

    Eine Audiodatei ist nicht mehr verfügbar. Alternativ habe ich diesen Link gefunden (wer Wert drauf legt). ;-)
    http://www.rosswalker.co.uk/movie_sounds/sounds_files_20150201_1096714/2001_and_2010/cantdo.wav bei sorry dave.

    Reply
  3. Ulrich

    Bis jetzt hat alles bestens funktioniert. Schade nur, dass "HiveMQ" die "try-out"-Seite seit gestern gesperrt hat und man jetzt eine kostenpflichtige Version kaufen muss. Die haben wohl gemerkt, dass alle Conrad-Adventskalender-Nutzer auf der Seite unterwegs sind und sofort Dollar-Zeichen in die Augen bekommen.

    Reply
    1. Mirko

      Man kann die Websocket Demo noch unter
      http://www.hivemq.com/demos/websocket-client/
      finden.

      Reply
  4. Maik

    Bei mir funktioniert das "touchpad" auch nur zufällig. Über das UI im Browser funktioniert es einwandfrei.
    Kann man die audiowiedergabe auch abbrechen? Grad bei article sehr nervig weil das einfach ewig geht. Kann ich selbst auch andere audios importieren?

    Reply
    1. paulaner

      Hallo,

      abbrechen meines Wissen nur mit Seite neu laden, F5 oder Kreissymbol.

      Eigene Wave, schau mein Bild, in 'Dog' und 'Eastwood' verbergen sich die Links zu den Wave’s.

      Reply
  5. paulaner

    Hallo,
    ich habe etliches versucht und hier mein Fazit.

    Der Link zu 'Dave', 'Sorry Dave' funktionierte nicht, 2001 Odyssee, darum hab
    ich gleich mal Clint genommen.

    Da ich annahm, ich verschiebe das Potential beim Berühren der Sensoren nach GND,
    habe ich die Emfindlichkeit in den 'General Settings' des NodeESP auf 5 runter
    gezogen. Das Berühren der Drahtenden an GND war dann auch nicht der Bringer.
    Es startete zufällig irgend eine Datei, meist 'Last Article'.

    Also versuchte ich es gegen Plus. Damit der Eingang nicht volles Pluspotential
    erhält (3.3V) habe ich den 1K Widerstand dazwischen.
    Aber das ging schon besser, es uß ja nicht immer einn Sensor sein, ein 'Taster'
    tut es auch, gerade wenn der Sensor so nicht 100% funktioniert.

    Der Hautwiderstand beträgt normalerweise so um die 2-2.5 kOhm. Der
    Übergangswiderstand (Berührungs-) ist ~10MOhm und bei jeden in in jeder
    Situation verschieden.

    Also ein bischen versuchen ist angesagt.
    Schade auch das sich die Empfindlichkeit der Sensoren nur global, also für alle einstellen läßt und nicht für jeden Eingang/Sensor getrennt.

    Reply
  6. Martin Klein

    Bis Tag 12 hat alles perfekt funktioniert.
    Aber im Tag 13 Pojekt kommen keine Audios. Touch Empfindlichkeit habe ich auf 49 gestellt (weiter rauf trau ich mich nicht weil sich dann ev. das Board aufhängt – siehe Kommentare Tag 6).
    Wenn ich einen der Drähte berühre blinkt die Grüne Lampe 2 mal, dann geht sie für 10 Sekunden aus dann leuchtet sie konstant grün. Aber kein Sound…
    Viele Grüße
    Martin Klein

    Reply
    1. paulaner

      Berühren, ist ein Thema für sich, zeigt sich bei einer kurzen Berührung, das Verhalten des Aufwachens des NodeESP (grüne LED blinkt hell) aber es wird nichts übertragen.

      Man sollte den Kontakt etwas länger betätigen.

      Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.