Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Koodaus ongelmanratkaisuna
- Vaihe 2: Koodaus: Säätietojen saaminen
- Vaihe 3: Koodaus: Tietojen käyttäminen
- Vaihe 4: Koodaus: RPi.GPIO- ja LED -diodien käyttö
- Vaihe 5: Koodaus: LED -kirkkauden saaminen
- Vaihe 6: Koodaus: viimeiset vaiheet
- Vaihe 7: Rakentaminen ja johdotus
- Vaihe 8: Esittely ja johtopäätös
Video: Raspberry PI LED -sääasema: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Loimme Raspberry PI Weather LED -aseman. Se kertoo käyttäjälle kuinka kuuma ja kylmä kaupunki on valaistumalla ja himmentämällä ledit. Se on myös johtanut kertomaan heille, sataako sadetta kaupungissa, jonka he kirjoittivat.
Luonut Michael Andrews ja Tio Marello.
Tarvikkeet
Työkalut
- Juotin
- Dremel
- Näin
Materiaalit
- Vadelma Pi 3 B+ ~ 40 dollaria ~ 30 dollaria
- Naaras -uroshyppyjohdot ~ 7 dollaria
- 3 sinistä ja 2 punaista LED -diodia ~ 11 dollaria
- 100 ohmin vastukset ~ 13 dollaria
- 4 x 4 x 1/4 puulauta ~ 5 dollaria
- Juotos ~ 10 dollaria
- Kuparilanka ~ 5 dollaria
Vaihe 1: Koodaus ongelmanratkaisuna
Koodaus on ongelmanratkaisu
Joten mikä on meidän projektimme ongelma? Ongelmamme on saada säätiedot ja sitten käyttää niitä kertomaan LED -valolle, ovatko ne sammuneet vai päällä. Tämä jakaa ongelmamme kolmeen osaan.
1. Säätietojen saaminen
2. Tietojen käyttäminen
3. LEDien käyttö
Kuitenkin kieli, jota käytimme tässä projektissa, Python, ja laitteisto, jolla se toimii, Python, antaa meille helpon tavan saavuttaa nämä tavoitteet.
Aloitetaan siis ensimmäisestä ongelmasta, säätietojen saamisesta.
Vaihe 2: Koodaus: Säätietojen saaminen
Python ei voi itse saada säätietoja. Meidän on tuotava kaksi työkalua sekä ulkoinen palvelu säätietojen saamiseksi. Tätä varten käytämme kolmea työkalua.
1. Pyynnöt, python -moduuli, joka mahdollistaa web -kaappaamisen
2. Json, python -moduuli, jonka avulla voimme käyttää JSON -tiedostomuotoa
3. OpenWeather, verkkosivusto, joka voi antaa meille säätietoja
Joten tuomme kaksi moduulia kirjoittamalla tämän koodin python -skriptimme yläosaan.
tuontipyynnöt
tuo json
Ennen kuin käytämme näitä työkaluja, meidän on kuitenkin käytettävä Openweatheria. Tätä varten meidän on luotava tili heidän sivustolleen ja hankittava sovellusliittymäavain. Seuraa heidän verkkosivustonsa ohjeita ja saat merkkijonon kirjaimia ja numeroita, joiden avulla voimme käyttää heidän palveluaan. Miten?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Our API -avain (ei todellinen)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather -puhelu #Täältä saamme käyttäjän kaupungin tekstitulosteena ("Kirjoita kaupunki!") city_name = input () #Tässä keräsimme osoitteen, jonka liitämme pyyntöihin. Saada säätiedot full_call = base_call+city_name+"& appid ="+openweather_api_key #Lopuksi soitamme request.get -osoitteeseen osoitteella ja muutamme sen json -tiedostoksi Response = request.get (full_call) WeatherData = Response.json () #JSON -tiedostot sisältävät erilaisia muuttujia, joihin voimme päästä käsiksi tämän syntaksin avulla ["sää"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Tässä meillä on koodi, joka antaa meille säätiedot. Pyynnöt muodossa request.get ottavat verkkosivuston osoitteen ja palauttavat meille tiedoston kyseiseltä verkkosivustolta. OpenWeather antaa meille osoitteen, jolle voimme antaa säätietoja json -muodossa. Kokoamme osoitteen, jonka liitämme pyyntöihin ja saamme takaisin json -tiedoston. Sitten luomme kaksi muuttujaa ja määritämme ne käyttäjän kaupungin lämpötilan ja sääolosuhteiden mukaan.
Joten tällä koodilla meillä on kaksi muuttujaa. Meillä on säätunnus ja lämpötila Kelvinissä
Vaihe 3: Koodaus: Tietojen käyttäminen
Nyt kun meillä on nämä kaksi muuttujaa, meidän on valmisteltava ne LED -valojamme varten. Tätä varten meidän ei tarvitse tuoda mitään moduuleja tätä varten.
Ensin muunnamme kelvinin Fahrenheitiksi.
Teemme tämän luomalla muuttujan tällä syntaksilla
Kaupungin_lämpötilaF = (Kaupungin_lämpötilaK - 273)*1,8 + 32
joka muuntaa Kelvinistä Fahrenheitiksi (joka todella muuntaa K -> C -> F)
Seuraava on säätunnuksemme. WeatherID on Openweatherin antama tunnus, joka kertoo meille kaupungin sääolosuhteista.
openweathermap.org/weather-conditions Tässä on luettelo niistä.
Huomasimme, että kaikki alle 700 -numero oli jonkinlainen sade, joten tarkistimme vain, onko koodi alle 700, nähdäksemme, sataako.
def CheckRain (IdCode): jos IdCode <700: return True else: return False
Tämän vuoksi meillä on kaksi muuttujaa valmiina käytettäväksi Vadelma PI -nastojen ja LED -diodien kanssa.
Vaihe 4: Koodaus: RPi. GPIO- ja LED -diodien käyttö
RaspberryPi: n mukana toimitetaan joukko urospuikkoja, joiden avulla voimme kommunikoida useiden sähkökomponenttien kanssa, jotka tässä tapauksessa ovat LED -diodeja; se muistuttaa Arduinoa ja sen järjestelmää. Raspberry PI on kuitenkin yleiskäyttöinen tietokone, toisin kuin Arduinon kaltainen mikro -ohjain. Joten meidän on tehtävä hieman enemmän työtä niiden käyttämiseksi. Tämä koostuu nastojen asettamisesta Raspberry Pi -laitteeseen. Teemme tämän käyttämällä tätä koodia.
tuoda RPi. GPIO GPIO: ksi #Tuomme moduulin, jotta voimme käyttää sitä
#Määritä nastatGPIO.setmode (GPIO. BCM) GPIO.setwarnings (False)
#Nastat, joihin LED -valot on kytketty. Nämä voivat olla erilaisia, jos rakennat sen, joten muista vertailla ja muuttaa tarvittaessa
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Kylmä_LED_PIN = 6
Sade_LED_PIN = 23
#Käymme läpi kaikki nastat
GPIO.setup (Rain_LED_PIN, GPIO. OUT) GPIO.setup (Extreme_Cold_LED_PIN, GPIO. OUT) GPIO.setup (Cold_LED_PIN, GPIO. OUT) GPIO.setup (Hot_LED_PIN, GPIO. OUT) GPIO.setup (Extreme_UT), Tämä koodi antaisi meidän kuitenkin käyttää vain kahta tilaa ledin kanssa, eli päälle ja pois. Tarvitsemme sitä kuitenkin voidaksemme himmentää valoja. Tätä varten käytämme pulssileveysmodulaatiota.
Pulssileveysmodulaation käyttäminen
Pulssileveysmodulaation avulla voimme antaa analogisen signaalin digitaalisen nastan avulla. Pohjimmiltaan se kytkee signaalilähteen päälle ja pois suurella nopeudella, mikä keskimäärin ulottuu tiettyyn jännitteeseen. RPi. GPIO antaa meille mahdollisuuden käyttää tätä, joskin lisäkoodilla.
#Luomme neljä nastaista objektia käyttämällä GPIO. PWM -komentoa, joka ottaa kanavanumeron
#Toinen numero on päivitysten määrä sekunnissa
ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100) HotLED = GPIO. PWM (Hot_LED_PIN, 100)
ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100)
KylmäLED = GPIO. PWM (kylmä_LED_PIN, 100)
Seuraavassa vaiheessa sinun on tiedettävä tapa, jolla päivitämme nämä nastat.
Päivitämme nastat komennolla
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x tässä tapauksessa olisi käyttöjakso, joka määrittää kuinka paljon se sykkii pois. Se vaihtelee välillä 0-100, joten meidän on perustettava seuraava koodimme tästä tosiasiasta.
Vaihe 5: Koodaus: LED -kirkkauden saaminen
Koska meillä on neljä erilaista lediä, haluamme sytyttää ne sen mukaan, miten. kylmä tai kuuma se on käyttäjän kaupungissa. Päätimme järjestää ledille neljä vaihetta.
#Toiminnot
def getmiddleleftledintensity (TemperatureinF): #Vasen yhtälö: y = -(50/20) x + 175 #Oikea yhtälö: y = (50/20) x -75 return -(50/20)*Temperature inF + 175
keskitason valon voimakkuuden (lämpötila F):
#Vasen yhtälö: y = - (50/20) x + 175 #Oikea yhtälö: y = (50/20) x - 75 paluu (50/20)*Lämpötila F - 75
vasen vasenintensiteetti (lämpötila F):
#LeftEquation: y = - (100/30) x + 200 #Oikea tasaus: y = (100/30) x - (400/3)
paluu -(100/30)*Lämpötila F + 200
määrittele taustatehokkuusvalo (lämpötila F):
# Vasen tasaus: y = - (100/30) x + 200 # Oikea tasaus: y = (100/30) x - (400/3)
paluu (100/30)*Lämpötila F - (400/3)
#LED -valojen asettaminen
def GetLEDBrightness (lämpötila):
jos lämpötila <= 0: extremecoldled = 100 coldled = 100 hotled = 0 extremehotled = 0
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 kylmä = 0 hotled = 100 extremehotled = 100
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 0 <lämpötila <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 30 <lämpötila <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremehotled = 0
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 50 <lämpötila <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0
kylmä = 100 - kuuma
extremecoldled = 0
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 kylmä = 50 hotled = 50 extremehotled = 0
tulosta ("Extreme cold led:" + str (extremecoldled))
print ("Kylmä led:" + str (kylmä)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (kylmä)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled)
Okei, tämä koodiosa on todella pitkä. Sitä on myös melko vaikea selittää. Pohjimmiltaan yllä oleva koodi tarkastelee Fahrenheit -lämpötilaa ja määrittää, onko se vaihteluvälillä. Alueista riippuen se antaa numeron jokaiselle ledille ja sen kirkkaudelle ja asettaa sitten kirkkauden kutsumalla start () -komentoa. Siinä nopea selitys. Jos se riittää, suosittelen siirtymistä seuraavaan vaiheeseen, mutta jos haluat nähdä pitkän ja tylsiä selityksiä, jatka lukemista.
Kun ohjelmoimme, päätimme helpoimmin saada arvon lämpötilasta matemaattisen funktion muodossa. Joten loimme GeoGebrassa kaavion, joka edustaa lämpötilan ja johtamamme kirkkauden välistä suhdetta; syy ylittää 100 on se, että ylimääräinen menisi toiseen lediin. Kuitenkin törmäsimme ongelmaan saada yksi toiminto, joka yhdistää kaikki nämä kohdat yhdeksi funktioksi. Luulimme voivamme käyttää paraboliaa, mutta päätimme tyytyä käyttämään sarjan if -lausuntoja. Pohjimmiltaan tämä koko koodi on paloittainen funktio.
Ylhäällä olevat toiminnot ovat vastaavia viivayhtälöitä. Kun olemme määrittäneet, missä lämpötila on kaaviossa, suoritamme sen toiminnon läpi, saamme kirkkauden ja välitämme sen ledeille.
Vaihe 6: Koodaus: viimeiset vaiheet
Lopuksi lisäämme tämän lausunnon loppuun.
yrittää:
while (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) paitsi KeyboardInterrupt: quit ()
Kokeile ja poista -lausekkeiden avulla voimme poistua koodista käyttämällä pikanäppäintä; joka tapauksessa meidän olisi suljettava Raspberry Pi, jotta koodi voidaan käynnistää uudelleen. Sitten meillä on aikasilmukka, joka kestää ikuisesti. Päivitämme ledit ja sade -LEDit. Pysähdymme kymmenen sekunnin ajaksi; OpenWeather sallii vain 60 puhelua minuutissa ja 10 sekuntia on paljon päivityksiä.
Ja sen myötä koodimme on valmis. Alla on valmis koodi.
RaspberryPIWeatherStation.py
tuontipyynnöt |
importRPi. GPIOasGPIO |
importjson |
tuonnin aika |
#Openweather idCodes alle 700 ovat kaikki sateita |
defCheckRain (IdCode): |
ifIdCode <700: |
returnTotta |
muu: |
returnFalse |
keskimmäisen vasemmanpuoleisen voimakkuuden määrittäminen (lämpötila F): |
#Vasen yhtälö: y =-(50/20) x + 175 |
#Oikea yhtälö: y = (50/20) x - 75 |
paluu- (50/20)*Lämpötila F+175 |
keskitason valon voimakkuus (lämpötila F): |
#Vasen yhtälö: y =-(50/20) x + 175 |
#Oikea yhtälö: y = (50/20) x - 75 |
paluu (50/20)*Lämpötila F-75 |
defgetext äärimmäinen vasen intensiteetti (lämpötila F): |
#LeftEquation: y = -(100/30) x + 200 |
#Oikea yhtälö: y = (100/30) x - (400/3) |
paluu- (100/30)*Lämpötila F+200 |
defgetextremerightledintensity (lämpötila F): |
# Vasen tasaus: y = -(100/30) x + 200 |
# Oikea Tasaus: y = (100/30) x - (400/3) |
paluu (100/30)*Lämpötila F- (400/3) |
#GPIO -asetukset |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (Väärä) |
#Nastat |
Äärimmäiset_kuumat_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Kylmä_LED_PIN = 6 |
Sade_LED_PIN = 23 |
#Pin Setup |
GPIO.setup (Rain_LED_PIN, GPIO. OUT) |
GPIO.setup (Extreme_Cold_LED_PIN, GPIO. OUT) |
GPIO.setup (Kylmä_LED_PIN, GPIO. OUT) |
GPIO.setup (Hot_LED_PIN, GPIO. OUT) |
GPIO.setup (Extreme_Hot_LED_PIN, GPIO. OUT) |
ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100) |
HotLED = GPIO. PWM (Hot_LED_PIN, 100) |
ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100) |
KylmäLED = GPIO. PWM (kylmä_LED_PIN, 100) |
defGetLEDKirkkaus (lämpötila): |
iftemp <= 0: |
extremecoldled = 100 |
kylmä = 100 |
kuumennettu = 0 |
extremehotled = 0 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp> = 100: |
extremecoldled = 0 |
kylmä = 0 |
kuumennettu = 100 |
extremehotled = 100 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif0 <lämpötila <= 30: |
extremecoldled = getextremeleftledintensity (temp) -100 |
kylmä = 100 |
kuumennettu = 0 |
extremehotled = 0 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif100> lämpötila> = 70: |
extremecoldled = 0 |
kylmä = 0 |
kuumennettu = 100 |
extremehotled = getextremerightledintensity (temp) -100 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif30 <lämpötila <50: |
extremecoldled = 0 |
kylmä = getmiddleleftledintensity (temp) |
kuumennettu = 100 kylmä |
extremehotled = 0 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif50 <lämpötila <70: |
hotled = getmiddlerightledintensity (lämpötila) |
extremehotled = 0 |
kylmä = 100-kuuma |
extremecoldled = 0 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp == 50: |
extremecoldled = 0 |
kylmä = 50 |
kuumennettu = 50 |
extremehotled = 0 |
tulosta ("Extreme cold led:"+str (extremecoldled)) |
tulosta ("Kylmä led:"+str (kylmä)) |
tulosta ("Extreme hot led"+str (extremehotled)) |
tulosta ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (kylmä) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO -lähtö (sade_LED_PIN, GPIO. HIGH) |
muu: |
GPIO. output (Rain_LED_PIN, GPIO. LOW) |
#Api -tiedot: Korvaa API -avain oepnweather -api -avaimellasi |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print ("Kirjoita kaupunkiin!") |
kaupungin_nimi = input () |
full_call = base_call+city_name+"& appid ="+openweather_api_key |
#Säätietojen saaminen |
Vastaus = request.get (full_call) |
WeatherData = Response.json () |
WeatherID = WeatherData ["sää"] [0] ["id"] |
City_TemperatureK = WeatherData ["main"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Muunna Fahrenheitiksi |
#LED/GPIO -tavaraa |
tulosta ("K:"+str (City_TemperatureK)) |
tulosta ("F:"+str (City_TemperatureF)) |
tulosta (WeatherID) |
yrittää: |
kun taas (totta): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
aika. unta (10) |
paitsi Näppäimistö Keskeytys: |
lopettaa() |
katso rawRaspberryPIWeatherStation.py, jota isännöi GitHub ❤ kanssa
Vaihe 7: Rakentaminen ja johdotus
Vau! Kaikkien koodausten jälkeen pääsemme rakennukseen, mikä on huomattavasti helpompaa. Koska korona pysyi kotitilauksissa, emme päässeet moniin työkaluihin, joita odotimme olevan koulussa. Joten tämä osa on hieman yksinkertaisempi kuin mitä halusimme. Myös yksityiskohdat ovat joustavia. Aluksi piirsimme suorakulmion puulaudalle. Erityisellä koolla ei oikeastaan ole väliä liikaa, koska se toimii yksinkertaisesti alustana ledien ja elektroniikan asettamiseen.
Sitten porattiin viisi 1/8 reikää puukappaleeseemme.
Leikkasimme sitten suorakulmion laudasta käytettäväksi elektroniikkamme alustana.
(Tämä oli silloin, kun aloitimme; löysimme isomman sahan!)
Työnnämme sitten ledin anodi- ja katoditapit reikiin; ledien tulisi olla päällä, niiden sipulit ulospäin; seurata, mikä jalka on pidempi ja lyhyempi. Sitten ryhdyimme juottamaan johdot yhteen. Ensin juotamme vastukset LED -anodijalkaan (pidempi jalka).
Sitten juotamme LEDien katodijalat yhdeksi kuparilankaksi, jota käytämme maana. Sen pitäisi näyttää tältä.
Tämän jälkeen juotamme naaras-urospuolisten hyppyjohtimien urospäät kunkin vastuksen ja kuparin maadoitusjohtimen päätyihin. Kun olemme tehneet sen, voimme alkaa kytkeä johdot vadelman PI GPIO -nastoihin. Tässä kaavio! Huomaa kuitenkin, että nastat ovat edellä mainitun koodin neuloja.
Kun kaikki on kytketty, nyt sinun tarvitsee vain saada Python -tiedosto vadelma Pi: lle ja avata pääte. suorita "python3 RaspberryPIWeatherStation.py" ja tee sitten niin kuin se näyttää.
Vaihe 8: Esittely ja johtopäätös
Kiitos, että luit koko ajan! Liitän alla olevan python -komentosarjan! Jos voisimme lisätä asioita, se olisi todennäköisesti…
1. Tuki eri syöttötyypeille (kaupungit, maantieteelliset pisteet jne.)
2. Tuki lisää säätietoja varten
3. Lisää pieni näyttö tietojen näyttämiseksi
Kerro meille ajatuksesi! Tämä oli hauska projekti rakentaa. Opimme paljon pyyntöistä ja Internet -asiakirjojen saamisesta pythonin avulla, ja opimme myös paljon juottamisen käytöstä.
Suositeltava:
Puinen LED -pelinäyttö Powered by Raspberry Pi Zero: 11 vaihetta (kuvilla)
Puinen LED -pelinäyttö Powered by Raspberry Pi Zero: Tämä projekti toteuttaa 20x10 pikselin WS2812 -pohjaisen LED -näytön, jonka koko on 78x35 cm ja joka voidaan helposti asentaa olohuoneeseen retro -pelejä pelaamaan. Tämän matriisin ensimmäinen versio rakennettiin vuonna 2016 ja monet muut ihmiset rakensivat sen uudelleen. Tämä esimerkki
LED vilkkuu Raspberry Pi: n kanssa GPIO -nastojen käyttäminen Raspberry Pi: ssä: 4 vaihetta
LED vilkkuu Raspberry Pi: n kanssa GPIO -nastojen käyttäminen Raspberry Pi: ssä: Hei kaverit tässä ohjeessa opimme käyttämään Raspberry pi: n GPIO: ta. Jos olet koskaan käyttänyt Arduinoa, luultavasti tiedät, että voimme liittää LED -kytkimen jne. Sen nastoihin ja saada sen toimimaan. anna LED -valon vilkkua tai syötä kytkintä, joten
Neopixel Ws2812 LED- tai LED -nauhan tai LED -renkaan käyttö Arduinon kanssa: 4 vaihetta
Kuinka käyttää Neopixel Ws2812 LED- tai LED -nauhaa tai LED -rengasta Arduinon kanssa: Hei kaverit, koska Neopixel -led -nauha ovat erittäin suosittuja, ja sitä kutsutaan myös nimellä ws2812 led -nauha. Ne ovat erittäin suosittuja, koska näissä led -nauhoissa voimme käsitellä jokaista lediä erikseen, mikä tarkoittaa, että jos haluat, että muutamat ledit hehkuvat yhdellä värillä
ESP8266 RGB LED STRIP WIFI -ohjaus - NODEMCU IR -kaukosäätimenä LED -nauhalle, jota ohjataan Wifin kautta - RGB LED STRIP -älypuhelimen ohjaus: 4 vaihetta
ESP8266 RGB LED STRIP WIFI -ohjaus | NODEMCU IR -kaukosäätimenä LED -nauhalle, jota ohjataan Wifin kautta | RGB LED STRIP -älypuhelimen ohjaus: Hei kaverit tässä opetusohjelmassa opimme käyttämään nodemcu- tai esp8266 -laitetta IR -kaukosäätimenä RGB -LED -nauhan ohjaamiseen ja Nodemcu ohjataan älypuhelimella wifi -yhteyden kautta. Joten periaatteessa voit ohjata RGB -LED -nauhaa älypuhelimellasi
Raspbianin asentaminen Raspberry Pi 3 B: hen ilman HDMI: tä - Raspberry Pi 3B: n käytön aloittaminen - Raspberry Pi: n asentaminen 3: 6 vaihetta
Raspbianin asentaminen Raspberry Pi 3 B: hen ilman HDMI: tä | Raspberry Pi 3B: n käytön aloittaminen | Raspberry Pi 3: n asentaminen: Kuten jotkut teistä tietävät, Raspberry Pi -tietokoneet ovat aivan mahtavia ja saat koko tietokoneen vain yhdelle pienelle levylle. Raspberry Pi 3 Model B: ssä on neliytiminen 64-bittinen ARM Cortex A53 kellotaajuus 1,2 GHz. Tämä tekee Pi 3: sta noin 50