Obsah:
Video: Hokejové svetlo a LCD nočný stolík NHL: 4 kroky (s obrázkami)
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Úvod
„NHL Light“je pre hokejových fanúšikov, ktorí chcú nasledovať svoj tím, ale nemôžu sledovať každý zápas. Jeho najlepšou vlastnosťou je, že simuluje strelenie gólu hokejovým klaksónom (vlastné vášmu tímu) a svetlo.
Okrem hokejového rohu a svetla má „NHL Light“aj displej, ktorý poskytuje aktuálne alebo posledné skóre hry, čas alebo čas nasledujúceho zápasu a aktuálny dátum a čas.
„NHL Light“funguje na jednoduchom zozname súčiastok, ktoré je možné ľahko zostaviť z elektroniky a kódu, ktorý je voľne dostupný.
Vlastnosti
- Konfigurácia založená na webovej stránke na výber vášho tímu a siete Wi -Fi
- Hrá svetlo a klaksón, keď váš tím skóruje (aj keď ste hosťujúci tím)
- Hrá zvuk, ktorý ohlasuje začiatok hry
- Hrá zvukom, ktorý oznamuje záver hry
- Poskytuje čas a dátum ďalšej hry, ak práve neprebieha.
- Ak hra prebieha, zobrazuje aktuálny čas a obdobie hry.
- Zobrazí aktuálny dátum a čas.
Krok 1: Krok 1: Zostavte svoje diely
Tu je zoznam dielov.
-
Raspberry Pi W*
- Amazon
- Dávam prednosť tomu, aby som svoje dostal z Microcentra, ale na iných miestach sa dajú nájsť lacnejšie online.
- $10
- Karta SD (minimálne 4 GB)*
- reproduktor - Amazon - ~ 2 doláre *
- amp - PAM8403* - Amazon - každý ~ 1 dolár
- svetlo - Amazon - ~ 5 dolárov
-
Prípad - 1 dolár*
- Michaela
- Odporúčam malý drevený kufrík z Michaelovho remeselného obchodu, ktorý však nechám na vás!
-
LCD I2C 2004 - 3-7 dolárov
- Amazon
- Kód podporuje 3 typy displejov LCD, ale I2C 2004 je ten, pre ktorý som sa rozhodol ako najlepšiu hodnotu a veľkosť. (SSD1306 je tiež možný)
- 2 tranzistory - 2N2222A- Amazon
- Rôzne vodiče / spájka12V
- napájanie - Amazon
- Konvertor 12V -> 5V Buck - Amazon
*Pri výbere tejto časti existuje flexibilita.
POZNÁMKA: Vo väčšine tohto projektu môžete začať s malinovým Pi, kým počkáte na odoslanie ďalších položiek.
Krok 2: Krok 2: Elektroinštalácia a elektronika
-
Zostavte svetlo
- Kábel pre svetlo má viesť 12 + k svetlu.
- Prejdite záporne pred svetlom cez jeden z tranzistorov.
- Emmetter tranzistora ide na zem.
- Zberač tranzistora smeruje k Raspberry Pi.
-
Zostavte zvuk
- Spustite pravý alebo ľavý zvuk z PI do zosilňovača
- Zapnite +5V do zosilňovača
- Pripojte uzemnenie zosilňovača k 2. tranzistoru.
- Spustite emitor druhého transisitora na zem
- Spustite kolektor tranzistora na Raspberry Pi
- Zostavte kabeláž k PI
-
Toto sú pokyny pre výstup PI (niektoré z nich je možné konfigurovať prostredníctvom JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Svetlo 10 (GPIO15)
- Znie to správne - GPIO 18
-
Krok 3: Krok 3: Nastavenie softvéru operačného systému
-
Pripravte si Raspberry Pi W
- Rasberry pi musí používať najnovšiu verziu Raspbian (alebo iný Debian).
- Odporúčame dodržiavať tieto pokyny:
- Nezabudnite zahrnúť súbor wifi wpa_supplicant.
- Vložte súbor ssh na sdcard, aby ste povolili prístup ssh.
-
Pripravte si softvér tretej strany:
- Tento proces som zautomatizoval, aby som využil všetky potrebné nástroje tretích strán, ale môžete ich spustiť ručne a skontrolovať, či žiadne kroky nezlyhali.
- Stiahnite si a spustite nasledujúci skript:
Tu je rozpis toho, čo robí inštalačný skript na nastavenie operačného systému. Najlepšie je spustiť tieto riadky ručne, aby ste mohli sledovať chyby.
Hlavička skriptu:
#!/bin/sh -e #je možné zavolať prostredníctvom #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: zautomatizujte tento skript niečím ako: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: nastavenie wifi # TODO: nastavenie hesla a autorizovaných kľúčov # poznámky:
Aktualizácia softvéru 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
Nastavenie siete. Cieľom tu bolo umožniť konfiguráciu systému prostredníctvom prístupového bodu, pripojenie k vašej vlastnej sieti Wi -Fi, ale to ešte nebolo úplne testované. V súčasnej dobe sa odporúča použiť metódu wpa_supplicant na nastavenie wifi.
#networking setupecho nhllight>/etc/hostname #TODO: fix the/etc/hosts #TODO: setup br0 mkdir/etc/hostapd/ #note: other setup is failed via config files and shell printed down as part of the update
Aktualizujte knižnice uzlov a uzlov
#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. uzol tar.xz cd-v $ {nodeversion} -linux-armv6l rm -f *.md rm -f LICENCIA cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: vytvoriť symlink pre binárny uzol? 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 Uzol
#inštalovať závislosti uzlov do adresára nhl export NODE_PATH =/usr/local/lib/node_modules
#HACK - TODO - oprava toho, že sa lame nebude inštalovať globálne
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/speaker $ NODE_PATH npm install i2c-bus #nebude inštalovať globálne cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm install oled-i2c-bus #nebude inštalovať globálne 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 #neinštaluje sa globálne
cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH
npm install onoff #neinštaluje sa globálne
cp -R/opt/nhl/node_modules/onoff $ NODE_PATH
#npm install pm2 #neinštaluje sa globálne
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #wont install globally #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# akékoľvek globálne moduly
npm install express body -parser child_process pm2 -g
Vytiahnite najnovší kód:
#pull git codecd/opt/nhl #JSON je jednorazové vytvorenie 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 na inštaláciu všetkého ostatného pre NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Stiahnite si rohy!
#pull hornscd/opt/nhl/rohy curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
aktualizujte konfiguračné súbory Raspberry pi - - možno bude potrebné zmeniť pre váš systém
Aktualizácie súborov #config#pridať zvuk cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #zapnúť i2c printf '\ n / ndtparam = i2c1 = na / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = zapnúť / n' >>/boot/config. TXT
#TODO: je to potrebné? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules
amixer cset numid = 1
#TODO: nastavená hlasitosť, 60%?
Zautomatizujte automatizáciu, napríklad spustenie systému a aktualizácie kódu:
# update rc.local# POZNÁMKA: presunutie súboru, pretože štandardný obsahuje „výstup“v poslednom riadku, takže nemôže jednoducho pripojiť 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čiť 0' >> /etc/rc.local
# TODO: je potrebné pridať niečo na vykonávanie pravidelných aktualizácií softvéru každý týždeň takto# Možno stačí tento súbor skopírovať priamo do priečinka 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ôzne veci, napríklad nastavenie časového pásma:
ln -sf/usr/share/zoneinfo/America/New_York/etc/localtime
# aktualizovať premennú prostredia pomocou node_path
cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: definujte to pre uzol self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Na nastavenie servera uzla použite PM2:
#TODO: testovacie nastavenie 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 konfiguráciu JSON
Nastavte svoj konfiguračný súbor JSON pre tím, ktorý uprednostňujete atď. Tento súbor sa nachádza v /opt /nhl GO CAPITALS! konfiguračný súbor JSON
Softvér používa súbor JSON na konfiguráciu hardvéru a tímu, ktorý sledujete. Tím je možné nastaviť pomocou webového servera, ktorý bude spustený, ale nastavenie hardvéru je potrebné nastaviť ručne:
Tu je vysvetlenie každej možnej hodnoty:
- myteam: toto je trojpísmenový kód tímu, ktorý chcete nasledovať
- debug: Možné hodnoty sú 1 (true) alebo 0 (false) a budú ovládať, koľko protokolovania sa vypíše.
-
výstup: toto je metóda, ktorou sa majú zobrazovať skóre/detaily. Možné hodnoty sú:
- LCD: Toto je LCD displej z roku 2004
- konzola: toto bude písať iba na terminál (na spustenie príkazového riadka)
- oled: podpora oled displeja SSD6404
-
svetlo: sú podporované dva typy svetiel
- alarm: toto bude poháňať jedno GPIO na zapínanie/vypínanie tranzistora
- viac LED: podporuje viacfarebné alebo viac LED diód
- žiadny: nie je pripojené žiadne svetlo
- amp: toto je GPIO, ktoré poháňa tranzistor pre zosilňovač