Vernetzter Personenscanner

Im Rahmen des diesjährigen, sehr technisch und futuristisch geprägten Theaterstückes unserer schuleigenen Theatergruppe “EigenSinn”, wurden zwei andere Schüler und ich beauftragt einige Requisiten anzufertigen. Unter anderem ein Scan-System, das das Publikum beim Eintreten in den Theatersaal scannt und so direkt in eine futuristische Stimmung versetzt.

Funktion:

Die Zuschauer sollten einzeln in eine große rechteckige Box treten. Dort wurden sie von einem Techniker mit einer Fernbedienung gescannt. Entweder ertönte ein „bling“ Sound und die in der Box und Fernbedienung verbauten LED-Streifen signalisierten durch ein grünes Aufleuchten, dass keine Fehler festgestellt wurden und die Person eintreten darf. Bei ungefähr jeder fünften Person jedoch signalisiert ein Fehlergeräusch und ein rotes Aufleuchten einer Warnlampe einen Error. Diese Person durfte nun nicht eintreten und musste die Box verlassen und erneut gescannt werden.

Vorüberlegungen:

Bei der Konzipierung dieses Projektes entschieden wir, dass wir in der Box einen Raspberry Pi verwenden, da dieser das Wiedergeben von Audiodateien relativ einfach macht. Zudem ist er WiFi fähig, was es ermöglicht, ihn per Fernbedienung umzuprogrammieren.

Scanner:

Bauteile:

  • NodeMCU (esp8266)
  • 5 Neopixel LEDs
  • Levelshifter
  • Pushbutton
  • 9V Block und Stecker
  • DC-DC Step-down converter
  • 3D gedrucktes Gehäuse

Wir entschieden uns für den NodeMCU, da dieser sehr günstig ist und sowohl WiFi fähig ist, als auch die verwendeten Neopixel ansprechen kann.

Aufbau:

Der NodeMCU wurde über den Stepdown Konverter mit dem Stecker für den 9V Block verbunden. Der Spannungsregulierer wurde auf 5V eingestellt. Die Stromversorgung der Neopixel sowie die des Levelshifters wurden ebenfalls mit dem Stepdown Konverter verbunden. Dann wurde das Datenkabel der Neopixel über den Levelshifter mit dem NodeMCU verbunden. An diesen wurde dann noch ein Pushbutton angeschlossen.

Box:

Bauteile:

  • Raspberry Pi 3B
  • 2 DC-DC Step-down Converter
  • LED-Streifen und dazugehörige Stecker
  • 12V Buchse
  • 3 IRLB MOSFets
  • Jogurt Eimer als Gehäuse

Aufbau:

Da die LEDs eine Spannung von 12V benötigen, wird als Stromversorgung ein 12V Netzteil verwendet, welches mindestens 4A bereiststellen kann. Da der Raspberry Pi nur 5V benötigt, werden zwei parallel geschaltete Step-Down Konverter verwendet, um die 12V des Netzteils auf die 5V des Raspberrys zu transformieren. Die Parallelschaltung der 2 Converter wird verwendet, um die Hitzeentwicklung möglichst gering zu halten, da sich die Konstruktion in einem geschlossenen Gehäuse befindet.

Für die Ansteuerung des analogen LED-Streifens werden 3 IRLB MOSFETs genutzt. Diese dienen als Amplifier und verstärken das vom Pi ausgegebene PWM-Signal. Hierdurch können im nächsten Schritt die einzelnen Farben angesteuert werden.

Funktionsweise:

Der Raspberry Pi öffnet ein WiFi Netzwerk (Tutorial) und startet das Python Programm, sobald er Strom bekommt: Der ESP8266, welcher in der Fernbedienung verbaut ist, verbindet sich anschließend mit dem Pi durch das aufgespannte adhoc Netzwerk.

Das auf dem Pi laufende Programm verwendet das Python-Framework bottle um einen Webserver zu starten. Dieser eröffnet zwei (bzw. drei) verschiedene Routen, die bei einer GET-Anfrage an diese die jeweils richtige Audio-Datei abspielen und die Farbe der LEDs ändern.

Die LEDs werden via PWM angesteuert. Hierfür wird pigpiod verwendet, welches PiGPIO als Daemon im Hintergrund startet. Mit PiGPIO kann man die einzelnen Pins des Pi steuern. Es kann wie folgt installiert werden:

sudo apt-get install build-essential unzip wget
wget http://abyz.me.uk/rpi/pigpio/pigpio.zip 
unzip pigpio.zip 
cd PIGPIO 
sudo make install

Nachdem man PiGPIO mit dem Befehl

sudo pigpiod

gestartet hat, kann man nun mit dem Befehl

pigs p <PIN> <HELLIGKEIT>

die einzelnen Farben der LEDs ansteuern.

Code für Server auf RaspberryPi

Code für ESP8266

IMG_20190511_191531


Hinterlasse eine Antwort