INHOUDSOPGAWE:

1984 WeatherMan Pi: 7 stappe (met foto's)
1984 WeatherMan Pi: 7 stappe (met foto's)

Video: 1984 WeatherMan Pi: 7 stappe (met foto's)

Video: 1984 WeatherMan Pi: 7 stappe (met foto's)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, November
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Hierdie draagbare kassetspeler is nou 'n omringende IoT -weerskerm met 'n vroeë 80's -styl, met 'n "huidige toestande" -animasie, roltemperatuur en waarskynlikheidsgrafiek vir reën deur die bandvenster. As die weerstoestand verander, draai die servo-beheerde koptelefoon bo-op heen en weer as 'n subtiele waarskuwing.

Deur die funksionele banddeur oop te maak, kan ons sien dat die stowwerige oorspronklike komponente vervang is met 'n Raspberry Pi Zero W, 'n Pimoroni Unicorn Hat HD (LED Matrix) en 'n klein servo. Die weerdata word verkry met behulp van 'n Python-script wat navraag doen oor die ultra-akkurate Dark Sky Weather API, aangepas vir my spesifieke ligging.

Dit is 'n eenvoudige, maar aantreklike en funksionele IoT-konstruksie wat op die teenoorgestelde luidspreker van my YouTube-toonbank sit en my stilweg op hoogte hou van die weer.

Voorrade

Framboos Pi Zero

Pimoroni Unicorn HAT HD

Klein servo

1984 Hitachi SP-1 Persoonlike stereo en koptelefoon

USB WiFi -adapter

2 mm draadstang

Sugru (swart en grys)

GeoMag magneet

Stap 1: Afplakband

Band afbreek
Band afbreek
Band afbreek
Band afbreek
Band afbreek
Band afbreek

Ek het in September hierdie pragtige ou kassetspeler deur my skoonma gegee en het dadelik verlief geraak op sy ikoniese voorkoms en dik knoppies. Die ware trekpleister was egter die groot bandvenster - nadat ek dit ongeveer 15 sekondes besit het, het ek 'n liniaal uitgehaal en was verbaas om te sien dat dit in mm dieselfde grootte is as 'n standaard Raspberry Pi -hoed (hardeware bo -op).

Die ontdekking alleen was genoeg om my koekoekprojek verder in die lys te doen, en ek het dadelik begin werk deur die speler af te breek.

Die afbreek het redelik goed gegaan en ek het drie verskillende stukke gekry waarmee ek kon werk - ek het 'n paar plastiekdele kon breek, maar niks wat nie aan mekaar vasgemaak kon word nie.

Stap 2: Dark Sky Pi

Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi

Ek gebruik Dark Sky al 'n rukkie op my foon en was baie beïndruk met die akkuraatheid van die voorspellings, en ek was verheug om te sien dat dit 'n uitgebreide API bied wat ek in hierdie projek kan gebruik. ook op!

Gaan eers na https://darksky.net/dev en meld u aan vir 'n gratis rekening - met 'n 'proef' -rekening kan u 1000 API -versoeke per dag rig, wat genoeg is om elke 1,5 minute te herlaai - gereeld genoeg vir selfs my Britse vlak van weerbeheptheid.

Sodra u aangemeld het, kry u 'n 'geheime sleutel' - dit is wat u nodig het om toegang tot die data te kry en dit word in die Python -script gebruik, dus hou dit byderhand (en, u weet, geheim).

Ek het begin met die aanpassing van 'n script wat ek in die YouTube Subscriber Counter -build gebruik het, wat die Requests -module in Python gebruik om API -data op te haal. Die script wat ek gebruik het, is op GitHub, u hoef net u Dark Sky API -sleutel by te voeg en natuurlik u eie Latitude & Longitude -waardes te vervang.

Dit was redelik eenvoudig om data oor die huidige weersomstandighede af te haal, en ek het besluit om die elemente "Ikoon", "Neerslagwaarskynlikheid" en "Temperatuur" te gebruik.

Stap 3: Die kode

Die kode
Die kode

As u die kode wat ek gebruik het, wil hergebruik of afskakel, is dit in die WeatherMan -bewaarplek op GitHub - kloon of laai die "weer" -map af in die "pi" -map op u Raspberry Pi.

Die belangrikste skriffunksies is soos volg:

weerman.py

Dit is die hoofskrif wat die weerdata uit Dark Sky onttrek. U moet 'n Dark Sky -rekening op https://darksky.net/dev opstel en u geheime sleutel in die script plaas, waar aangedui. U moet ook die breedtegraad en lengtegraad van die weerligging waarin u belangstel, invoer - dit kan op Google Maps gevind word, klik net met die rechtermuisknop en kies 'Wat is hier?' en u kry 'n pop-up met die lengte/lengte van die ligging.

Na die herwinning van die API -data, stuur weatherman.py parameters deur na verskeie kleiner skrifte om die animasies en koptelefoonskommelings af te skop.

Die skrip sal begin word tydens die opstart deur die opstartlêer te wysig …

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… en voeg by:

@python3 /home/pi/weather/weatherman.py &

aan die einde van die lêer.

ikoon.py

Hierdie skrif neem 'n parameter "huidige toestande" uit die weatherman.py -script en gebruik dit om 'n weer -animasie van 16 x 16 te vertoon - dit word alles in die "ikone" -map gestoor en is deel van die standaard Unicorn HAT HD -dokumentasie. U kan die-p.webp

telefone.py

As die weerstoestande verander het vanaf die laaste API -versoek (of dit is 'n vars skoen en dit nie sneeu nie), word hierdie script van weatherman.py gebel en die servo word opdrag gegee om heen en weer te "jiggle" om u te waarsku dat toestande verander.

precip.py

Hierdie skrif aanvaar 'n "neerslagwaarskynlikheid" parameter van weatherman.py en vertoon lyne in blou op die Unicorn HAT met betrekking tot die % waarskynlikheid. As 100% al 16 rye blou gloei, as 50% slegs 8 rye ens.

temp.py

'N Ander standaard Pimoroni -skrif, hierdie neem 'n' temp' -parameter van weatherman.py en vertoon dit met rolteks. Dit is ingestel op die Herkules -truetype -lettertipe (in die "fonts" -map), maar u kan 'n standaardletter gebruik as u dit verkies. U kan dit selfs verbeter sodat die teks wat vertoon word, verander na gelang van die temperatuurwaarde!

Stap 4: Unicorn HAT & Servo

Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo

Dit was wonderlik om die weerdata in die hande te kry, maar nou moes ek dit op die Unicorn HAT vertoon. Ek het na verskillende stelle weerikone op die internet gekyk en was halfpad besig om dit aan te pas toe ek besef dat daar 'n weervoorbeeld by die Pimoroni -dokumentasie was - en dit sluit weeranimasies in!

Dit het baie werk bespaar, en ek was binne 'n kort tyd aan die gang, met 'n geanimeerde ikoon vir die huidige omstandighede, 'n bietjie rolteks vir die temperatuur en 'n grafiek vir die % neerslag (wat ligte wiskunde behels het). Ek het die skrifte apart gehou en die subprosesmodule van Python gebruik om parameters heen en weer deur te gee.

Die byvoeging van die servo was die ideale voertuig vir hierdie waarskuwings, aangesien dit 'n bietjie geraas sou maak en opvallend sou wees sonder om te irriterend te wees. Aangesien die HAT reeds baie van die Pi se penne opneem, het ek die servokabels aan die onderkant van die bord gesoldeer, met behulp van Pin 17 om die servo se beweging te beheer met behulp van Pulse Width Modulation.

Dit was nie ideaal om die servo van die Pi aan te dryf nie, maar dit sou slegs vir 'n kort rukkie gebruik word, so presisie was hier nie 'n groot probleem nie. Dit het gekoppel soos aangedui in die diagram, met bruin kabel na GND, rooi na 5v en oranje (die beheerkabel) na GPIO17.

Laastens het ek 'n paar van die weeranimasie -lêers in GIMP geredigeer om my persoonlike aanraking by te voeg, soos vlermuise op die maan en 'n glimlaggie op die son. Ek het ook 'n pasgemaakte kassetwielanimasie van 'Old Tech New Spec' bygevoeg om by die begin te speel, net vir die pret.

Stap 5: Jiggle met koptelefoon

Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle
Koptelefoon Jiggle

Die idee van die WeatherMan was dat dit passief op my lessenaarluidspreker sou sit en soms die weer sou vertoon, maar ek wou hê dat dit net 'n bietjie meer sou doen! Die oorfone wat daarmee gepaard gegaan het, was roosterbrood, maar klassieke 80's, so ek het besluit om iets daarmee te doen. Nadat ek al die kabels verwyder het en die gebroke een warm geplak het, het ek drie dele, die 3,5 mm-prop, die diamantvormige knoppie en die telefone self op hul buigsame metaalband.

Die idee het my opgeval dat as ek 'n manier kon vind om die telefone bo -op die eenheid te monteer, ek dit met 'n servo heen en weer kon laat draai, en dit as 'n ekstra kennisgewing kon gebruik.

Eers het ek die 3,5 mm -prop geboor en die diamantskakelaar uitmekaar gehaal en dit dan op 'n stuk draadstang gegooi. Vervolgens het ek 'n moer op 'n plastiekverbinder vasgeplak, sodat die staaf veilig (en reguit) bo -op die servo kon sit. Aan die ander kant van die staaf het ek nog 'n neut bygevoeg. Uiteindelik het ek grys Sugru gebruik om die bokant van die staaf aan die oorfoonband vas te bind en ook die moer aan die onderkant van die vergadering te bedek. As u nog nie van Sugru gehoor het nie, is dit 'n vormbare gom wat in klein sakkies kom - dit vorm soos Play -Doh, maar plak soos supergom en word hard soos plastiek!

Met die onlangse koue weer het die Sugru 'n paar dae geneem om heeltemal te verhard, maar die koptelefoon en hul standaard was gou gereed vir die finale vergadering.

Stap 6: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Die Pi, HAT en Servo werk almal goed op die bank, dus die volgende taak was om hulle in die saak te kry. Voordat ek met die groot komponente begin, het ek 'n bietjie grys Sugru gebruik om die volumeknop, die koptelefoonaansluiting en die "metal tape" -skakelaar vas te maak en die skoonheidsmiddels uit te sorteer. Ek het ook die oorspronklike Play, Stop, FF & Rew -knoppies aan 'n stuk plastiekbuis vasgeplak sodat hulle op die regte plek bly. Dit was jammer om hierdie keer nie een van die knoppies te gebruik nie, maar daar was nie regtig iets om oor te beheer nie!

Ek het die laaste van die grys Sugru gebruik om die servo in posisie te hou, met die as wat deur die vergrote koptelefoonaansluiting steek. Met die oorgang na die ander helfte van die omhulsel gebruik ek 'n swart Sugru om die HAT en Pi -eenheid aan die banddeur vas te maak sodat hulle daarmee kan oopgaan. Ek het die laaste aanraking baie geniet - om 'n GeoMag -magneet vas te maak sodat die deur stewig gesluit sou word.

Om die twee helftes bymekaar te maak, was 'n senuweeagtige onderneming, want ek was bang dat die Pi & Servo teen mekaar sou bots, maar uiteindelik was daar ongeveer 'n millimeter oor, baie in my boek. Aangesien die funky deur die volle toegang tot die binnekant sou gee vir toekomstige diens, het ek die twee helftes net aan mekaar vasgeplak, en nadat ek my vetterige vingerafdrukke afgevee het, was die koptelefoon bo -op klaar!

Stap 7: Stil obsessie

Rustige obsessie
Rustige obsessie
Rustige obsessie
Rustige obsessie

Tweede prys in die hergebruikskompetisie

Aanbeveel: