Sisällysluettelo:

Raspberry PI LED -sääasema: 8 vaihetta
Raspberry PI LED -sääasema: 8 vaihetta

Video: Raspberry PI LED -sääasema: 8 vaihetta

Video: Raspberry PI LED -sääasema: 8 vaihetta
Video: The Raspberry Pi Sense Hat Is Awesome! 2024, Marraskuu
Anonim
Raspberry PI LED -sääasema
Raspberry PI LED -sääasema

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

  1. Juotin
  2. Dremel
  3. Näin

Materiaalit

  1. Vadelma Pi 3 B+ ~ 40 dollaria ~ 30 dollaria
  2. Naaras -uroshyppyjohdot ~ 7 dollaria
  3. 3 sinistä ja 2 punaista LED -diodia ~ 11 dollaria
  4. 100 ohmin vastukset ~ 13 dollaria
  5. 4 x 4 x 1/4 puulauta ~ 5 dollaria
  6. Juotos ~ 10 dollaria
  7. 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ö

Koodaus: RPi. GPIO- ja LED -diodien käyttö
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

Koodaus: LED -kirkkauden saaminen
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: