Sisällysluettelo:

O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **: 6 vaihetta (kuvilla)
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **: 6 vaihetta (kuvilla)

Video: O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **: 6 vaihetta (kuvilla)

Video: O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **: 6 vaihetta (kuvilla)
Video: Section 9 2024, Marraskuu
Anonim
Image
Image
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **

Hei. Tässä olen uuden projektin nimeltä O-R-A

Se on RGB LED Matrix -seinäkello, joka näyttää:

  • tunti: minuutti
  • lämpötila
  • kosteus
  • nykyisen säätilan kuvake
  • Google -kalenterin tapahtumat ja 1 tunnin muistutusilmoitukset

tiettynä aikana se näyttää:

  • Google -kalenteri tänään ja huomenna tapahtumaluettelo
  • Sääennuste
  • Viimeisimmät uutiset

Riippuvaiset toiminnot:

  • nykyinen päivämäärä
  • Magic 8 pallo
  • Keittiöajastin

Kaikkia toimintoja varten laite toistaa eri äänihälytyksen. Kaikissa sääolosuhteissa on toistettava vastaava äänitiedosto, kun toiminto kutsutaan.

Toiminnot, kuten Google -kalenteriluettelo, sääennuste, RSS -uutiset alkavat ennalta valitusta ajankohdasta, kun laite on "kellotilassa". Näitä toimintoja voidaan kutsua myös suoraan kytkimien käyttämiseksi. Toinen toiminto "kellotilassa" näyttää nykyisen päivän/kuukauden/vuoden. Se voidaan suorittaa painamalla ENTER -painiketta. Painamalla CHANGE STATE -painiketta ja sitten ENTER -painiketta 3 sekunnin kuluessa "kellotilassa" pääset asetusvalikkoon. CHANGE STATE -painike asettaa vierittämään valikkoa, ENTER -painike vahvistaa valinnan.

Tämä projekti on edellisen LEGOLEDin ja TEMPON kehitys. RGB -led -matriisipaneelin resoluutio on nyt 32x64, joten älykkäämpää grafiikkaa, kiinteää ja vierittävää tekstiä voidaan näyttää samanaikaisesti. Käyttämällä TEMPO -toimintoja laite kytkeytyy päälle ja pois päältä automaattisesti ilman mitään painiketta tai ulkoista ajastinta. PIR -moduuli havaitsee henkilöiden läsnäolon, joten kytke näyttö päälle/pois.

Sääennuste ja kalenteritiedot kerätään joka minuutti Google -kalenterin ja Open Weather Map -palvelun toimittamana.

Tämä projekti on täysin muokattavissa alkaen Raspberry PI B+, 2 moduulin 16x64 rgb led -matriisista ja virtalähteestä. Sitä voidaan laajentaa, kuten minä, lisäämällä USB -äänikortteja, kaiuttimia, virtapiiri päälle/pois.

Vaihe 1: Mitä tarvitset

  • Raspberry Pi B+ (sisäänrakennettu wifi tai dongle)
  • 2 x 16x64 RGB -led -matriisi tai 2 x 32x32
  • yleinen kehys (40x50 cm ja noin 3 cm syvyys)
  • himmeä muovilevy
  • ikkunan aurinkokalvo
  • PS 5V 10A
  • kaapelit
  • lämpökovettuva vaippa (*)
  • relemoduuli (*)
  • ylimääräinen PS äänivahvistimelle (*)
  • 3 W: n vahvistinmoduuli (*)
  • kaiuttimet (*)
  • USB -äänikortti (*)
  • 2 x mikrokytkin (*)
  • PIR (*)
  • Attiny85 (*)
  • DS3231 (*)
  • Mosfet IRF540 (*)
  • Vastukset: 3x1K, 2x10K, 1x2K (*)
  • riviliitin (*)
  • päänauhat naaras (*)
  • päätyliuskat uros (*)

(*) valinnainen

Vaihe 2: Raspberry Pi -asennus

Tämä opas perustuu pohjimmiltaan Hzeller Githubin käyttäjän Raspbian Jessie Lite-, Python 2.7- ja RGB LED MATRIX -kirjastoon.

Ensinnäkin päivitä ja päivitä RPI

Asenna git

~ $ sudo apt-get install git

Lataa RGB LED MATRIX -kirjasto Githubista

~ $ git-klooni

~ $ cd rpi-rgb-led-matriisi

~ $ sudo tehdä

mustan listan RPI -sisäinen äänikortti

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

musta lista snd_bcm2835

EOF

~ $ sudo update -initramfs -u

Aseta ulkoiset äänikortin parametrit, jos tarvitset äänitoimintoja:

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

muutos:

defaults.ctl.card 0

defaults.pcm.card 0

kohteeseen

defaults.ctl.card 1

defaults.pcm.card 1

käynnistä sitten uudelleen.

Asenna nyt matriisikirjasto

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

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

~ $ make build-python

~ $ sudo make install-python

ja asenna muut tarvittavat kirjastot:

~ $ sudo easy_install pip

~ $ sudo pip asenna

Kopioi script samplebase.py ~/rpi-rgb-led-matrix/bindings/python/sample/kotihakemistoon

Hanki API -avain rekisteröitymään ilmaiseksi Open Weather Mapiin

Asenna nyt OWM Python -kääre PYthon 2.7: lle (kiitos CSPARPAGithub -käyttäjälle)

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

Hanki Google -kalenterin kirjautumistiedot noudattamalla ohjeita Google -kalenterin sovellusliittymässä

Jos haluat toistaa ääntä, asenna Pygame

~ $ sudo apt-get install python-pygame

RSS -syötteet tarvitsevat Feedparserin asennuksen

~ $ sudo pip asenna feedparser

kopioi skriptini ORAeng_131.py (englanninkielinen versio) tai ORAita_131.py (italialainen versio) kotihakemistoon

luoda kansioita äänille ja kuville:

mkdir dbsounds

mkdir owm

lataa ja kopioi kaikki-p.webp

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

lisää OWM -tunnuksesi riville 69 (API_key)

aseta kaupunki sääennusteelle (tarkista, onko se OWM: n peittämä ja oikea nimi hyväksytty) riveille 213, 215

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

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

********************************* PÄIVITYS 28.7.2019 ********** *******************

Uusi Google -kalenterin sovellusliittymä luo ongelmia. Olen ratkaissut joidenkin moduulien poistamisen:

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

~ $ sudo apt-get autoremove python-pyasn1

kokeile skriptiä käynnissä

~ $ sudo python ORAeng_150.py # tai ORAita_150.py italialaiselle versiolle

skripti kysyy ensimmäistä kertaa GCAL -valtuutusta. Napsauta linkkiä Googlen api -tunnistetietoihin. Anna sitten lupa, jos kaikki on kunnossa, näet kellon alkavan.

johtuen liiallisesta RAM -muistin käytöstä useiden tuntien jälkeen, kirjoitin komentosarjan, joka yksinkertaisesti käynnistää python -komentosarjan uudelleen, kun RAM -käyttö ylittää kynnystason. Kopioi sitten kotihakemistoon skripti nimeltä memcheck, nimeä uudelleen memcheck.sh ja lisää crontab -e -ohjelmaan pääskripti

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

Vaihe 3: Skriptit

Pääskriptiä on muutettava tarpeidesi mukaan. Olettaen, että OWM- ja Goggle -kalenterin kirjautumistiedot on asetettu vastaaviksi API -ohjeiksi, tärkeimmät parametrit ovat:

kalenteritapahtumaluettelo, joka suoritetaan joka tunti minuutilla 2, 32 (katso komentorivi 65)

sääolosuhteet ja ennuste suoritetaan joka tunti minuutilla 7, 37 (ks. komentorivi 66)

ajankohtaiset uutiset esiintyvät joka tunti minuutilla 11 (katso komentosarjan rivi 67)

uutiset RSS -kanava. Skriptin sisällä on Instructable RSS, mutta sitä voidaan muuttaa. (Katso komentorivi 366)

On selvää, että komentosarja antaa etusijan saapuville kalenteritapahtumille tai muistutusilmoituksille. Joskus kello ei suorita ominaisuuksiaan, jotta toiminnot eivät ylity.

Attiny85: n käynnistys- ja sammutusajastin on ohjelmoitava lähettämällä luonnos Tempo_V1_9_1Mhz_bugfix.ino.

Tämä mahdollistaa laitteen käynnistämisen kello 8 aamulla ja sammutuksen klo 23. Katso lisätietoja opetusohjelmasta.

Vaihe 4: Piiri

Piiri
Piiri
Piiri
Piiri
Piiri
Piiri

Piirissä on periaatteessa 3 osaa

- Päälle/pois -ajastin, jota käsittelevät DS3231 -moduuli, Attiny85 ja Mosfet

- kytkin kellotoimintojen manuaaliseen ohjaukseen

- liitäntäosa, jossa on RGB LED Matrix -tietojen ja tehon, äänivahvistimen ja Raspberry Pi: n kaapelointi

Ei mainittu resistiivinen jännitteenjakaja, jonka avulla RPI voi lukea HIGH/LOW 5V -signaalin Attiny85: stä

Kytkimet on kytketty RPI -nastaan ja GND: hen suoraan sisäisillä vastuksilla

Attiny85 -ajastin on peräisin edellisestä projektistani nimeltä TEMPO. Pohjimmiltaan DS3231 lähettää LOW -signaalin Attiny85 -keskeytystappiin, joka herättää sen lepotilasta. Herätessä Attiny85 lähettää HIGH -signaalin Mosfet -transistorille aktivoimalla RPI: n, LED -matriisin ja äänivahvistimen virtalähteen (jos sitä ei ole kytketty ylimääräiseen PS: ään releen kautta, viimeisenä kokoonpanona).

RPI: n sammuttamiseksi käsikirjoitukseni harkitsee, että RPI kuuntelee digitaalista signaalia nastassa 14, kun se on KORKEA, kutsutaan sammutuskomennoksi. Sitten RPI suorittaa oikean sammutusprosessin, ja minuutin kuluttua Attiny85 palaa lepotilaan ja Mosfet vastaanottaa LOW -signaalin, joka sammuttaa koko laitteen. Tämä prosessi on karkea, mutta tehokas.

PIR -moduuli on valinnainen ja kytketty suoraan RPI GPIO -laitteeseen.

Kokoonpanoni edellyttävät, että seuraavat RPI GPIO -nastat on kytketty:

15 PIRiin

14 - Attiny85 nasta 3 jännitteenjakajan kautta

21 relemoduuliin

2 vaihtaaksesi (ENTER BUTTON)

3 vaihtaaksesi (CHANGE STATE BUTTON)

Ongelmat:

- melu johtuen LED Matrix -virtalähteestä, joka ratkaistaan pienellä PS: llä vain äänivahvistimelle. Valinnainen rele mahdollistaa vahvistimen kytkemisen päälle vain tarvittaessa. Tämä voi aiheuttaa kohinan, kun se kytkeytyy päälle/pois.

Piiri on syövytetty kuparilevyllä, 3D -tulostimella, merkillä ja ferrikloridilla.

Vaihe 5: Kokoaminen

Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen
Kokoaminen

Olen mukauttanut tähän projektiin yleisen 40 x 50 cm: n kehyksen yhdessä 3D -tulostettujen osien ja joidenkin lisävarusteiden kanssa.

Lasi on suojattu ikkunan aurinkokalvolla ja himmeällä muovilevyllä. Led -matriisi on pidettävä noin 1 cm: n etäisyydellä lasista, jotta valkoiset LED -valot eivät näy. Pieniä ruuveja tarvitaan M3 -muttereina ja -pultteina. Pakolliset ovat kaapelit ja lämpökovettuva vaippa.

Led -matriisit ruuvataan kehyksen takapaneeliin.

Vaihe 6: Ja nyt?

Ja nyt ?
Ja nyt ?
Ja nyt ?
Ja nyt ?

Seuraava askel on lisätä lämpötila -anturi, Bluetooth -toimintojen aktivointi ja, miksi ei, Internet -radiosoitin, kunnes Raspberry Pi -potentiaali on mahdollisimman suuri.

Hei hei

Kellokilpailu
Kellokilpailu
Kellokilpailu
Kellokilpailu

Toinen sija kellokilpailussa

Suositeltava: