Sadržaj:
- Pribor
- Korak 1: Kodiranje kao rješavanje problema
- Korak 2: Kodiranje: Dobivanje vremenskih podataka
- Korak 3: Kodiranje: Korištenje tih podataka
- Korak 4: Kodiranje: Korištenje RPi.GPIO i LED dioda
- Korak 5: Kodiranje: Dobivanje svjetline LED diode
- Korak 6: Kodiranje: Završni koraci
- Korak 7: Izgradnja i ožičenje
- Korak 8: Demonstracija i zaključak
Video: Raspberry PI LED meteorološka stanica: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Napravili smo Raspberry PI Weather LED stanicu. Korisniku govori koliko je grad vruć i hladan osvjetljavanjem i zatamnjivanjem LED dioda. Također ima oznaku koja im govori da li pada kiša u gradu u koji su upisali ili ne.
Kreirali Michael Andrews i Tio Marello.
Pribor
Alati
- Lemilica
- Dremel
- Pila
Materijali
- Raspberry Pi 3 B+ ~ 40 dolara ~ 30 dolara
- Žica za muški spoj kratkih žica ~ 7 dolara
- 3 plave i 2 crvene LED diode ~ 11 dolara
- Otpornici od 100 ohma ~ 13 dolara
- 4 x 4 x 1/4 drvena daska ~ 5 dolara
- Lemitelj ~ 10 dolara
- Bakarna žica ~ 5 dolara
Korak 1: Kodiranje kao rješavanje problema
Kodiranje je rješavanje problema
Dakle, u našem projektu, koji je naš problem? Naš je problem doći do vremenskih podataka, a zatim pomoću tih podataka reći LED diodama jesu li isključene ili uključene. Dakle, ovo razdvaja naš problem na tri područja.
1. Dobivanje vremenskih podataka
2. Korištenje tih podataka
3. Korištenje LED -a
Međutim, jezik koji smo koristili za ovaj projekt, Python i hardver na kojem radi, Python, daju nam jednostavan način za postizanje ovih ciljeva.
Pa ćemo početi s prvim problemom, dobivanjem vremenskih podataka.
Korak 2: Kodiranje: Dobivanje vremenskih podataka
Python sam po sebi ne može dobiti vremenske podatke. Moramo uvesti dva alata, kao i vanjsku uslugu, za dobivanje vremenskih podataka. Da bismo to učinili, koristimo tri alata.
1. Zahtjevi, python modul koji dopušta web skropiranje
2. Json, python modul koji nam omogućuje korištenje JSON formata datoteke
3. OpenWeather, web stranica koja nam može dati vremenske podatke
Dakle, donosimo dva modula ispisujući ovaj kôd na vrh naše python skripte.
zahtjevi za uvoz
uvoziti json
Prije nego što upotrijebimo ove alate, moramo koristiti Openweather. Za to moramo stvoriti račun na njihovoj web stranici i dobiti API ključ. Slijedite upute na njihovoj web stranici i dobit ćete niz slova i brojki koji će nam omogućiti korištenje njihove usluge. Kako?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Naš API ključ (nije stvaran)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Ovdje dobivamo grad korisnika u obliku ispisa teksta ("Upišite grad!") city_name = input () #Ovdje smo sastavili adresu koju ćemo uključiti u requests.get za primanje vremenskih podataka full_call = base_call+city_name+"& appid ="+openweather_api_key #Na kraju zovemo requests.get s našom adresom, a zatim je pretvaramo u json datoteku Odgovor = requests.get (full_call) WeatherData = Response.json () #JSON datoteke sadrže različite varijable kojima možemo pristupiti pomoću ove sintakse #Ovdje dobivamo ID vremena i temperaturu u Kelvinu u gradu koji je korisnik upisao u WeatherID = WeatherData ["weather"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Ovdje imamo kôd koji nam daje naše vremenske podatke. Zahtjevi, u obliku requests.get, primaju adresu web stranice i vraćaju nam datoteku s te web stranice. OpenWeather nam daje adresu za poziv da nam da vremenske podatke u obliku jsona. Sastavljamo adresu koju uključujemo u zahtjeve i dobivamo json datoteku natrag. Zatim stvaramo dvije varijable i dodjeljujemo ih temperaturi i vremenskim prilikama u gradu korisnika.
Dakle, sada s ovim kodom imamo dvije varijable. Imamo weatherID i temperaturu u Kelvinu
Korak 3: Kodiranje: Korištenje tih podataka
Sada kada imamo ove dvije varijable, moramo ih pripremiti za upotrebu za naše LEDS. Za ovaj aspekt ne moramo uvoziti module za to.
Prvo, pretvorimo kelvin u Fahrenheit.
To činimo stvaranjem varijable s ovom sintaksom
Gradska_temperaturaF = (Gradska_temperaturaK - 273)*1,8 + 32
koji se pretvara iz Kelvina u Fahrenheit (koji se zapravo pretvara iz K -> C -> F)
Slijedi naš weatherID. WeatherID je ID koji Openweather pruža i koji nam govori o vremenskim prilikama u gradu.
openweathermap.org/weather-conditions Evo njihovog popisa.
Primijetili smo da je sve ispod broja 700 neka vrsta oborina, pa smo samo provjerili je li kôd ispod 700 da vidimo je li kiša.
def CheckRain (IdCode): ako je IdCode <700: return True else: return False
Time imamo naše dvije varijable pripremljene za upotrebu s našim PI pinovima od maline i LED diodama.
Korak 4: Kodiranje: Korištenje RPi. GPIO i LED dioda
RaspberryPi dolazi sa setom muških pinova koje možemo koristiti za komunikaciju s mnoštvom električnih komponenti, što su u ovom slučaju LED diode; to je slično Arduinu i njegovom sustavu. Međutim, Raspberry PI je računalo opće namjene, za razliku od mikrokontrolera poput Arduina. Dakle, moramo učiniti malo više posla da bismo ih koristili. To se sastoji od postavljanja pinova na Raspberry Pi. To radimo pomoću ovog koda.
uvozimo RPi. GPIO kao GPIO #Uvozimo modul kako bismo ga mogli koristiti
#Postavite pinsGPIO.setmode (GPIO. BCM) GPIO.setwarnings (False)
#Igle na koje su LED diode uključene. Oni se mogu razlikovati ako ga izgradite, pa ga usporedite i promijenite po potrebi
Ekstremni_Hot_LED_PIN = 26 Vrući_LED_PIN = 16
Ekstremno_hladno_LED_PIN = 5
Hladno_LED_PIN = 6
Kiša_LED_PIN = 23
#Prolazimo kroz svaki pin pomoću naredbe.setup, stavljajući njegov broj i postavljajući ga kao izlazni pin
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.set
Međutim, ovaj kôd omogućio bi nam samo korištenje dva stanja sa LED diodama, odnosno uključivanje i isključivanje. Međutim, to nam je potrebno da bismo mogli prigušiti svjetla. Da bismo to učinili, koristimo Pulse Width Modulation.
Korištenje modulacije širine impulsa
Modulacija širine impulsa omogućuje nam izlaz analognog signala pomoću digitalnog pina. U osnovi, uključuje i isključuje izvor signala velikom brzinom, koja prosječno iznosi do određenog napona. RPi. GPIO nam dopušta da to koristimo, iako s nekim dodatnim kodom.
#Izrađujemo četiri pin objekta pomoću naredbe GPIO. PWM koja uzima broj kanala
#Drugi broj je broj ažuriranja u sekundi
ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100) HotLED = GPIO. PWM (Hot_LED_PIN, 100)
ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100)
Hladno LED = GPIO. PWM (Hladno_LED_PIN, 100)
Za sljedeći korak morat ćete znati na koji način ažuriramo ove pinove.
Pinove ažuriramo pomoću naredbe
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x u ovom slučaju bio bi radni ciklus, koji određuje koliko impulsa odbija. Raspon je od 0-100, pa sljedeći kôd moramo temeljiti na toj činjenici.
Korak 5: Kodiranje: Dobivanje svjetline LED diode
Budući da imamo četiri različite LED diode, želimo ih osvijetliti ovisno o tome kako. hladno ili vruće je u gradu korisnika. Odlučili smo imati četiri etape za led.
#Funkcije
def getmiddleleftledintensity (TemperaturainF): #Left jednadžba: y = -(50/20) x + 175 #Desna jednadžba: y = (50/20) x -75 povratak -(50/20)*TemperaturainF + 175
def getmiddlerightledintensity (TemperatureinF):
#Lijeva jednadžba: y = - (50/20) x + 175 #Desna jednadžba: y = (50/20) x - 75 povratak (50/20)*TemperaturainF - 75
def getextremeleftled intenzitet (TemperaturainF):
#Lijeva jednadžba: y = - (100/30) x + 200 #Desna jednadžba: y = (100/30) x - (400/3)
povrat -(100/30)*TemperaturainF + 200
def getextremetreni intenzitet (TemperaturainF):
# Lijeva jednadžba: y = - (100/30) x + 200 # Desna jednadžba: y = (100/30) x - (400/3)
povrat (100/30)*TemperaturainF - (400/3)
#Postavljanje LED svjetla
def GetLEDBrightness (temp):
ako je temp <= 0: ekstremno rashlađeno = 100 ohlađeno = 100 zagrijano = 0 ekstremno hladno = 0
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehogled = 100
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 rashlađeno = 100 hotled = 0 extremehogled = 0
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehogled = getextremerightledintensity (temp) - 100
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (vruće) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - rashlađeno extremehogled = 0
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehogled = 0
rashlađen = 100 - zagrijan
ekstremno hladno = 0
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehogled = 0
print ("Ekstremno hladno led:" + str (ekstremno hladno))
print ("Hladno svjetlo:" + str (ohlađeno)) print ("Ekstremno vruće LED" + str (ekstremno zgusnuto)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (ohlađeno)
ExtremeHotLED.start (extremehogled)
HotLED.start (vruće)
U redu, ovaj dio koda je jako dugačak. Također je prilično teško objasniti. U biti, gornji kôd gleda temperaturu u Fahrenheitu i određuje je li u skupu raspona. Ovisno o rasponima, daje broj svakom LED -u i njegovu svjetlinu, a zatim postavlja svjetlinu pozivanjem naredbe start (). To je brzo objašnjenje. Ako je dovoljno, preporučujem da prijeđete na sljedeći korak, ali ako želite vidjeti dugo i dosadno objašnjenje, nastavite čitati.
Kad smo programirali, odlučili smo da je najlakši način da dobijemo vrijednost iz temperature u obliku matematičke funkcije. Dakle, stvorili smo grafikon u GeoGebri kako bismo predstavili odnos između naše temperature i LED svjetline; razlog zašto ide iznad 100 je taj što bi dodatak išao u drugo mjesto. Međutim, naišli smo na pitanje dobivanja jedne funkcije za preslikavanje svih ovih točaka na jednu funkciju. Mislili smo da bismo mogli upotrijebiti parabolu, ali odlučili smo se zadovoljiti samo upotrebom niza if naredbi. U biti, cijeli ovaj kôd je komadna funkcija.
Funkcije na vrhu su odgovarajuća jednadžba linija. Nakon što odredimo gdje je temperatura na grafikonu, prolazimo kroz tu funkciju, dobivamo svjetlinu i prosljeđujemo je na LED diode.
Korak 6: Kodiranje: Završni koraci
Na kraju, ovu izjavu dodajemo na kraju.
probati:
while (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) osim KeyboardInterrupt: quit ()
Naredbe try i except omogućuju nam izlaz iz koda pomoću prečice na tipkovnici; u svakom slučaju, morali bismo ugasiti Raspberry Pi za ponovno pokretanje koda. Zatim imamo while petlju koja traje zauvijek. Ažuriramo LED diode, kao i LED za kišu. Zastajemo na deset sekundi; OpenWeather dopušta samo 60 poziva za prijenos podataka u minuti, a 10 sekundi dosta je ažuriranja.
I time je naš kôd gotov. Ispod je gotov kod.
RaspberryPIWeatherStation.py
importrequests |
importRPi. GPIOasGPIO |
importjson |
importtime |
#Otvoreni vremenski id kodovi manji od 700 su sve oborine |
defCheckRain (IdCode): |
ifIdCode <700: |
returnTrae |
drugo: |
returnFalse |
defgetmiddleleftledintensity (TemperatureinF): |
#Lijeva jednadžba: y =-(50/20) x + 175 |
#Desna jednadžba: y = (50/20) x - 75 |
povratak- (50/20)*TemperaturainF+175 |
defgetmiddlerightledintensity (TemperatureinF): |
#Lijeva jednadžba: y =-(50/20) x + 175 |
#Desna jednadžba: y = (50/20) x - 75 |
povrat (50/20)*TemperaturainF-75 |
defgetextreleleledled intenzitet (TemperaturainF): |
#Lijeva jednadžba: y = -(100/30) x + 200 |
#Desna jednadžba: y = (100/30) x - (400/3) |
povratak- (100/30)*TemperaturainF+200 |
defgetex izuzetno visok intenzitet (TemperaturainF): |
# Lijeva jednadžba: y = -(100/30) x + 200 |
# Desna jednadžba: y = (100/30) x - (400/3) |
povrat (100/30)*TemperaturainF- (400/3) |
#GPIO postavljanje |
Način rada GPIO.set (GPIO. BCM) |
GPIO.setwarnings (False) |
#Igle |
Ekstremno_vruće_LED_PIN = 26 |
Vrući_LED_PIN = 16 |
Ekstremno_hladno_LED_PIN = 5 |
Hladno_LED_PIN = 6 |
Kiša_LED_PIN = 23 |
#Pin postavljanje |
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_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) |
Hladno LED = GPIO. PWM (Hladno_LED_PIN, 100) |
defGetLEDBrightness (temp): |
iftemp <= 0: |
ekstremno rashlađeno = 100 |
ohlađeno = 100 |
vruće = 0 |
ekstremno zbijen = 0 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
eliftemp> = 100: |
ekstremno hladno = 0 |
ohlađeno = 0 |
vruće = 100 |
ekstremno zbijen = 100 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
elif0 <temp <= 30: |
ekstremno rashlađeno = getextremeleftledintensity (temp) -100 |
ohlađeno = 100 |
vruće = 0 |
ekstremno zbijen = 0 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
elif100> temp> = 70: |
ekstremno hladno = 0 |
ohlađeno = 0 |
vruće = 100 |
ekstremno zgusnut = getextremerightledintensity (temp) -100 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
elif30 <temp <50: |
ekstremno hladno = 0 |
hladno = getmiddleleftledtenzitet (temp) |
uzavrelo = 100-ohlađeno |
ekstremno zbijen = 0 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
ekstremno zbijen = 0 |
ohlađen = 100-vruć |
ekstremno hladno = 0 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
eliftemp == 50: |
ekstremno hladno = 0 |
ohlađeno = 50 |
vruće = 50 |
ekstremno zbijen = 0 |
print ("Ekstremno hladno led:"+str (ekstremno hladno)) |
print ("Hladno svjetlo:"+str (hladno)) |
print ("Extreme hot LED"+str (extremehogether)) |
print ("Hot LED:"+str (hotled)) |
ExtremeColdLED.start (ekstremno hladno) |
ColdLED.start (ohlađeno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (vruće) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO.izlaz (Rain_LED_PIN, GPIO. HIGH) |
drugo: |
GPIO.izlaz (Rain_LED_PIN, GPIO. LOW) |
#Api informacije: Repalce API ključ s vašim oepnweather API ključem |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print ("Upišite grad!") |
ime_ grada = ulaz () |
full_call = base_call+city_name+"& appid ="+openweather_api_key |
#Getting Weather Data |
Odgovor = requests.get (full_call) |
WeatherData = Response.json () |
WeatherID = WeatherData ["weather"] [0] ["id"] |
City_TemperatureK = WeatherData ["main"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Pretvori u Fahrenheit |
#LED/GPIO stvari |
print ("K:"+str (City_TemperatureK)) |
print ("F:"+str (City_TemperatureF)) |
ispis (WeatherID) |
probati: |
dok (Istina): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
vrijeme.spavanje (10) |
osimKeyboardInterrupt: |
prestati() |
pogledajte rawRaspberryPIWeatherStation.py hostirano sa ❤ od GitHub -a
Korak 7: Izgradnja i ožičenje
Vau! Nakon svega tog kodiranja dolazimo do zgrade, što je znatno lakše. Zbog korona virusa nismo mogli doći do mnogih alata koje smo očekivali u školi. Dakle, ovaj dio je malo jednostavniji od onoga što smo namjeravali. I same specifičnosti su fleksibilne. Prvo smo nacrtali pravokutnik na drvenoj dasci. Specifična veličina zapravo nije previše važna, jer jednostavno služi kao platforma za postavljanje LED dioda i elektronike.
Zatim smo izbušili pet 1/8 rupa u našem komadu drveta.
Zatim smo izrezali pravokutnik s daske za upotrebu kao našu platformu za našu elektroniku.
(Tada smo počeli; našli smo veću pilu!)
Zatim gurnemo anodne i katodne igle vodilice u rupe; LED diode trebaju ležati na vrhu, a njihove žarulje vire; pratiti koja je noga duža i kraća. Tada smo počeli s lemljenjem žica. Najprije lemimo otpornike na anodnu nogu LED -a (dužu nogu).
Zatim smo lemili katodne krakove LED dioda na jednu bakrenu žicu koju ćemo koristiti kao uzemljenje. To bi trebalo izgledati ovako.
Nakon što to učinimo, lemimo muške krajeve žensko-muških kratkospojnih kabela na krajeve svakog otpornika i bakrenu uzemljenu žicu. Nakon što to učinimo, možemo početi spajati žice u malinove PI GPIO pinove. Evo dijagrama! No, imajte na umu da su pinovi oni u prethodno dotaknutom kodu.
Nakon što ste sve to ožičili, sve što trebate učiniti je postaviti Python datoteku na malinu Pi i otvoriti terminal. pokrenite "python3 RaspberryPIWeatherStation.py", a zatim učinite kako prikazuje.
Korak 8: Demonstracija i zaključak
Hvala što ste čitali do kraja! U nastavku prilažem python skriptu! Da postoji nešto što bismo mogli dodati, vjerojatno bi bilo …
1. Podrška za različite vrste unosa (gradovi, zemljopisne točke itd.)
2. Podrška za više vremenskih informacija
3. Dodajte mali zaslon za prikaz informacija
Javite nam svoja razmišljanja! Ovo je bio zabavan projekt za izgradnju. Naučili smo mnogo o zahtjevima i dobivanju internetskih dokumenata pomoću pythona, a naučili smo i o korištenju lemljenja.
Preporučeni:
Raspberry Pi Internet meteorološka stanica: 5 koraka (sa slikama)
Raspberry Pi Internet meteorološka stanica: *** Ažuriranje *** Ova instrukcija je zastarjela. Vremenske usluge za vremenske podatke, korištene u ovom Uputu, više ne rade. Međutim, postoji alternativni projekt koji u osnovi radi istu stvar (samo bolje - ovaj Instructa
NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)
Vremenska postaja NaTaLia: Arduino meteorološka stanica na solarni pogon učinila je to na pravi način: Nakon godinu dana uspješnog rada na 2 različite lokacije, dijelim svoje planove projekta meteoroloških stanica na solarni pogon i objašnjavam kako se razvila u sustav koji zaista može opstati dugo vremena razdoblja iz solarne energije. Ako pratite
DIY meteorološka stanica i senzorska stanica WiFi: 7 koraka (sa slikama)
DIY meteorološka stanica i WiFi senzorska stanica: U ovom projektu ću vam pokazati kako stvoriti meteorološku stanicu zajedno sa stanicom sa WiFi senzorom. Senzorska stanica mjeri lokalne podatke o temperaturi i vlažnosti i šalje ih putem WiFi -a meteorološkoj postaji. Meteorološka stanica tada prikazuje t
Potpuna meteorološka stanica Raspberry Pi: 14 koraka (sa slikama)
Kompletna meteorološka stanica Raspberry Pi: Pozdrav svima, ovo mi je prvi instruktor! U ovom vodiču vodit ću vas kako napraviti meteorološku stanicu Raspberry Pi s vlastitom bazom podataka i web lokacijom. Napravio sam ovu meteorološku postaju u kontekstu školskog zadatka, inspiraciju sam dobio na Insu
Meteorološka stanica Acurite 5 u 1 pomoću Raspberry Pi i Weewx -a (ostale su vremenske stanice kompatibilne): 5 koraka (sa slikama)
Meteorološka postaja Acurite 5 u 1 koristeći Raspberry Pi i Weewx (ostale meteorološke stanice su kompatibilne): Kad sam kupio meteorološku stanicu Acurite 5 u 1, želio sam moći provjeriti kakvo je vrijeme u mojoj kući dok me nema. Kad sam došao kući i postavio ga, shvatio sam da moram ili povezati zaslon s računalom ili kupiti njihovo pametno središte