Innehållsförteckning:

O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **: 6 steg (med bilder)
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **: 6 steg (med bilder)

Video: O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **: 6 steg (med bilder)

Video: O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **: 6 steg (med bilder)
Video: Section 9 2024, Juli
Anonim
Image
Image
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **
O-R-A RGB Led Matrix väggklocka med mera ** uppdaterad juli 2019 **

Hej. Här är jag med ett nytt projekt som heter O-R-A

Det är en RGB LED Matrix väggklocka som visar:

  • timme: minut
  • temperatur
  • fuktighet
  • nuvarande väderförhållandeikon
  • Google Kalender -händelser och 1 timmars påminnelser

vid en viss tidpunkt visar det:

  • Google Kalender idag och i morgon händelselista
  • väderprognos
  • senaste nyheterna

Beroendefunktioner:

  • dagens datum
  • Magic 8 -boll
  • Äggklocka

För alla funktioner spelar enheten ett annat ljudlarm. För alla slags väderförhållanden finns det en motsvarande ljudfil som ska spelas upp när funktionen anropas.

Funktionerna som Google Kalender -lista, Väderprognoser, RSS -nyheter börjar vid förvalda tidpunkt när enheten är i "klockläge", dessa kan också kallas direkt för omkopplarna. En annan funktion under "klockläge" visar aktuell dag/månad/år. Det kan köras genom att trycka på ENTER -knappen. Genom att trycka på CHANGE STATE -knappen och sedan på ENTER -knappen inom 3 sekunder i "klockläge" kan du gå in i alternativmenyn. CHANGE STATE -knappen är inställd för att rulla inuti menyn, ENTER -knappen är för att bekräfta det valda alternativet.

Detta projekt är en utveckling av min tidigare LEGOLED och TEMPO. RGB LED -matrispanelen har upplösning 32x64 nu, så det är möjligt att visa mer otänkbar grafik, fast och rullande text samtidigt. Med hjälp av TEMPO -funktioner slås enheten på och av automatiskt utan någon knapp eller extern timer. En PIR -modul upptäcker närvaron av personer och slår därför på/av displayen.

Väderprognos och kalenderdata samlas in varje minut från Google Kalender och Öppen väderkarta.

Detta projekt är helt anpassningsbart från en Raspberry PI B+, 2 -modul 16x64 rgb ledmatris och strömförsörjning. Det kan utökas, som jag gjorde, lägga till USB -ljudkort, högtalare, på/av strömkrets.

Steg 1: Vad du behöver

  • Raspberry Pi B+ (med inbyggd wifi eller dongel)
  • 2 x 16x64 RGB ledmatris eller 2 x 32x32
  • generisk ram (40x50 cm och 3 cm djup ungefär)
  • frostat plastark
  • fönster solfilm
  • PS 5V 10A
  • kablar
  • härdhölje (*)
  • relämodul (*)
  • extra PS för ljudförstärkare (*)
  • 3W ljudförstärkarmodul (*)
  • högtalare (*)
  • USB -ljudkort (*)
  • 2 x mikrobrytare (*)
  • PIR (*)
  • Attiny85 (*)
  • DS3231 (*)
  • Mosfet IRF540 (*)
  • Motstånd: 3x1K, 2x10K, 1x2K (*)
  • terminalblocket (*)
  • header strips female (*)
  • header strips hane (*)

(*) valfritt

Steg 2: Installation av Raspberry Pi

Denna guide är i grunden baserad på Raspbian Jessie Lite, Python 2.7 och RGB LED MATRIX -bibliotek av Hzeller Github -användare.

Först och främst uppdatera och uppgradera RPI

Installera git

~ $ sudo apt-get install git

Ladda ner RGB LED MATRIX -bibliotek från Github

~ $ git-klon

~ $ cd rpi-rgb-led-matris

~ $ sudo gör

svartlista RPI internt ljudkort

~ $ cat << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf

svartlista snd_bcm2835

EOF

~ $ sudo update -initramfs -u

Ställ in externa ljudkortsparametrar om det behövs ljudfunktioner:

~ $ sudo nano /usr/share/alsa/alsa.conf

förändra:

defaults.ctl.card 0

standardvärden.pcm.kort 0

till

defaults.ctl.card 1

standardvärden.pcm.kort 1

starta sedan om.

Installera nu matrisbiblioteket

~ $ cd/home/pi/rpi-rgb-led-matrix

~ $ sudo apt-get update && sudo apt-get install python2.7-dev python-kudde -y

~ $ make build-python

~ $ sudo gör install-python

och installera andra bibliotek som behövs:

~ $ sudo easy_install pip

~ $ sudo pip installera

Kopiera samplebase.py-skriptet från ~/rpi-rgb-led-matrix/bindings/python/samples/till hemkatalogen

Få registrering av API -nycklar gratis till Open Weather Map

Installera nu OWM Python -omslag för PYthon 2.7 (tack till CSPARPAGithub -användare)

~ $ sudo pip installera git+https://github.com/csarpa/[email protected]

Få autentiseringsuppgifter för Google Kalender enligt instruktionerna i Googles kalender -API

För ljuduppspelning installera Pygame

~ $ sudo apt-get install python-pygame

RSS -flöden behöver Feedparser installeras

~ $ sudo pip installera feedparser

kopiera mitt skript ORAeng_131.py (engelsk version) eller ORAita_131.py (italiensk version) till hemkatalogen

skapa mappar för ljud och bilder:

mkdir dbsounds

mkdir owm

ladda ner och kopiera alla-p.webp

www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0

lägg till din OWM -referens till rad 69 (API_key)

ange stad för väderprognos (kontrollera om den täcks av OWM och rätt namn accepteras) på rad 213, 215

obs = owm.weather_at_place ('Napoli, IT')

fc = owm.three_hours_forecast ('Napoli, IT')

********************************* UPPDATERING 28/7/2019 ********** *******************

Det nya Google Kalender API skapar problem. Jag har löst att ta bort några moduler:

~ $ sudo apt-get remove --purge python-setuptools

~ $ sudo apt-get autoremove python-pyasn1

prova att skriptet körs

~ $ sudo python ORAeng_150.py # eller ORAita_150.py för italiensk version

första gången kommer skriptet att be om GCAL -behörighet. Klicka på länken för att få google api -referens. Ge tillstånd då, om allt är ok, ser du att klockan startar.

på grund av överdriven RAM -användning efter flera timmar skrev jag ett skript som helt enkelt startar om python -skript när RAM -användningen går över en tröskelnivå. Kopiera sedan till hemkatalogen skriptet memcheck som byter namn till memcheck.sh och lägg till crontab -e tillsammans huvudskript

*/5 * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py

Steg 3: Skripten

Huvudskriptet måste ändras i enlighet med dina behov. Om vi antar att OWM och Goggle Calendar -referenser är inställda som sina respektive API -instruktioner, är de viktigaste parametrarna:

kalenderhändelselista som utförs varje timme vid minut 2, 32 (se skriptrad 65)

väderförhållanden och prognoser som utförs varje timme vid minut 7, 37 (se manusrad 66)

senaste nyheterna uppträder varje timme vid minut 11 (se manusrad 67)

breaking news rss -kanal. Insidesskript är inställd Instructable RSS, men kan ändras. (se manusrad 366)

Självklart prioriterar manuset inkommande kalenderhändelse eller påminnelsemeddelanden. Ibland utför klockan inte sina funktioner för att undvika att funktioner överskrids.

Attiny85 på/av -timer måste programmeras för att ladda upp skissen Tempo_V1_9_1Mhz_bugfix.ino.

Detta gör det möjligt att slå på enheten klockan 8 på morgonen och stänga av vid 23. Se handledning för mer information.

Steg 4: Kretsen

Kretsen
Kretsen
Kretsen
Kretsen
Kretsen
Kretsen

Kretsen har i princip 3 sektioner

- Ström på/av -timer hanterad av DS3231 -modulen, Attiny85 och Mosfet

- omkopplare för manuell kontroll av klockfunktioner

- anslutningssektion där kabel för RGB LED Matrix -data och effekt, ljudförstärkare och Raspberry Pi

Inte nämnt en resistiv spänningsdelare som gör att RPI kan läsa en HIGH/LOW 5V -signal från Attiny85

Brytare ansluts direkt till RPI -stiftet GND med interna motstånd

Attiny85 timer kommer från mitt tidigare projekt som heter TEMPO. I grund och botten skickar DS3231 LÅG signal till Attiny85 avbrottsstift som väcker den från viloläge. Vid uppvakningen skickar Attiny85 HÖG signal till Mosfet -transistorn och aktiverar strömförsörjningskretsen för RPI, LED Matrix och ljudförstärkare (om den inte är ansluten till extra PS via ett relä, som min senaste konfiguration).

För att stänga av RPI överväger mitt skript att RPI lyssnar digital signal på stift 14, när det är HÖG, kallas ett avstängningskommando. Sedan utför RPI en korrekt avstängningsprocess, sedan efter en minut går Attiny85 tillbaka till viloläge och Mosfet får en LÅG signal som stänger av hela enheten. Denna process är grov men effektiv.

PIR -modulen är valfri och ansluten direkt till RPI GPIO.

Min konfiguration kräver att följande RPI GPIO -stift är anslutna till:

15 till PIR

14 till Attiny85 pin 3 genom spänningsdelare

21 till relämodul

2 för att växla (ENTER KNAPP)

3 för att växla (ÄNDRA STATUS -KNAPP)

Frågor:

- brus på grund av LED Matrix -strömförsörjning, löst med en liten PS endast för ljudförstärkaren. Ett valfritt relä tillåter endast att slå på förstärkaren när det behövs. Detta kan orsaka ett buller när det slås på/av.

Kretsen har etsats med kopparplatta, 3D -skrivare, markör och järnklorid.

Steg 5: Montering

Montering
Montering
Montering
Montering
Montering
Montering
Montering
Montering

Jag har anpassat en generisk ram på 40 x 50 cm till detta projekt tillsammans med 3D -tryckta delar och några extra tillbehör.

Glaset är avskärmat av fönstersolfilm och frostat plastark. Ledmatris måste hållas cirka 1 cm i glas för att undvika att se de vita insidorna. Små skruvar är nödvändiga som M3 -muttrar och bultar. Obligatoriska är kablar och värmehärdande hölje.

Ledmatriser skruvas fast på ramens baksida.

Steg 6: Och nu?

Och nu ?
Och nu ?
Och nu ?
Och nu ?

Nästa steg blir att lägga till en temperatursensor, aktivering av bluetooth -funktioner och, varför inte, en internetradiospelare fram till maximal Raspberry Pi -potential.

Hejdå

Tävlingar
Tävlingar
Tävlingar
Tävlingar

Tvåa i tävlingen

Rekommenderad: