Inhaltsverzeichnis:

NHL Nachttisch-Hockeylicht und LCD - Gunook
NHL Nachttisch-Hockeylicht und LCD - Gunook

Video: NHL Nachttisch-Hockeylicht und LCD - Gunook

Video: NHL Nachttisch-Hockeylicht und LCD - Gunook
Video: Gemeinsam duschen 🚿😱 #SheeranShorts #Anzeige #shorts #couple 2024, November
Anonim
Image
Image
NHL Nachttisch-Hockeylicht und LCD
NHL Nachttisch-Hockeylicht und LCD

Einführung

Das "NHL Light" ist für Hockeyfans, die ihrem Team folgen wollen, aber nicht jedes Spiel sehen können. Das beste Feature ist, dass es einen Torstand mit einem Hockeyhorn (an Ihre Mannschaft angepasst) und Licht simuliert.

Zusätzlich zu Hockeyhupe und -Licht verfügt das "NHL Light" über ein Display, das den aktuellen oder letzten Spielstand, die Spielzeit oder die Uhrzeit des nächsten Spiels sowie das aktuelle Datum und die aktuelle Uhrzeit anzeigt.

Das "NHL Light" läuft auf einer einfachen Liste von Teilen, die sich leicht zusammenbauen lässt, und Code, der frei verfügbar ist.

Merkmale

  1. Webseitenbasierte Konfiguration zur Auswahl Ihres Teams und WLAN
  2. Spielt Licht und Hupe, wenn Ihr Team ein Tor erzielt (auch wenn Sie das Auswärtsteam sind)
  3. Spielt Ton, um den Beginn des Spiels anzukündigen
  4. Spielt einen Ton, um das Ende des Spiels anzukündigen
  5. Zeigt Uhrzeit und Datum des nächsten Spiels an, wenn kein Spiel im Gange ist.
  6. Zeigt die aktuelle Spielzeit und den Zeitraum an, wenn das Spiel läuft.
  7. Zeigt das aktuelle Datum und die aktuelle Uhrzeit an.

Schritt 1: Schritt 1: Montieren Sie Ihre Teile

Schritt 1: Montieren Sie Ihre Teile
Schritt 1: Montieren Sie Ihre Teile

Hier ist eine Teileliste.

  1. Raspberry Pi W*

    1. Amazonas
    2. Ich ziehe es vor, meine von Microcenter zu bekommen, kann aber an anderen Orten online für weniger Geld gefunden werden.
    3. $10
  2. SD-Karte (mindestens 4 GB)*
  3. Lautsprecher - Amazon - ~ 2 $ *
  4. Verstärker – PAM8403* – Amazon – je ~ 1 $
  5. Licht - Amazon - ~$5
  6. Fall - 1 $*

    1. Michaels
    2. Ich empfehle kleine Holz-Bastelkoffer aus Michaels Bastelladen, aber überlasse es Ihnen!
  7. I2C 2004 LCD - $3-7

    1. Amazonas
    2. Der Code unterstützt 3 Arten von LCDs, aber I2C 2004 ist diejenige, die ich als den besten Wert und die beste Größe gewählt habe. (SSD1306 ist auch möglich)
  8. 2 Transistoren - 2N2222A- Amazon
  9. Sonstige Drähte / Lötzinn12V
  10. Netzteil - Amazon
  11. 12V -> 5V Abwärtswandler - Amazon

*Bei der Auswahl dieses Teils besteht Flexibilität.

HINWEIS: Sie können den größten Teil dieses Projekts nur mit Ihrem Himbeer-Pi beginnen, während Sie auf den Versand anderer Artikel warten.

Schritt 2: Schritt 2: Verkabelung und Elektronik

Schritt 2: Verkabelung und Elektronik
Schritt 2: Verkabelung und Elektronik
Schritt 2: Verkabelung und Elektronik
Schritt 2: Verkabelung und Elektronik
  1. Licht zusammenbauen

    1. Die Verkabelung für die Leuchte soll 12+ zur Leuchte führen.
    2. Führen Sie vom Licht durch einen der Transistoren negativ aus.
    3. Der Emmeter des Transistors geht auf Masse.
    4. Der Kollektor des Transistors geht zum Raspberry Pi.
  2. Ton zusammenbauen

    1. Führen Sie den rechten oder linken Sound vom PI zum Verstärker
    2. +5V zum Verstärker laufen lassen
    3. Führen Sie die Amperemasse zum 2. Transistor.
    4. Führen Sie den Emmeter des 2. Transistors auf Masse
    5. Kollektor des Transistors zum Raspberry Pi. führen
  3. Verkabelung zum PI. konfektionieren
  4. Dies sind die Pinbelegungsanweisungen für den PI (einige davon sind über JSON konfigurierbar)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Licht 10 (GPIO15)
    4. Ton richtig - GPIO 18

Schritt 3: Schritt 3: Einrichtung der Betriebssystemsoftware

  1. Bereiten Sie den Raspberry Pi W vor

    1. Auf dem Raspberry Pi muss eine aktuelle Version von Raspbian (oder einem anderen Debian) ausgeführt werden.
    2. Es wird empfohlen, diese Anweisungen zu befolgen:
    3. Stellen Sie sicher, dass Sie die Datei wifi wpa_supplicant einschließen.
    4. Legen Sie die SSH-Datei auf die SD-Karte, um den SSH-Zugriff zu ermöglichen.
  2. Bereiten Sie die Drittanbieter-Software vor:

    1. Ich habe diesen Prozess automatisiert, um alle benötigten Tools von Drittanbietern abzurufen, aber Sie können diese auch manuell ausführen und überprüfen, um sicherzustellen, dass keine Schritte fehlschlagen.
    2. Laden Sie das folgende Skript herunter und führen Sie es aus:

Hier ist eine Aufschlüsselung dessen, was das Installationsskript zum Einrichten des Betriebssystems tut. Führen Sie diese Zeilen am besten manuell aus, damit Sie auf Fehler achten können.

Skriptkopfzeile:

#!/bin/sh -e#kann über #curl -sL aufgerufen werden https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatisiere dieses Skript mit etwas wie: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: WLAN einrichten # TODO: Passwd und autorisierte Schlüssel einrichten # Notizen:

Software auf Betriebssystemebene aktualisieren:

#apt-get stuff(apt-get update && apt-get -y upgrade) > /dev/null apt-get dist-upgrade -y #General Dev apt-get install -y git build-essential python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-imaging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

Netzwerk-Setup. Ein Teil des Ziels war hier, dass das System über einen Access Point konfiguriert werden kann, um sich mit dem eigenen WLAN zu verbinden, aber dies wurde noch nicht vollständig getestet. Derzeit wird empfohlen, die Methode wpa_supplicant zum Einrichten von WLAN zu verwenden.

#networking setupecho nhllight > /etc/hostname #TODO: Fix the /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # Hinweis: Anderes Setup erfolgt über die Konfigurationsdateien und die Shell, die als Teil des Updates heruntergezogen wurden

Knoten und Knotenbibliotheken aktualisieren

#update nodecd /tmp export nodeversion=8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0/node-v7.4.0-linux-… wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… tar -xvf node-v${nodeversion}-linux-armv6l. tar.xz cd node-v${nodeversion}-linux-armv6l rm -f *.md rm -f LIZENZ cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: Sym-Link für Knoten-Binärdatei erstellen? apt-get remove -y --purge npm node nodejs

#Node setupmkdir /opt/nhl mkdir /opt/nhl/logs mkdir /opt/nhl/horns mkdir /opt/nhl/node_modules/

#Update-Knoten

#Knotenabhängigkeiten in das nhl-Verzeichnis installieren export NODE_PATH=/usr/local/lib/node_modules

#HACK - TODO - Fix, dass lahm nicht global installiert wird

cd /opt/nhl npm install lame # lame, ist lahm, wird nicht global installiert cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #wont global install cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm install i2c-bus #wird nicht global installiert cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus #wird nicht global installiert cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #wird nicht global installiert cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #wird nicht global installiert cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH

npm install oled-font-5x7 #wird nicht global installiert

cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH

npm install onoff #wird nicht global installiert

cp -R /opt/nhl/node_modules/onoff $NODE_PATH

#npm install pm2 #wird nicht global installiert

#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #wird nicht global installiert #cp -R /opt/nhl/node_modules/express $NODE_PATH

# beliebige globale Module

npm install Express Body-Parser child_process pm2 -g

Neuesten Code abrufen:

#pull git codecd /opt/nhl #JSON ist eine einmalige Erstellung wget --no-cache -O /opt/nhl/nhl_config.json https://raw.githubusercontent.com/wga22/nodejs/ma… #wget -O /opt/nhl/NHL_work.js https://raw.githubusercontent.com/wga22/nodejs/ma… #Automatisches Skript aufrufen, um alles andere für NHL curl zu installieren -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -

Laden Sie die Hörner herunter!

#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -

Aktualisieren Sie die Raspberry Pi-Konfigurationsdateien - - müssen Sie möglicherweise für Ihr System ändern

#Konfigurationsdateiaktualisierungen#Sound hinzufügen cp /boot/config.txt /boot/config.txt.bak printf '\ndtoverlay=pwm-2chan, pin=18, func=2, pin2=13, func2=4' >> / boot/config.txt #turn on i2c printf '\n\ndtparam=i2c1=on\n' >> /boot/config.txt printf '\n\ndtparam=i2c_arm=on\n' >> /boot/config. TXT

#TODO: wird das benötigt?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules

amixer cset numid=1

#TODO: Lautstärke einstellen, 60%?

Automatisieren Sie die Automatisierung, z. B. das Booten und Code-Updates:

# update rc.local# HINWEIS: Verschieben der Datei, da die Standarddatei in der letzten Zeile einen "Exit" enthält, also nicht einfach mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local anhängen kann chmod u+x /etc/rc.local printf '#!/bin/sh'> /etc/rc.local printf '\n /etc/bootup_nhl.sh > /tmp/rclocal.log' >> /etc/rc.local printf '\n exit 0' >> /etc/rc.local

#TODO: muss etwas hinzugefügt werden, um die regelmäßigen Software-Updates wöchentlich wie folgt durchzuführen# Vielleicht einfach diese Datei direkt in den Ordner rc.weekly kopieren? rm /etc/cron.weekly/nhl_updater printf '#!/bin/sh\ncurl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -' > /etc/cron.weekly/nhl_updater chmod u+x /etc/cron.weekly/nhl_updater

Verschiedenes, wie das Einstellen der Zeitzone:

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

# Umgebungsvariable mit node_path aktualisieren

cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: Definiere dies für den Knoten self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Verwenden Sie PM2 für die Einrichtung von Knotenservern:

#TODO: Testeinrichtung PM2cd /tmp/ npm install -g pm2 pm2 Startup cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 Expose-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 speichern pm2 Start beenden 0

Schritt 4: Schritt 4: Aktualisieren Sie die JSON-Konfiguration

Richten Sie Ihre JSON-Konfigurationsdatei für das von Ihnen bevorzugte Team usw. ein. Diese Datei befindet sich in /opt/nhl GO CAPITALS! config JSON-Datei

Die Software verwendet eine JSON-Datei, um die Hardware und das Team zu konfigurieren, dem Sie folgen. Das Team kann über den laufenden Webserver eingestellt werden, aber das Hardware-Setup muss manuell eingerichtet werden:

{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }

Hier ist eine Erklärung für jeden möglichen Wert:

  • myteam: Dies ist der 3-Buchstaben-Code des Teams, dem Sie folgen möchten
  • debug: Mögliche Werte sind 1 (true) oder 0 (false) und steuern, wie viel Logging ausgeschrieben wird.
  • Ausgabe: Dies ist die Methode, mit der die Punktzahlen/Details angezeigt werden sollen. Mögliche Werte sind:

    • lcd: das ist das lcd von 2004
    • Konsole: Dies wird nur in das Terminal schreiben (zum Ausführen der Befehlszeile)
    • oled: Unterstützung für SSD6404 Oled-Display
  • Licht: Es werden zwei Arten von Lichtern unterstützt

    • Alarm: Dies wird einen einzelnen GPIO zum Ein- und Ausschalten eines Transistors ansteuern
    • Multi-LED: unterstützt eine mehrfarbige oder mehrere LEDs
    • keine: kein Licht angebracht
  • Amp: Dies ist der GPIO, der den Transistor für den Verstärker ansteuert

Empfohlen: