Du bist nicht mit dem Internet verbunden.
Inspiration

Bau dir eine automatische Rauchmaschine an der Tür

Wir erlauben uns einen Scherz. Wann immer sich eine Tür öffnet, soll die ein- oder austretende Person von einer Rauchmaschine eingenebelt werden. Du willst das auch können? Oder willst du jedes Mal einen filmreifen Auftritt hinlegen, wenn du nach Hause kommst? Wir zeigen dir, wie es geht.

Das Touch Board von Bare Conductive ist eigentlich recht cool. Vor allem, weil es viel recht spezifisches Zubehör mitliefert. Unter anderem ist da die elektrizitätsleitende Farbe, von der wir sonst grad nicht wissen, wo wir sie herbekommen sollten. Ist wahrscheinlich nicht so schwierig, die zu finden, aber wenn wir sie grade mitgeliefert bekommen, dann ist das praktisch.

Touch Board Starter Kit (ATmega32u4)
CHF 129.–
Bare Conductive Touch Board Starter Kit (ATmega32u4)

Verfügbarkeit

Postversand

  • nur noch 4 Stück
    in unserem Lager

PickMup

Abholen

  • Basel: Morgen um 13:10
  • Bern: Morgen um 12:45
  • Dietikon: Morgen um 14:30
  • Genf: Morgen um 13:30
  • Kriens: Morgen um 11:20
  • Lausanne: Morgen um 15:40
  • St. Gallen: Morgen um 15:30
  • Winterthur: Morgen um 13:30
  • Wohlen: Morgen um 11:00
  • Zürich: Morgen um 12:30

Bei sofortiger Bestellung.
Alle Angaben ohne Gewähr.

Details anzeigen

Was kannst du damit machen? Allerlei. Hersteller Bare Conductive liefert zwar keine Betriebsanleitung mit, hat aber auf seiner Website einige erste Bauprojekte veröffentlicht, die nachgebaut werden können. Mit Kindern.

Tja…

Das können wir besser.

«Yo, ich hab hier eine Rauchmaschine», sagt mir Produktmanager Quentin Aellen, in seiner Freizeit leidenschaftlicher Bastler.

Besser.

Der Plan:

  • Wir bauen uns eine automatisierte Rauchmaschine
  • Wir montieren das ganze Setup an einer Tür im Büro
  • Unsere Mitarbeiter werden eingenebelt
  • ???
  • Profit

Das Setup

Für dieses Bauprojekt verwenden wir nebst dem Touch Board folgende Bauteile.

VDL400SM2
CHF 48.–
HQ Power VDL400SM2
Kleine, funktionstüchtige Nebelmaschine mit einem externen Controller
1

Verfügbarkeit

Postversand

  • 8 Stück
    in unserem Lager

PickMup

Abholen

  • Basel: Morgen um 13:10
  • Bern: Morgen um 12:45
  • Dietikon: Morgen um 14:30
  • Genf: Morgen um 13:30
  • Kriens: Morgen um 11:20
  • Lausanne: Morgen um 15:40
  • St. Gallen: Morgen um 15:30
  • Winterthur: Morgen um 13:30
  • Wohlen: Morgen um 11:00
  • Zürich: Morgen um 12:30

Bei sofortiger Bestellung.
Alle Angaben ohne Gewähr.

Details anzeigen

Arduino Compatible 5V Relay
CHF 9.75
Hyperion Arduino Compatible 5V Relay

Verfügbarkeit

Postversand

  • ca. 2-4 Tage
    3 Stück versandbereit ab externem Lager

Abholen

  • Alle Standorte: ca. 3-5 Tage
    Aktuell 3 Stück beim Lieferanten an Lager

Bei sofortiger Bestellung.
Alle Angaben ohne Gewähr.

Details anzeigen

Vorausschicken möchte ich auch, dass weder Quentin noch ich Experten der Elektrotechnik sind. Wir sind Bastler. Wenn dir also wichtige Sicherheitshinweise einfallen, oder grobe Patzer auffallen, dann lass es uns doch in einem Kommentar wissen. Auch technisches Hintergrundwissen ist eher Mangelware in unserem Labor, das eigentlich ein Sofa ist, wo andere manchmal zu Mittag essen.

Die Nebelmaschine

Aus der Box wird die Nebelmaschine per Druckknopf aktiviert. Das ist ein ganz normaler Schalter, vergleichbar mit einem Lichtschalter oder sonst einem Knopf. Du drückst, der Kontakt zwischen Strom und Maschine wird hergestellt, Rauch kommt aus der Maschine.

Ein Kabel ist hier die Erdung, die wir vorsichtshalber abkleben, damit keine offene Kontakte da sind

Da der Knopf aber zu altmodisch ist, schrauben wir den ab und stecken die Kabel in ein Relais. Dieses Relais wird, einfach gesagt, den Knopf drücken sobald es mit Strom versorgt wird. Die Logik sieht so aus.

Tür öffnet sich → Strom fliesst aus Touch Board → Relais wird aktiviert → Rauch

Dazu müssen wir den ganzen Mechanismus der Rauchmaschine verändern. Also Knopf weg, Relais rein.

Der Druckknopf wird durch ein Relais ersetzt

Dazu stellen wir sicher, dass die Rauchmaschine nicht an den Strom angeschlossen ist und schrauben dann den Druckknopf auf. Die Kabel, die mit dem Drückmechanismus verbunden sind, entfernen wir. Das geht alles ganz leicht.

Da im Relais nur zwei Kabel verbaut werden können, der Knopf aber drei hat, müssen wir herausfinden, welches Kabel die Erdung ist. Denn dieses wird nicht gebraucht, um den Stromkreis zu schliessen. Die Erdung haben wir mit Panzertape abgeklebt. Scheint uns sicher genug.

Damit sind die Modifikationen an der Nebelmaschine abgeschlossen. Wenn du vorsichtig mit dem Knopf warst, kannst du die Nebelmaschine easy wieder in ihren Ursprungszustand versetzen.

Das Touch Board

Klein, aber fein. Das Bare Conductive Touch Board

Das Touch Board selbst ist recht simpel gestaltet. Such dir einen Pin aus, an dem du die Klammer befestigst, die das Relais aktivieren wird und merk dir die Zahl. Mehr gibt es hier nicht zu tun.

Den Code laden wir dann via USB-Connector direkt auf das Touch Board und fertig. Wir haben uns Pin 10 ausgesucht. Jeder Pin tut es, aber im Code wird Pin 10 vorgegeben, weshalb wir uns gedacht haben «Ja, passt schon».

Unser fertiges Setup sieht so aus

Dazu haben wir auf eine Rolle Malerband die schwarze Elektroleitfarbe aufgetragen. Pinsel sind im Starterset glücklicherweise mitgeliefert, das Malerband mussten wir uns separat besorgen. Dann eine Klammer ans Tape und die Sache ist Betriebsbereit.

Bis hierhin war alles vergleichsweise einfach. Der schwierige Part war die Sache mit dem Code. Denn beim Bau der Hardware mussten wir einfach den Lautsprecher am Setup mit der Relais-Konstruktion ersetzen und fertig.

Der Code

Weder Quentin noch ich sind grosse Coder, aber wir haben das in einem Nachmittag hingekriegt

Da wir nicht nur Bastler sondern auch faul sind, gehen wir die Bauanleitungen auf Bare Conductives Website durch. Gibt es da was, das wir einfach anpassen können? Weil klar, mit genug Zeit und Arbeit könnten wir easy den Code selber schreiben, aber wenn da schon etwas ist, das wir nur anpassen müssen, dann ist das doch besser.

Gesucht? Gefunden!

Das Originaltutorial spielt eine MP3-Datei auf einem Speaker ab, wenn der Code die Nähe eines Objekts feststellt. Im Video ist das eine Hand. Bei uns wird das die Tür.

Ein Blick in den Code zeigt: Das geht.

Die Touch Boards von Bare Conductive sind im wesentlichen Arduino Minicomputer. Daher akzeptieren sie Code in den Sprachen C und C++. Den Code, den wir verwenden, ist in C++ geschrieben, was aber nicht heisst, dass du der grösste Coder aller Zeiten sein musst. Quentin und ich haben das in einem Nachmittag hingekriegt, sind dann ambitioniert geworden und haben noch einen Nachmittag investiert, was aber nur wenig gebracht hat. Nichts, um ehrlich zu sein.

Ursprünglich haben wir uns einen Code ausgesucht, der auf Berührung reagiert. Das war aber ein Denkfehler, denn die Tür berührt die Türschwelle nicht. Aber weil wir schon dabei waren, haben wir weiter mit dem Codeschnipsel gearbeitet. Unser grosses Problem war, dass wir einen Loop erstellen wollten, der folgende Funktion hat: Türe auf → Zwei Sekunden Rauch → Aus. Der Grund dafür ist, dass die Türe etwa zehn Sekunden offen steht, wenn immer jemand das Büro betritt. Das wäre etwas zu viel Rauch. Wir fürchten uns davor, den Rauchmelder im Gang auszulösen. Dann müsste das Büro evakuiert werden und wir würden vom Chef zusammengestaucht werden.

Um das zu erreichen, wollten wir einen Loop erstellen. Im Programmieren ist ein Loop ein Befehl, der mehrfach hintereinander ausgeführt wird. Und das kann so aussehen:

int test () {
   // Deklarieren der Variable. Sie zählt für uns, bis Variable i den Wert 20 erreicht:
   int i = 10;

   // Während der Loop arbeitet
   while( i < 20 ) {
      cout << "i liegt aktuell bei: " << i << endl;
      i++;
   }

   return 0;
}

Der Code oben würde zehn Zeilen Text ausgeben: «i liegt aktuell bei: » gefolgt von 10, 11, 12 und so weiter, da i++ nach jeder Zeile Text den Wert von i um 1 erhöht. Das geht dann so lange weiter, bis i = 20 ist. Dann beendet sich der Loop und fertig.

Etwas in dieser Richtung wollten wir für die Rauchmaschine. Also sowas in der Art:

int test () {
   // Deklarieren der Variable. Sie zählt für uns, bis Variable i den Wert 20 erreicht:
   int i = 10;

   // Während der Loop arbeitet
   while( i < 11 ) {
      digitalWrite(CH10, LOW);
      delay(2000);
      i++;
   }

   return 0;
}

Wir wissen bis jetzt nicht genau, warum unser Loop-Projekt nicht funktioniert hat. Der obige Schnipsel stammt nicht aus dem Code, den wir versucht haben, also ist es gut möglich, dass ich das Problem grade gelöst habe. Wahrscheinlich aber nicht, denn mir scheint, als ob ich irgendwo i wieder auf 10 setzen müsste. Das würde den Loop aber erneut auslösen und wir wären endlos im Loop gefangen.

Wenn du das hinkriegst, dass wir via Loop zwei Sekunden Rauch machen können, dann schreib uns den Code doch bitte in einen Kommentar unten.

Unsere Lösung ist etwas simpler. Sie funktioniert zwar codeseitig, aber die Umsetzung hat doch einige Macken.

// reading liest die Distanz zwischen Objekt und Elektrofarbe aus
int reading = MPR121.getBaselineData(ELECTRODE)-MPR121.getFilteredData(ELECTRODE);

if (reading < 20) {
    digitalWrite(CH10, LOW); // LOW = Maschine an
    delay(2000);
  }

if (reading > 20) {
    digitalWrite(CH10, HIGH); // HIGH = Rauchmaschine aus
} 
}

Den gesamten Code kannst du in unserem GitHub Repository nachlesen.

Die Tücken der Praxis

Das Setup funktioniert. Eventuell ist es nicht das sicherste Setup aller Zeiten und der Code scheint uns etwas wacklig. Er funktioniert zwar, aber wir sind uns abschliessend sicher, dass das besser gelöst werden könnte. Womit mir aber nicht gerechnet haben, ist die Realität.

Die Installation an der Tür war einfach, die Verkabelung mit Kabelrolle ebenfalls. Dann kommen die Lichtverhältnisse ins Spiel. Jede Wolke, jedes eingeschaltete oder ausgeschaltete Licht, jede Person, die an der Tür vorbeigeht, verändert das Licht und somit den Messwert unseres Setups. Das Resultat: Zufälliger Rauch dann und wann wieder. Dafür aber, so als Ausgleich: Kein Rauch, wenn da Rauch sein sollte.

Angepasst werden könnte das locker im Code. Im obigen Schnipsel ist das die Zahl 20. Wenn du das Projekt also an deiner Tür umsetzen möchtest, dann ist das der Wert, mit dem du rumspielen solltest, um das bestmögliche Resultat zu finden.

Kleine Randbemerkung: Die meisten Rauchmelder sollten vom Rauch der Rauchmaschine unbeeindruckt bleiben. Sollten.

Ferner kenn ich dich, lieber Leser, doch schon ein wenig. Du fragst dich bestimmt «Und wo ist jetzt der Sinn der Sache?» Einfach.

Wir haben das gemacht, weil wir können.

Am Ende haben wir unsere Mitarbeiter eingenebelt, herzlich gelacht und ich habe einen Text geschrieben. Wir haben mit dieser Bastelei nicht nur unsere C++-Kenntnisse aufgefrischt, sondern den Alltag unserer Mitarbeiter – und hoffentlich deiner – etwas lustiger gestaltet.

Jetzt bist du dran: Mach was! Viel Spass!

Das könnte dich auch interessieren

IMG_010421.jpeg
Inspiration
Raphael Knecht

Raphael Knecht

Teamleader Heimdall

Benutzerprofil
  • 43 22

Arduino for dummies – mein erstes (vorprogrammiertes) Mal

User

Dominik Bärlocher

Journalist. Autor. Hacker. Meine Themen haben meist mit Android oder Apples iOS zu tun. Auch die IT-Security liegt mir am Herzen, denn in unserer Zeit ist der Datenschutz keine Nebensache mehr, sondern eine Überlebensstrategie.

12 Kommentare

User markuslaeng

"... Unter anderem ist da die elektrizitätsleitende Farbe, von der wir sonst grad nicht wissen, wo wir sie herbekommen sollten...." Schon mal bei digitec.ch gekuckt?

Bare Conductive Electric Paint 50ml

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

User MakeAppsNotWar

Schon Traurig von nem Digitec Mitarbeiter...

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

User Aurel Stevens

springfieldfiles.com/albums...

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

User fumo

Der Produktmanager kennt das Sortiment nicht? Da hilft auch kein Simpsons Zitat als Rechtfertigung.

31.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

User i3runo

Die müssen das ganze Sortiment gar nicht kennen. Für dass haben sie ja uns! ;D

20.09.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.

User treloid

playground.arduino.cc/Code/...

Ich würde mit dieser Methode prüfen wie lange euer Wert über 20 ist. Im Stil von "Mach erst Rauch, wenn der Wert 300ms lang über 20 war".
Sollte funktionieren :-)

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

User Quentin Aellen

Danke für die Info, wir hatten etwas Probleme mit dem Code, funktionierte aber letzten Endes. Nun haben wir einen weiteren Grund unsere Kollegen erneut zu vernebeln...

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.

User yokai

Man könnte einen weniger Lichtabhängigen Sensor nehmen. z.B einen Ultraschallsensor, oder den Lichteinfall mit einer Fotodiode kompensieren. Es scheint allerdings das Ziel zu sein, dieses Board und Sensor zu benutzen. Wie wär's dann mit einer anderen Anwendung? z.B Rauchdauer über Berührung steuern

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.

User markuslaeng

Was soll den das Gemotze?! Entspannt Euch Mal. Erstens kann nicht jeder alles wissen und zweitens wurde das Produkt evt erst nach dem Artikel hinzugefügt... ich fand's nur witzig. Aber ist doch völlig irrelevant...

31.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.

User sgt_bear

Cooles Projekt, Arduino ist wirklich super. Arbeite sehr viel damit. Nicht das es eine Rolle spielt, aber beim Code hätte man Statt INT auch den Datentyp BYTE verwenden können, da ein byte (0-255) vollkommen reicht und weniger Speicher und Prozessorleistung braucht als ein INT (-32,768 bis 32,768)

21.09.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.

User Danisumi

Geniale Idee. Noch besser, habe endlich eine neue Fotoidee, die Rauchmaschine ist ja richtig verlockend für diesen Preis, danke dafür!!!

30.08.2017
Missbrauch melden

Du musst dich anmelden um einen Missbrauch zu melden.

Du musst angemeldet sein, um auf einen Kommentar zu antworten.


Bitte melde dich an.

Du musst angemeldet sein, um einen neuen Kommentar zu erfassen.

Corporate logo