Wie kent deze eigenaardige Amerikaanse uitvinding uit de jaren 80-90 nog? De ‘Clapper’.  Dit was een schakelaar die werkte door middel van te klappen.

Ondertussen achterhaald door de moderne techniek, maar toentertijd een futuristisch stukje domotica. Mocht je hier niet bekend mee zijn, kijk dan zeker even het legendarische reclame filmpje:

Als project gaan we dit keer eens eigentijdse versie van de ‘Clapper’ maken, want hoewel het een oud concept is zijn hier tig moderne toepassingen voor te bedenken. Zeker wanneer je deze via Homeyduino koppelt aan Homey, kun je op deze manier niet alleen apparaten kunt starten maar ook ‘flows’.

Om op  deze wijze een hele reeks apparaten in één in of uit  te schakelen. Zelf heb er ik ondertussen één op de slaapkamer zodat wanneer ik klap, alle verlichting in één keer uitgaat.

Benodigdheden:

 

Wemos D1 mini – Mini NodeMcu 4M bytes | Gevonden op Aliexpress.com, thuisbezorgd en al voor € 1,77

 

Sound Detection Sensor Module Sound Sensor For Arduino | Gevonden op Aliexpress.com, thuisbezorgd en al  voor € 0,68

Geen tijd of geduld om op levering uit China te wachten? Conrad heeft het ook en levert direct vanuit Nederland!

 

Aansluitschema  

Volg onderstaand schema op de sensoren aan te sluiten op je board. Voor de volledigheid:

Sensor Wemos D1 Mini pin
OUT D2
VCC 5V
GND GND

 

Homeyduino Clapper Switch aansluitschema Fritzing | Huisvanvandaag.nl

Aansluitschema ‘Clapper Switch”

Arduino IDE

Installeer Arduino IDE, dit is de software die nodig is om de code op je Wemos D1 Mini board te kunnen zetten. Eerst moeten we hiervoor de Homeyduino Library installeren.

Open een nieuw venster, klik op de bovenste balk op Schets > Bibliotheek gebruiken > Bibliotheken beheren.

 

Arduino IDE, eerst de Homeyduino library installeren | Huisvanvandaag.nl

Arduino IDE, eerst de Homeyduino library installeren

In het scherm dat nu opent zoek je op Homeyduino en vervolgens installeer je deze.

Hetzelfde doe je ook met de volgende term: ESP8266 deze zoek en installeer je ook.

Wemos D1 Mini board

Waarschijnlijk moet je dit board eerst ook nog installeren voordat je het kunt gebruiken, dit doe je dan ook als volgt:

Ga naar: Hulpmiddelen > Board > Board Beheer.

Board installeren Arduino | Huisvanvandaag.nl

In het zoekvenster zoek je vervolgens op Wemos D1 mini en deze installeer je.

Board installeren Arduino | Huisvanvandaag.nl

 

Homeyduino Code

Wanneer je de bovenstaande stappen hebt gevolgd open je een nieuw scherm van Arduino IDE en vervang je de tekst door onderstaande code. Let er even op dat je hier de juiste netwerk gegevens invult (zie rode tekst)

Wanneer je van plan bent meerdere Sound sensoren in je huis te plaatsen is het belangrijk dat je ze allemaal een unieke naam geeft, zodat Homey ze als verschillende sensoren herkent.

// Code aangepast voor Homeyduino door Domoticablog https://huisvanvandaag.nl. 
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
// Origineel: https://en.code-bude.net/2014/12/08/how-to-build-a-clap-switch-using-arduino/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>

int soundSensor = D2;
int claps = 0;
long detectionSpanInitial = 0;
long detectionSpan = 0;
boolean ClapState = false;

void wifi() {
  if (WiFi.status() != WL_CONNECTED) {
    WiFi.begin("<SSID>", "<PASSWORD>");
    uint8_t timeout = 30;
    while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      if (timeout<1) break;
    }
    if (WiFi.status() == WL_CONNECTED) {
      //Print IP address
      Serial.print("Connected to WiFi! (");
      Serial.print(WiFi.localIP());
      Serial.println(")");
    }
  }
}
 
void setup() {
 Serial.begin(9600); 
  Homey.begin("Sound sensor"); // Kies hier de naam voor je sensor
  Homey.setClass("sensor");
  pinMode(soundSensor, INPUT);
 }
 
void loop() {
   wifi();
  Homey.loop();
  bool clap_on = !digitalRead(soundSensor); 
  bool clap_off = !digitalRead(soundSensor); 
 
  int sensorState = digitalRead(soundSensor);
 
  if (sensorState == 0)
  {
    if (claps == 0)
    {
      detectionSpanInitial = detectionSpan = millis();
      claps++;
    }
    else if (claps > 0 && millis()-detectionSpan >= 50)
    {
      detectionSpan = millis();
      claps++;
    }
  }
 
  if (millis()-detectionSpanInitial >= 400)
  {
    if (claps == 2)
    {
      if (!ClapState)
        {
          ClapState = true;
        Serial.println("Licht aan");
        Homey.trigger("clap_on",true);
        }
        else if (ClapState) 
        {
          ClapState = false;
        Serial.println("Licht uit");
        Homey.trigger("clap_off",false);
        }
    }
    claps = 0;
  }
}
Homeyduino Clapper Switch

Controleren of juiste board geselecteerd is

Voordat we de code naar het board gaan schrijven moeten we kijken of we het goede board geselecteerd hebben in Arduino IDE, anders krijg je het niet aan de praat. In ons geval is dat de “LOLIN(Wemos) D1, R2 en Mini”

Wanneer dit allemaal goed staat klikken we op het pijltje in de iconen balk (tweede icoontje van links) > Upload.

Juiste board kiezen in Arduino | Huisvanvandaag.nl

Het juiste board selecteren in Arduino

Testen

Nu het je gelukt is om de code te uploaden gaan we deze meteen testen. Dit doen we  door de Seriële Monitor in Arduino IDE te openen, klik hiervoor op Hulpmiddelen en dan Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M.

Vervolgens opent er een scherm waarop je de waardes van de sensor uit kunt lezen. Wanneer je twee keer achter elkaar klapt zou dit leesbaar moeten zijn op de  Seriële Monitor. Experimenteer ook vooral even met één of drie keer klappen, zo zul je zien dat de code goed staat en weinig tot géén valse ‘claps’ zal detecteren.

Seriële monitor Clapper Switch | Huisvanvandaag.nl

Via de Seriële Monitor kun je testen of de sensor naar behoren werkt.

 

Koppelen aan Homey 

Via de Homey app kun je nu de sensor koppelen aan Homey.

Homeyduino sensor koppelen aan Homey | Huisvanvandaag.nl

Klik op ‘Apparaten’

Homeyduino sensor koppelen aan Homey | Huisvanvandaag.nl

Klik op ‘Homeyduino’

 

Homeyduino sensor koppelen aan Homey | Huisvanvandaag.nl

Klik op ‘Arduino’

 

Homeyduino sensor koppelen aan Homey | Huisvanvandaag.nl

Klik vervolgens op ‘Installeren’

 

Homeyduino sensor koppelen aan Homey | Huisvanvandaag.nl

Kies de juiste sensor, in ons geval ‘Sound Sensor’

Homey voorbeeld flow

Homeyduino Clapper Switch Flow instellen | Huisvanvandaag.nl

Kies als ‘Trigger’ “Boolean’

Homeyduino Clapper Switch Flow instellen | Huisvanvandaag.nl

En vul hier vervolgens ‘clap_on’ of ‘clap_off’ in. De eerste keer dat de sensor klappen detecteert schakelt deze de ‘clap_on’ en bij de tweede maal ‘clap_off’.

Homeyduino Clapper Switch Flow | Huisvanvandaag.nl

Met de ‘clap_off’ ‘Trigger’ kun je een actie instellen die je wilt uitvoeren wanneer de sensor voor de tweede keer klappen detecteert. Vul hiervoor als ‘Boolean trigger’ ‘clap_off’ in.

Tot slot

Hopelijk heb je nu je eigen ‘Clapper Switch’ werkend gekregen. Mocht je hier zelf nog leuke, gekke, grappig of bijzondere toepassingen voor weten, laat dan even een reactie achter.

Enthousiast geworden en wil je voortaan niets meer missen? Schrijf je dan hier in voor de Nieuwsbrief!  

Enthousiast geworden? Deel het dan!