Obsah:

NHL noční osvětlení a LCD: 4 kroky (s obrázky)
NHL noční osvětlení a LCD: 4 kroky (s obrázky)

Video: NHL noční osvětlení a LCD: 4 kroky (s obrázky)

Video: NHL noční osvětlení a LCD: 4 kroky (s obrázky)
Video: Kotlár Security v práci 2024, Listopad
Anonim
Image
Image
NHL Noční hokejové světlo a LCD
NHL Noční hokejové světlo a LCD

Ú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

  1. Konfigurace založená na webové stránce pro výběr vašeho týmu a wifi
  2. Hraje světlo a lesní roh, když váš tým skóruje (i když jste hostující tým)
  3. Přehrává zvuk a oznamuje začátek hry
  4. Přehraje zvuk oznamující konec hry
  5. Poskytuje čas a datum další hry, pokud žádná neprobíhá.
  6. Zobrazuje aktuální čas a období hry, pokud hra probíhá.
  7. Zobrazuje aktuální datum a čas.

Krok 1: Krok 1: Sestavte si díly

Krok 1: Sestavte své součásti
Krok 1: Sestavte své součásti

Zde je seznam dílů.

  1. Raspberry Pi W*

    1. Amazonka
    2. Dávám přednost tomu, abych získal své z Microcenter, ale na jiných místech je lze najít levněji.
    3. $10
  2. Karta SD (minimálně 4 GB)*
  3. reproduktor - Amazon - ~ 2 $ *
  4. zesilovač - PAM8403* - Amazon - každý ~ 1 $
  5. světlo - Amazon - ~ 5 $
  6. Pouzdro - 1 $*

    1. Michaela
    2. Doporučuji malý dřevěný kufřík z Michaelova řemeslného obchodu, ale nechám na vás!
  7. LCD I2C 2004 - 3-7 $

    1. Amazonka
    2. 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é)
  8. 2 tranzistory - 2N2222A- Amazon
  9. Různé vodiče / pájka12V
  10. napájení - Amazon
  11. 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

Krok 2: Zapojení a elektronika
Krok 2: Zapojení a elektronika
Krok 2: Zapojení a elektronika
Krok 2: Zapojení a elektronika
  1. Sestavte světlo

    1. Zapojení světla je vedeno 12 + ke světlu.
    2. Projděte záporně ze světla přes jeden z tranzistorů.
    3. Emmetr tranzistoru jde na zem.
    4. Sběratel tranzistoru jde do Raspberry Pi.
  2. Sestavte zvuk

    1. Spusťte pravý nebo levý zvuk z PI do zesilovače
    2. Spusťte +5V na zesilovači
    3. Spusťte uzemnění zesilovače na 2. tranzistor.
    4. Spusťte emmetter 2. transisitoru na zem
    5. Spusťte kolektor tranzistoru na Raspberry Pi
  3. Sestavte kabeláž k PI
  4. Toto jsou pokyny pro zapojení PI (některé z nich lze konfigurovat pomocí JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Light 10 (GPIO15)
    4. Zní to správně - GPIO 18

Krok 3: Krok 3: Nastavení softwaru operačního systému

  1. Připravte si Raspberry Pi W

    1. Rasberry pi musí používat nejnovější verzi Raspbian (nebo jiný Debian).
    2. Doporučujeme dodržovat tyto pokyny:
    3. Nezapomeňte zahrnout soubor wifi wpa_supplicant.
    4. Umístěte soubor ssh na sdcard a povolte ssh přístup.
  2. Připravte si software třetí strany:

    1. 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.
    2. 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č

Doporučuje: