Sadržaj:
- Supplies
- 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: Dobijanje svjetline LED diode
- Korak 6: Kodiranje: Završni koraci
- Korak 7: Izgradnja i ožičenje
- Korak 8: Demonstracija i zaključak
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Napravili smo Raspberry PI Weather LED stanicu. Korisniku govori koliko je grad vruć i hladan osvjetljavanjem i zatamnjivanjem LED dioda. Takođe ima traku koja im govori da li pada kiša u gradu u koji su upisali ili ne.
Kreirali Michael Andrews i Tio Marello.
Supplies
Alati
- Lemilica
- Dremel
- Saw
Materijali
- Raspberry Pi 3 B+ ~ 40 dolara ~ 30 dolara
- Žice za muške kratkospojnike ~ 7 dolara
- 3 plave i 2 crvene LED diode ~ 11 dolara
- 100 Ohm Resistors ~ 13 Dollars
- 4 x 4 x 1/4 drvena daska ~ 5 dolara
- Solder ~ 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š problem je pribaviti vremenske podatke, a zatim ih koristiti da obavijestimo naše LED diode 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. Upotreba LED dioda
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 vanjski servis, za dobivanje vremenskih podataka. Da bismo to učinili, koristimo tri alata.
1. Zahtjevi, python modul koji dozvoljava mrežno skeniranje
2. Json, python modul koji nam omogućava upotrebu JSON formata datoteke
3. OpenWeather, web stranica koja nam može dati vremenske podatke
Dakle, donosimo dva modula pisanjem ovog koda na vrh naše python skripte.
uvozni zahtevi
import json
Prije nego što upotrijebimo ove alate, moramo koristiti Openweather. Za to moramo stvoriti račun na njihovoj web stranici i nabaviti 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 vraćamo json datoteku. 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 nikakve module za ovo.
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 zaista 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 njihove liste.
Primijetili smo da je sve ispod broja 700 neka vrsta padavina, pa smo samo provjerili je li kôd ispod 700 da vidimo da li pada kiša.
def CheckRain (IdCode): ako je IdCode <700: return True else: return False
Uz to, naše dvije varijable su 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 nizom električnih komponenti, što su u ovom slučaju LED diode; to je slično Arduinu i njegovom sistemu. 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 se pobrinite da ga usporedite i promijenite kad je potrebno
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Ekstremno_hladno_LED_PIN = 5
Hladno_LED_PIN = 6
Kiša_LED_PIN = 23
#Prolazimo kroz svaki pin, koristeći.setup naredbu, unoseć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 bi nam omogućio samo korištenje dva stanja sa LED diodama, odnosno uključivanje i isključivanje. Međutim, potrebno nam je 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, on 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.
#Kreiramo č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)
ColdLED = GPIO. PWM (Cold_LED_PIN, 100)
Za sljedeći korak morat ćete znati na koji način ažuriramo ove pinove.
Ažuriramo pinove pomoću naredbe
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x u ovom slučaju bi bio radni ciklus, koji određuje koliko impulsa odbija. Raspon se kreće od 0-100, pa sljedeći kod moramo temeljiti na toj činjenici.
Korak 5: Kodiranje: Dobijanje 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 vodećeg.
#Functions
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):
#LeftEquation: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)
povratak -(100/30)*TemperaturainF + 200
def getextremetreni intezitet (TemperaturainF):
# Lijeva jednadžba: y = - (100/30) x + 200 # Desna jednadžba: y = (100/30) x - (400/3)
povratak (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 svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehogled = 100
print ("Ekstremno hladno led svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehogled = 0
print ("Ekstremno hladno led svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehogled = getextremerightledintensity (temp) - 100
print ("Ekstremno hladno led svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
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 svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehogled = 0
rashlađeno = 100 - vruće
ekstremno hladno = 0
print ("Ekstremno hladno led svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehogled = 0
print ("Ekstremno hladno led svjetlo:" + str (ekstremno hladno))
print ("Hladno LED:" + str (hladno)) print ("Ekstremno vruće LED" + str (ekstremno ugruvano)) print ("Vruće LED:" + str (vruće))
ExtremeColdLED.start (ekstremno hladno)
ColdLED.start (hladno)
ExtremeHotLED.start (extremehogled)
HotLED.start (hotled)
U redu, ovaj dio koda je zaista dugačak. Takođe je prilično teško objasniti. U osnovi, 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.
Kada 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 osvjetljenja; razlog zašto ide iznad 100 je taj što bi dodatni iznos išao u drugu lidu. 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 upotrebom niza if naredbi. U suštini, 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.
probaj:
while (Tačno): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) osim KeyboardInterrupt: quit ()
Naredbe try i except omogućuju nam da izađemo iz koda pomoću prečice na tastaturi; u svakom slučaju, morali bismo da ugasimo Raspberry Pi da bismo ponovo pokrenuli kod. Zatim imamo while petlju koja traje zauvijek. Ažuriramo LED diode, kao i LED kišu. Pauziramo deset sekundi; OpenWeather dozvoljava samo 60 poziva za prenos podataka u minuti, a 10 sekundi je dovoljno ažuriranja.
I time je naš kôd gotov. Ispod je gotov kod.
RaspberryPIWeatherStation.py
importrequests |
importRPi. GPIOasGPIO |
importjson |
importtime |
#Otvoreni idCod kodovi manji od 700 su sve padavine |
defCheckRain (IdCode): |
ifIdCode <700: |
returnTrue |
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 |
povratak (50/20)*TemperaturainF-75 |
defgetextreleleledled intenzitet (TemperaturainF): |
#LeftEquation: y = -(100/30) x + 200 |
#RightEquation: y = (100/30) x - (400/3) |
povratak- (100/30)*TemperaturainF+200 |
defgetextremetreni intezitet (TemperaturainF): |
# Lijeva jednadžba: y = -(100/30) x + 200 |
# Desna jednadžba: y = (100/30) x - (400/3) |
povratak (100/30)*TemperaturainF- (400/3) |
#GPIO Setup |
Način rada GPIO.set (GPIO. BCM) |
GPIO.setwarnings (False) |
#Pins |
Ekstremni_Hot_LED_PIN = 26 |
Vrući_LED_PIN = 16 |
Ekstremno_hladno_LED_PIN = 5 |
Hladno_LED_PIN = 6 |
Kiša_LED_PIN = 23 |
#Pin podešavanje |
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) |
ColdLED = GPIO. PWM (Cold_LED_PIN, 100) |
defGetLEDBrightness (temp): |
iftemp <= 0: |
ekstremno rashlađeno = 100 |
ohlađeno = 100 |
vruće = 0 |
ekstremno zauzeto = 0 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
eliftemp> = 100: |
ekstremno hladno = 0 |
ohlađeno = 0 |
vruće = 100 |
ekstremno zbijen = 100 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
elif0 <temp <= 30: |
extremecoldled = getextremeleftledintensity (temp) -100 |
ohlađeno = 100 |
vruće = 0 |
ekstremno zauzeto = 0 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
elif100> temp> = 70: |
ekstremno hladno = 0 |
ohlađeno = 0 |
vruće = 100 |
extremehogled = getextremerightledintensity (temp) -100 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
elif30 <temp <50: |
ekstremno hladno = 0 |
coldled = getmiddleleftledintensity (temp) |
vruće = 100-ohlađeno |
ekstremno zauzeto = 0 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
ekstremno zauzeto = 0 |
rashlađeno = 100-vrelo |
ekstremno hladno = 0 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
eliftemp == 50: |
ekstremno hladno = 0 |
ohlađeno = 50 |
vruće = 50 |
ekstremno zauzeto = 0 |
print ("Ekstremno hladno led svjetlo:"+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 (hladno) |
ExtremeHotLED.start (extremehogled) |
HotLED.start (hotled) |
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) |
probaj: |
dok (Tačno): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
time.sleep (10) |
osimKeyboardInterrupt: |
odustati () |
pogledajte rawRaspberryPIWeatherStation.py hostirano sa ❤ od strane GitHub -a
Korak 7: Izgradnja i ožičenje
Vau! Nakon svih tih kodiranja, dolazimo do zgrade, što je znatno lakše. Zbog korona virusa ostanak kod kuće 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. Određena 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 pinove elektrode u rupe; LED diode trebaju biti postavljene na vrhu, a njihove žarulje vire; pratite koja je noga duža i kraća. Tada smo počeli s lemljenjem žica. Prvo smo lemili 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. Kada to učinimo, možemo početi spajati žice u malinove PI GPIO pinove. Evo dijagrama! Međutim, imajte na umu da su pinovi oni u prethodno spomenutom kodu.
Nakon što ste sve ovo ožičili, sve što trebate učiniti je prenijeti 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 vam što ste do kraja pročitali! Priložiću python skriptu ispod! Da postoji nešto što bismo mogli dodati, vjerovatno bi bilo…
1. Podrška za različite vrste unosa (gradovi, geografske tačke itd.)
2. Podrška za više vremenskih informacija
3. Dodajte mali ekran za prikaz informacija
Javite nam svoja razmišljanja! Ovo je bio zabavan projekat za izgradnju. Naučili smo mnogo o zahtjevima i dobijanju internetskih dokumenata pomoću pythona, a naučili smo i o korištenju lemljenja.
Preporučuje se:
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
Lična meteorološka stanica koja koristi Raspberry Pi sa BME280 na Javi: 6 koraka
Osobna meteorološka stanica koja koristi Raspberry Pi s BME280 na Javi: Loše vrijeme uvijek izgleda gore kroz prozor. Uvijek smo bili zainteresirani za praćenje našeg lokalnog vremena i onoga što vidimo kroz prozor. Takođe smo želeli bolju kontrolu nad našim sistemom grejanja i klimatizacije. Izgradnja lične meteorološke stanice veliko je
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila pravi način: 8 koraka (sa slikama)
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila je pravi put: 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 je evoluirala u sistem koji zaista može opstati dugo vremena perioda iz solarne energije. Ako pratite
"Uradi sam" meteorološka stanica i WiFi senzorska stanica: 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 WiFi senzorskom stanicom. Senzorska stanica mjeri lokalne podatke o temperaturi i vlažnosti i šalje ih putem WiFi -a meteorološkoj stanici. Meteorološka stanica tada prikazuje t
Meteorološka stanica koja koristi Raspberry Pi sa BME280 u Pythonu: 6 koraka
Meteorološka stanica koja koristi Raspberry Pi s BME280 u Pythonu: is maith an scéalaí and aimir (The Weather is Good Storyteller) Uz globalno zagrijavanje i klimatske promjene, globalni vremenski uzorak postaje nestabilan u cijelom svijetu, što dovodi do brojnih vremenskih uvjeta prirodne katastrofe (suše, ekstremne