Spisu treści:
- Krok 1: Krok 1: Złóż swoje części
- Krok 2: Krok 2: Okablowanie i elektronika
- Krok 3: Krok 3: Konfiguracja oprogramowania systemu operacyjnego
- Krok 4: Krok 4: Zaktualizuj konfigurację JSON
Wideo: Lampka nocna do hokeja NHL i wyświetlacz LCD: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Wstęp
„NHL Light” jest przeznaczony dla fanów hokeja, którzy chcą śledzić swoją drużynę, ale nie mogą oglądać każdego meczu. Najlepszą cechą jest to, że symuluje wynik gola za pomocą rogu hokejowego (niestandardowego dla twojej drużyny) i światła.
Oprócz rogu hokejowego i światła, „Light NHL” posiada wyświetlacz, który wyświetla aktualny lub ostatni wynik meczu, czas gry lub czas następnego meczu oraz aktualną datę i godzinę.
„NHL Light” działa na prostej liście części, łatwej w montażu elektronice i ogólnodostępnym kodzie.
Cechy
- Konfiguracja oparta na stronie internetowej do wyboru zespołu i Wi-Fi
- Gra światłem i klaksonem, gdy twoja drużyna zdobędzie bramkę (nawet jeśli jesteś drużyną gości)
- Odtwarza dźwięk, aby ogłosić początek gry
- Odtwarza dźwięk informujący o zakończeniu gry
- Podaje czas i datę następnej gry, jeśli żadna gra nie jest w toku.
- Wyświetla aktualny czas i okres gry, jeśli gra jest w toku.
- Wyświetla aktualną datę i godzinę.
Krok 1: Krok 1: Złóż swoje części
Oto lista części.
-
Raspberry Pi W*
- Amazonka
- Wolę kupić mój z Microcenter, ale można go znaleźć online za mniej w innych miejscach.
- $10
- Karta SD (minimum 4 GB)*
- głośnik - Amazon - ~ 2 USD *
- wzmacniacz - PAM8403* - Amazon - ~1 USD każdy
- jasny - Amazon - ~5 USD
-
Etui - $1*
- Michaela
- Polecam małą drewnianą skrzynkę rzemieślniczą ze sklepu rzemieślniczego Michaela, ale zostawię tobie!
-
I2C 2004 LCD - 3-7 USD
- Amazonka
- Kod obsługuje 3 typy wyświetlaczy LCD, ale I2C 2004 to ten, który wybrałem jako najlepszą wartość i rozmiar. (SSD1306 jest również możliwy)
- 2 tranzystory - 2N2222A- Amazon
- Inne przewody / lut 12V
- zasilacz - Amazon
- Konwerter buck 12V -> 5V - Amazon
*Istnieje elastyczność, jeśli chodzi o wybór tej części.
UWAGA: Możesz zacząć większość tego projektu od samego Raspberry Pi, czekając na wysłanie innych przedmiotów.
Krok 2: Krok 2: Okablowanie i elektronika
- Montaż światła
- Okablowanie do światła ma prowadzić 12 + do światła.
- Przebiegnij ujemnie od światła przez jeden z tranzystorów.
- Emetr tranzystora przechodzi do masy.
- Kolektor tranzystora trafia do Raspberry Pi.
-
Zbierz dźwięk
- Uruchom prawy lub lewy dźwięk z PI do wzmacniacza
- Uruchom +5 V do wzmacniacza
- Podłącz uziemienie wzmacniacza do drugiego tranzystora.
- Doprowadzić emmeter drugiego tranzystora do ziemi
- Uruchom kolektor tranzystora do Raspberry Pi
- Zamontuj okablowanie do PI
-
To są instrukcje pinout dla PI (niektóre z nich można skonfigurować za pomocą JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Światło 10 (GPIO15)
- Prawy dźwięk - GPIO 18
-
Krok 3: Krok 3: Konfiguracja oprogramowania systemu operacyjnego
-
Przygotuj Raspberry Pi W
- Na rasberry pi musi być uruchomiona najnowsza wersja Raspbiana (lub innego Debiana).
- Zaleca się przestrzeganie tych instrukcji:
- Pamiętaj, aby dołączyć plik wifi wpa_supplicant.
- Umieść plik ssh na karcie sdcard, aby umożliwić dostęp do ssh.
-
Przygotuj oprogramowanie innej firmy:
- Zautomatyzowałem ten proces, aby pobrać wszystkie potrzebne narzędzia innych firm, ale możesz je uruchamiać ręcznie i sprawdzać, aby upewnić się, że żadne kroki nie zakończą się niepowodzeniem.
- Pobierz i uruchom następujący skrypt:
Oto zestawienie tego, co robi skrypt instalacyjny do konfiguracji systemu operacyjnego. Najlepiej uruchamiać te linie ręcznie, aby obserwować błędy.
Nagłówek skryptu:
#!/bin/sh -e#można wywołać przez #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: zautomatyzuj ten skrypt za pomocą czegoś takiego: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: skonfiguruj wifi # TODO: skonfiguruj hasło i autoryzowane klucze # notatki:
Zaktualizuj oprogramowanie na poziomie systemu operacyjnego:
#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
Konfiguracja sieci. Częściowym celem tutaj było umożliwienie konfiguracji systemu za pośrednictwem punktu dostępowego, aby połączyć się z własnym Wi-Fi, ale nie zostało to jeszcze w pełni przetestowane. Obecnie zaleca się użycie metody wpa_supplicant do konfiguracji Wi-Fi.
#networking setupecho nhllight > /etc/hostname #TODO: napraw /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # uwaga: inne ustawienia są wykonywane za pomocą plików konfiguracyjnych i powłoki ściągniętej jako część aktualizacji
Zaktualizuj Node i biblioteki Node
#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 LICENCJA cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #DO ZROBIENIA: utworzyć link sym dla binarnego węzła? apt-get remove -y --purge npm node nodejs
#Konfiguracja węzłamkdir /opt/nhl mkdir /opt/nhl/logs mkdir /opt/nhl/horns mkdir /opt/nhl/node_modules/
#aktualizacja węzła
#install zależności węzła do katalogu nhl export NODE_PATH=/usr/local/lib/node_modules
#HACK - TODO - napraw, że lame nie instaluje się globalnie
cd /opt/nhl npm install lame # lame, jest lame, nie instaluje globalnie cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #nie instaluje globalnie cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm zainstaluj i2c-bus # nie instaluj globalnie cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm instaluj oled-i2c-bus # nie instaluj globalnie cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm instaluj lcd #wont instaluj globalnie cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm instaluj lcdi2c #wont instaluj globalnie cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH
npm zainstaluj oled-font-5x7 # nie instaluj globalnie
cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH
npm install onoff # nie instaluje globalnie
cp -R /opt/nhl/node_modules/onoff $NODE_PATH
#npm instaluj pm2 #nie instaluj globalnie
#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm instaluj express #nie instaluj globalnie #cp -R /opt/nhl/node_modules/express $NODE_PATH
# dowolne moduły globalne
npm install express body-parser child_process pm2 -g
Pobierz najnowszy kod:
#pull kodek git /opt/nhl #JSON to jednorazowe tworzenie 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… #wywołaj automatyczny skrypt, aby zainstalować wszystko inne dla NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Pobierz rogi!
#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
zaktualizuj pliki konfiguracyjne Raspberry pi - - może wymagać zmiany dla twojego systemu
#config file updates#add sound cp /boot/config.txt /boot/config.txt.bak printf '\ndtoverlay=pwm-2chan, pin=18, func=2, pin2=13, func2=4' >> / boot/config.txt #włącz i2c printf '\n\ndtparam=i2c1=on\n' >> /boot/config.txt printf '\n\ndtparam=i2c_arm=on\n' >> /boot/config. tekst
#TODO: czy to jest potrzebne?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules
mikser cset numid=1
#TODO: ustawić głośność, 60%?
Zautomatyzuj automatyzację, taką jak uruchamianie i aktualizacje kodu:
# update rc.local# UWAGA: przeniesienie pliku, ponieważ standardowy zawiera "exit" w ostatniej linii, więc nie można po prostu dołączyć mv /etc/rc.local /etc/rc.local.bak dotknąć /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 wyjście 0' >> /etc/rc.local
#DO ZROBIENIA: muszę coś dodać, aby regularnie aktualizować oprogramowanie co tydzień, tak jak to# Może po prostu skopiuj ten plik bezpośrednio do folderu 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óżne rzeczy, takie jak ustawianie strefy czasowej:
ln -sf /usr/share/zoneinfo/Ameryka/Nowy_Jork /etc/localtime
# zaktualizuj zmienną środowiskową za pomocą ścieżki_węzła
cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: zdefiniuj to dla węzła self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Wykorzystaj PM2 do konfiguracji serwera węzła:
#DO ZROBIENIA: konfiguracja testowa PM2cd /tmp/ npm install -g pm2 pm2 startowy cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 exposé-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 zapisz pm2 uruchamianie wyjście 0
Krok 4: Krok 4: Zaktualizuj konfigurację JSON
Skonfiguruj plik konfiguracyjny JSON dla preferowanego zespołu itp. Ten plik znajduje się w /opt/nhl GO CAPITALS! konfiguracyjny plik JSON
Oprogramowanie używa pliku JSON do konfiguracji sprzętu i zespołu, który obserwujesz. Zespół można ustawić za pośrednictwem działającego serwera WWW, ale konfigurację sprzętu należy ustawić ręcznie:
{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }
Oto wyjaśnienie każdej możliwej wartości:
- myteam: to trzyliterowy kod drużyny, którą chcesz śledzić
- debug: Możliwe wartości to 1 (prawda) lub 0 (fałsz) i będą kontrolować, ile rejestrów jest zapisywanych.
-
wyjście: jest to metoda, za pomocą której mają być pokazywane wyniki/szczegóły. Możliwe wartości to:
- lcd: to jest lcd 2004
- konsola: zapisuje tylko do terminala (do uruchomienia wiersza poleceń)
- oled: obsługa wyświetlacza oled SSD6404
-
światło: obsługiwane są dwa rodzaje świateł
- alarm: spowoduje to uruchomienie pojedynczego GPIO do włączania/wyłączania tranzystora
- multi-led: obsługuje wielokolorowe lub wiele diod led
- brak: brak podłączonego światła
- wzmacniacz: to jest GPIO, które steruje tranzystorem dla wzmacniacza
Zalecana:
Wyświetlacz LCD I2C / IIC - Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: 5 kroków
Wyświetlacz LCD I2C / IIC | Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: używanie wyświetlacza LCD spi wymaga zbyt wielu połączeń, co jest naprawdę trudne, więc znalazłem moduł, który może przekonwertować wyświetlacz LCD i2c na wyświetlacz LCD spi, więc zaczynamy
Battery Eater - rzeźba robota Joule Thief jako czytanie / lampka nocna: 3 kroki (ze zdjęciami)
Battery Eater - Robot Joule Thief Sculpture jako Reading / Night Light: Witaj w moim pierwszym instruktażu, mam nadzieję, że ci się spodoba, a mój zły angielski nie jest tak dużą barierą.: x Miałem kilka części leżących i chciałem zbudować małego robota . Ponieważ chcę zrobić taki z funkcją, przeszukałem i znalazłem Instr
Lampka nocna Dr Who Tardis z Asystentem Google: 4 kroki (ze zdjęciami)
Dr Who Tardis Night Light With Google Assistant: Hello Instructables i Dr Who Fans Jakiś czas temu zbudowałem mniejszą wersję tego o wysokości około 20 cm dla mojego małego chłopca i pomyślałem, że w domu musi być taki, który ma rozmiar tatusia. Jest to duża 35cm lampka nocna Tardis zasilana przez ESP8266 z
UVIL: Podświetlana lampka nocna Blacklight (lub lampka kontrolna SteamPunk): 5 kroków (ze zdjęciami)
UVIL: Backlit Blacklight Nightlight (lub SteamPunk Indicator Lamp): Jak złożyć niesamowicie świecącą neo-retropostmodernistyczną lampę wskaźnikową ultrafioletową. . Moim pomysłem jest wykorzystanie ich jako
Lampka nocna / lampka nocna Mini LED: 5 kroków
Lampka nocna / lampka nocna Mini LED: Po pierwsze, powinienem powiedzieć, że zainspirowała ją wolnostojąca lampa LED Mini firmy Sunbanks. Zamiast używać długopisu do trzymania diody z dala od biurka, użyłem przezroczystego pleksiglasu do projekcji światła z podstawy.Ten mały projekt jest prototypem