Obsah:
Video: NHL noční osvětlení a LCD: 4 kroky (s obrázky)
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Úvod
„NHL Light“je pro hokejové fanoušky, kteří chtějí sledovat svůj tým, ale nemohou sledovat každý zápas. Jeho nejlepší vlastností je, že simuluje skóre gólu pomocí hokejového rohu (vlastní vašemu týmu) a světla.
Kromě hokejového rohu a světla má „NHL Light“také displej, který poskytuje aktuální nebo nejnovější skóre hry, čas nebo čas další hry a aktuální datum a čas.
„NHL Light“běží na jednoduchém seznamu dílů, které lze snadno sestavit z elektroniky a kódu, který je volně dostupný.
Funkce
- Konfigurace založená na webové stránce pro výběr vašeho týmu a wifi
- Hraje světlo a lesní roh, když váš tým skóruje (i když jste hostující tým)
- Přehrává zvuk a oznamuje začátek hry
- Přehraje zvuk oznamující konec hry
- Poskytuje čas a datum další hry, pokud žádná neprobíhá.
- Zobrazuje aktuální čas a období hry, pokud hra probíhá.
- Zobrazuje aktuální datum a čas.
Krok 1: Krok 1: Sestavte si díly
Zde je seznam dílů.
-
Raspberry Pi W*
- Amazonka
- Dávám přednost tomu, abych získal své z Microcenter, ale na jiných místech je lze najít levněji.
- $10
- Karta SD (minimálně 4 GB)*
- reproduktor - Amazon - ~ 2 $ *
- zesilovač - PAM8403* - Amazon - každý ~ 1 $
- světlo - Amazon - ~ 5 $
-
Pouzdro - 1 $*
- Michaela
- Doporučuji malý dřevěný kufřík z Michaelova řemeslného obchodu, ale nechám na vás!
-
LCD I2C 2004 - 3-7 $
- Amazonka
- Kód podporuje 3 typy LCD, ale I2C 2004 je ten, na kterém jsem se usadil jako nejlepší hodnota a velikost. (SSD1306 je také možné)
- 2 tranzistory - 2N2222A- Amazon
- Různé vodiče / pájka12V
- napájení - Amazon
- Převodník 12V -> 5V buck - Amazon
*Při výběru této části existuje flexibilita.
POZNÁMKA: Většinu tohoto projektu můžete zahájit pouze svým malinovým Pi, zatímco čekáte na dodání dalších položek.
Krok 2: Krok 2: Zapojení a elektronika
-
Sestavte světlo
- Zapojení světla je vedeno 12 + ke světlu.
- Projděte záporně ze světla přes jeden z tranzistorů.
- Emmetr tranzistoru jde na zem.
- Sběratel tranzistoru jde do Raspberry Pi.
-
Sestavte zvuk
- Spusťte pravý nebo levý zvuk z PI do zesilovače
- Spusťte +5V na zesilovači
- Spusťte uzemnění zesilovače na 2. tranzistor.
- Spusťte emmetter 2. transisitoru na zem
- Spusťte kolektor tranzistoru na Raspberry Pi
- Sestavte kabeláž k PI
-
Toto jsou pokyny pro zapojení PI (některé z nich lze konfigurovat pomocí JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Light 10 (GPIO15)
- Zní to správně - GPIO 18
-
Krok 3: Krok 3: Nastavení softwaru operačního systému
-
Připravte si Raspberry Pi W
- Rasberry pi musí používat nejnovější verzi Raspbian (nebo jiný Debian).
- Doporučujeme dodržovat tyto pokyny:
- Nezapomeňte zahrnout soubor wifi wpa_supplicant.
- Umístěte soubor ssh na sdcard a povolte ssh přístup.
-
Připravte si software třetí strany:
- Tento proces jsem zautomatizoval, abych stáhl všechny potřebné nástroje třetích stran, ale můžete je spustit ručně a zkontrolovat, zda žádné kroky selžou.
- Stáhněte a spusťte následující skript:
Zde je rozpis toho, co dělá instalační skript pro nastavení operačního systému. Nejlepší je spustit tyto řádky ručně, abyste mohli sledovat chyby.
Záhlaví skriptu:
#!/bin/sh -e #lze volat pomocí #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: zautomatizujte tento skript něčím jako: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: nastavení wifi # TODO: nastavení passwd a autorizovaných klíčů # poznámky:
Aktualizace softwaru na úrovni operačního systému:
#apt-get things (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
Nastavení sítě. Část cílem zde bylo umožnit konfiguraci systému prostřednictvím přístupového bodu, připojení k vaší vlastní wifi, ale toto zatím nebylo plně testováno. V současné době se pro nastavení wifi doporučuje použít metodu wpa_supplicant.
#networking setupecho nhllight>/etc/hostname #TODO: fix the/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #note: other setup is done via the config files and shell printed as a part of the update
Aktualizujte knihovny uzlů a uzlů
#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. uzel tar.xz cd-v $ {nodeversion} -linux-armv6l rm -f *.md rm -f LICENCE cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: vytvořit symbolický odkaz pro binární uzel? apt -get remove -y --purge npm node nodejs
#Node setupmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/rohy mkdir/opt/nhl/node_modules/
#update Uzel
#instalujte závislosti uzlů do adresáře nhl export NODE_PATH =/usr/local/lib/node_modules
#HACK - TODO - opravte, že se lame nebude instalovat globálně
cd/opt/nhl npm install lame # lame, is lame, wont install globally cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm install speaker #wont install globally cp -R/opt/nhl/node_modules/reproduktor $ NODE_PATH npm install i2c-bus #wont install globally cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm install oled-i2c-bus #wont install globally cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm install lcd #wont install globally cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm install lcdi2c #wont install globally cp -R/opt/nhl/node_modules/lcdi2c $ NODE_PATH
npm install oled-font-5x7 #nebude instalovat globálně
cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH
npm install onoff #nainstaluje se globálně
cp -R/opt/nhl/node_modules/onoff $ NODE_PATH
#npm install pm2 #nainstaluje se globálně
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #wont install globally #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# jakékoli globální moduly
npm install express body -parser child_process pm2 -g
Stáhněte nejnovější kód:
#pull git codecd/opt/nhl #JSON je jednorázová tvorba 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… #call automatizovaný skript pro instalaci všeho ostatního pro NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Stáhněte si rohy!
#pull hornscd/opt/nhl/rohy curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
aktualizujte konfigurační soubory Raspberry pi - - možná bude nutné změnit pro váš systém
#config aktualizace souboru#přidat zvuk cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #zapnout i2c printf '\ n / ndtparam = i2c1 = na / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = na / n' >>/boot/config. txt
#TODO: je to potřeba? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules
amixer cset numid = 1
#TODO: nastavená hlasitost, 60%?
Automatizujte automatizaci, například spouštění a aktualizace kódu:
# aktualizovat rc.local# POZNÁMKA: přesunutí souboru, protože standardní obsahuje „exit“v posledním řádku, takže nelze jednoduše připojit mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local 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 ukončit 0' >> /etc/rc.local
# TODO: potřebujete něco přidat k pravidelným aktualizacím softwaru každý týden takto# Možná jen zkopírujete tento soubor přímo dolů do složky rc.weekly? 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
Různé věci, jako je nastavení časového pásma:
ln -sf/usr/share/zoneinfo/America/New_York/etc/localtime
# aktualizujte proměnnou prostředí pomocí node_path
cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: definujte pro uzel self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Použijte PM2 pro nastavení uzlového serveru:
#TODO: test nastavení 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 save pm2 startup exit 0
Krok 4: Krok 4: Aktualizujte konfiguraci JSON
Nastavte svůj konfigurační soubor JSON pro tým, kterému dáváte přednost atd. Tento soubor se nachází v /opt /nhl GO CAPITALS! konfigurační soubor JSON
Software používá ke konfiguraci hardwaru a týmu, který sledujete, soubor JSON. Tým lze nastavit prostřednictvím webového serveru, který bude spuštěn, ale nastavení hardwaru je třeba nastavit ručně:
Zde je vysvětlení každé možné hodnoty:
- myteam: toto je 3písmenný kód týmu, který chcete dodržovat
- debug: Možné hodnoty jsou 1 (true) nebo 0 (false) a budou řídit, kolik protokolování je zapsáno.
-
výstup: toto je metoda, kterou se mají zobrazovat skóre/detaily. Možné hodnoty jsou:
- lcd: toto je lcd 2004
- konzola: toto bude zapisovat pouze na terminál (pro spuštění příkazového řádku)
- oled: podpora displeje SSD6404 oled
-
světlo: podporovány jsou dva typy světel
- alarm: to bude řídit jeden GPIO pro zapnutí/vypnutí tranzistoru
- více LED: podporuje vícebarevné nebo více LED
- žádný: žádné světlo připojeno
- amp: toto je GPIO, které pohání tranzistor pro zesilovač