Përmbajtje:
- Furnizimet
- Hapi 1: Kodimi si zgjidhje problemesh
- Hapi 2: Kodimi: Marrja e të dhënave të motit
- Hapi 3: Kodimi: Përdorimi i atyre të dhënave
- Hapi 4: Kodimi: Përdorimi i diodave RPi.GPIO dhe LED
- Hapi 5: Kodimi: Marrja e shkëlqimit LED
- Hapi 6: Kodimi: Hapat e fundit
- Hapi 7: Ndërtimi dhe instalimi i telave
- Hapi 8: Demonstrim dhe Përfundim
Video: Mjedra PI LED Stacioni i motit: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:13
Ne krijuam një Stacion LED të motit Raspberry PI. Ai i tregon përdoruesit se sa i nxehtë dhe i ftohtë është një qytet duke ndriçuar dhe zbehur dritat. Ajo gjithashtu ka një udhëzues për t'u thënë atyre nëse bie shi apo jo në qytetin që ata shtypën.
Krijuar nga Michael Andrews dhe Tio Marello.
Furnizimet
Mjetet
- Makine per ngjitjen e metalit
- Dremel
- Sharrë
Materiale
- Raspberry Pi 3 B+ 40 dollarë ~ 30 dollarë
- Telat Jumper nga Femra në Mashkull 7 dollarë
- 3 dioda blu dhe 2 të kuqe LED 11 dollarë
- Rezistenca 100 Ohm 13 dollarë
- 4 x 4 x 1/4 Dërrasë druri ~ 5 dollarë
- Saldator 10 dollarë
- Tela bakri 5 dollarë
Hapi 1: Kodimi si zgjidhje problemesh
Kodimi është zgjidhja e problemeve
Pra, në projektin tonë, cili është problemi ynë? Problemi ynë është marrja e të dhënave të motit dhe më pas përdorimi i këtyre të dhënave për t'i treguar LED -ve tona nëse janë fikur apo ndezur. Pra, kjo e ndan problemin tonë në tre fusha.
1. Marrja e të dhënave të motit
2. Përdorimi i atyre të dhënave
3. Përdorimi i LEDS
Sidoqoftë, gjuha që përdorëm për këtë projekt, Python dhe pajisja në të cilën po funksionon, Python, na japin një mënyrë të lehtë për të arritur këto qëllime.
Pra, le të fillojmë me problemin e parë, marrjen e të dhënave të motit.
Hapi 2: Kodimi: Marrja e të dhënave të motit
Python në vetvete nuk mund të marrë të dhëna për motin. Duhet të importojmë dy mjete, si dhe një shërbim të jashtëm, për të marrë të dhënat e motit. Për ta bërë këtë, ne përdorim tre mjete.
1. Kërkesat, një modul python i cili lejon përpunimin e faqeve në internet
2. Json, një modul python i cili na lejon të përdorim formatin e skedarit JSON
3. OpenWeather, një faqe në internet që mund të na japë të dhëna për motin
Pra, ne i sjellim të dy modulet duke shkruar këtë kod në krye të shkrimit tonë python.
kërkesat e importit
import json
Sidoqoftë, para se të përdorim këto mjete, duhet të përdorim Openweather. Për këtë, ne duhet të krijojmë një llogari në faqen e tyre dhe të marrim një çelës API. Ndiqni udhëzimet në faqen e tyre të internetit dhe do të merrni një varg shkronjash dhe numrash të cilët do të na lejojnë të përdorim shërbimin e tyre. Si?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Çelësi ynë API (Jo i vërtetë)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Këtu marrim qytetin e përdoruesit në formën e printimit të tekstit ("Shkruaj një qytet!") city_name = input () #Këtu e mblodhëm adresën që do ta fusim në kërkesa. Merrni për të marrë të dhënat e motit full_call = base_call+city_name+"& appid ="+openweather_api_key #Së fundi ne i quajmë kërkesat. Merreni me adresën tonë, pastaj e konvertojmë në një skedar json Përgjigje = kërkesat.get (full_call) WeatherData = Response.json () Skedarët #JSON përmbajnë variabla të ndryshëm të cilëve mund t'i qasemi duke përdorur këtë sintaksë #Këtu marrim ID -në e motit dhe temperaturën në Kelvin të qytetit që përdoruesi ka shtypur në WeatherID = WeatherData ["moti"] [0] ["id"] City_TemperatureK = Të dhënat e motit ["kryesore"] ["temp"]
Këtu kemi kodin që na jep të dhënat tona të motit. Kërkesat, në formën e kërkesave.get, marrin një adresë të internetit dhe na japin një skedar nga ajo faqe në internet. OpenWeather na jep një adresë për të telefonuar për të na dhënë të dhëna të motit në formën e një json. Ne mbledhim një adresë të cilën e lidhim me kërkesat dhe marrim një skedar json përsëri. Pastaj krijojmë dy variabla dhe i caktojmë ato në temperaturën dhe motin e qytetit të përdoruesit.
Pra, tani, me këtë kod, ne kemi dy ndryshore. Ne kemi një ID të motit dhe një temperaturë në Kelvin
Hapi 3: Kodimi: Përdorimi i atyre të dhënave
Tani që kemi këto dy variabla, duhet t'i përgatisim për përdorim për LEDS -të tanë. Për këtë aspekt, ne nuk kemi nevojë të importojmë ndonjë modul për këtë.
Së pari, ne e konvertojmë kelvin në Fahrenheit.
Ne e bëjmë këtë duke krijuar një ndryshore me këtë sintaksë
Temperatura e qytetitF = (Temperatura e qytetitK - 273)*1.8 + 32
e cila konvertohet nga Kelvin në Fahrenheit (e cila me të vërtetë po konvertohet nga K -> C -> F)
Tjetra është ID -ja jonë e motit. WeatherID është një ID që ofron Openweather e cila na tregon për kushtet e motit të një qyteti.
openweathermap.org/weather-conditions Këtu është një listë e tyre.
Ne vumë re se gjithçka nën numrin 700 ishte një lloj reshje, kështu që ne thjesht kontrolluam nëse kodi ishte nën 700 për të parë nëse binte shi.
def CheckRain (IdCode): nëse IdCode <700: kthehu True tjetër: kthehu False
Me këtë, ne kemi dy variablat tanë të përgatitur për përdorim me kunjat tona Raspberry PI dhe LED Diodes.
Hapi 4: Kodimi: Përdorimi i diodave RPi. GPIO dhe LED
RaspberryPi vjen me një sërë kunjash meshkuj që mund t'i përdorim për të komunikuar me një mori komponentësh elektrikë, që në këtë rast, janë Diodat LED; është e ngjashme me Arduino dhe sistemin e tij. Sidoqoftë, Raspberry PI është një kompjuter me qëllime të përgjithshme, në krahasim me një mikrokontrollues si Arduino. Pra, ne duhet të bëjmë pak më shumë punë për t'i përdorur ato. Kjo konsiston në vendosjen e kunjave në Raspberry Pi. Ne e bëjmë këtë duke përdorur këtë kod.
importojmë RPi. GPIO si GPIO #Ne e importojmë modulin në mënyrë që ta përdorim atë
#Vendosni kunjatGPIO.setmode (GPIO. BCM) GPIO.setwarnings (False)
#Kunjat që LED janë të kyçura. Këto mund të jenë të ndryshme nëse e ndërtoni, prandaj sigurohuni që të krahasoni dhe ndryshoni kur është e nevojshme
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Ftohtë_LED_PIN = 6
Shiu_LED_PIN = 23
#Ne kalojmë nëpër çdo kunj, duke përdorur komandën.setup, duke futur numrin e tij dhe duke e vendosur atë si një pin dalës
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. OTUP) GPIO_POUT (GPIO_OOUT)
Sidoqoftë, ky kod do të na lejojë të përdorim vetëm dy gjendje me led, domethënë, ndezur dhe fikur. Sidoqoftë, ne kemi nevojë që ajo të jetë në gjendje të zbehë dritat. Për ta bërë këtë, ne përdorim modulimin e gjerësisë së pulsit.
Përdorimi i modulimit të gjerësisë së pulsit
Modulimi i Gjerësisë së Pulsit na lejon të nxjerrim një sinjal analog duke përdorur një kunj dixhital. Në thelb, ai ndez dhe fik burimin e sinjalit me një ritëm të lartë, i cili mesatarisht del në tension të caktuar. RPi. GPIO na lejon ta përdorim këtë, megjithëse me ndonjë kod shtesë.
#Ne krijojmë katër objekte pin duke përdorur komandën GPIO. PWM, e cila merr një numër kanali
#Numri i dytë është numri i përditësimeve në sekondë
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)
Për hapin tjetër, do të duhet të dini mënyrën se si i përditësojmë këto kunja.
Ne përditësojmë kunjat duke përdorur komandën
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.filloni (x)
HotLED.filloni (x)
x në këtë rast do të ishte cikli i punës, i cili përcakton se sa pulson. Shkon nga 0-100, kështu që ne duhet të bazojmë kodin tonë të ardhshëm në bazë të këtij fakti.
Hapi 5: Kodimi: Marrja e shkëlqimit LED
Për shkak se kemi katër led të ndryshëm, ne duam t'i ndriçojmë ato në varësi të mënyrës. i ftohtë ose i nxehtë është në qytetin e përdoruesit. Ne vendosëm të kishim katër etapa për led.
#Funksione
def getmiddleleftledintensity (TemperatureinF): #Ekuacioni i Majtë: y = -(50/20) x + 175 #Ekuacioni i djathtë: y = (50/20) x -75 kthim -(50/20)*Temperatura në F + 175
def getmiddlerightledintensity (Temperatura në F):
#Ekuacioni i majtë: y = - (50/20) x + 175 #Ekuacioni i drejtë: y = (50/20) x - 75 kthim (50/20)*Temperatura nëF - 75
def getextremeleftledintensity (Temperatura në F):
#Ekuacioni i majtë: y = - (100/30) x + 200 #Ekuacioni i drejtë: y = (100/30) x - (400/3)
kthimi -(100/30)*Temperatura në F + 200
def getextremerightledintensity (Temperatura në F):
# Majtas Ekuacioni: y = - (100/30) x + 200 # E djathtaEkuacioni: y = (100/30) x - (400/3)
kthimi (100/30)*Temperatura në F - (400/3)
#Vendosja e dritave LED
def GetLEDBritness (temp):
nëse temp <= 0: extremecoldled = 100 ftohur = 100 hotled = 0 extremehotled = 0
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Led ekstreme e nxehtë" + str (ekstreme e nxehtë)) print ("Led e nxehtë:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 ftohur = 0 hotled = 100 extremehotled = 100
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Led ekstreme e nxehtë" + str (ekstreme e nxehtë)) print ("Led e nxehtë:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensiteti (temp) - 100 ftohur = 100 hotled = 0 ekstrem nxehtë = 0
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Led ekstreme e nxehtë" + str (ekstreme e nxehtë)) print ("Led e nxehtë:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 ftohtë = 0 hotled = 100 extremehotled = merrni ekstremmerightledintensiteti (temp) - 100
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Led ekstreme e nxehtë" + str (ekstreme e nxehtë)) print ("Led e nxehtë:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.filloj (hotled) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - ftohur extremehotled = 0
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Ekstreme e nxehtë e udhëhequr" + str (ekstreme e nxehtë)) print ("E nxehtë e udhëhequr:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0
ftohur = 100 - i nxehtë
e ftohtë ekstrem = 0
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Ekstreme e nxehtë e udhëhequr" + str (ekstreme e nxehtë)) print ("E nxehtë e udhëhequr:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.filloj (hotled) elif temp == 50: extremecoldled = 0 ftohur = 50 hotled = 50 extremehotled = 0
print ("E ftohtë ekstreme e udhëhequr:" + str (ekstreme e ftohtë))
print ("E ftohtë e udhëhequr:" + str (ftohur)) print ("Ekstreme e nxehtë e udhëhequr" + str (ekstreme e nxehtë)) print ("E nxehtë e udhëhequr:" + str (e nxehtë))
ExtremeColdLED.fill (ekstrem i ftohtë)
ColdLED.filloj (ftohur)
ExtremeHotLED.fillo (ekstremehotled)
HotLED.fillimi (i nxehtë)
Mirë, kjo pjesë e kodit është vërtet e gjatë. It'sshtë gjithashtu mjaft e vështirë të shpjegohet. Në thelb, kodi i mësipërm shikon temperaturën në Fahrenheit dhe përcakton nëse është në një grup vargjesh. Në varësi të diapazoneve, jep një numër për secilin led dhe shkëlqimin e tij dhe më pas vendos shkëlqimin duke thirrur komandën start (). Ky është shpjegimi i shpejtë. Nëse mjafton, ju rekomandoj të kaloni në hapin tjetër, por nëse doni të shihni shpjegimin e gjatë dhe të lodhshëm, vazhdoni të lexoni.
Kur programuam, vendosëm se mënyra më e lehtë për të marrë një vlerë nga një temperaturë ishte në formën e një funksioni matematikor. Pra, ne krijuam një grafik në GeoGebra për të përfaqësuar lidhjen midis temperaturës sonë dhe shkëlqimit tonë të udhëhequr; arsyeja pse shkon mbi 100 është se ekstra do të shkonte në led të dytë. Sidoqoftë, ne hasëm në çështjen e marrjes së një funksioni të vetëm për të hartuar të gjitha këto pika në një funksion të vetëm. Ne menduam se mund të përdornim një parabolë, por vendosëm të mjaftoheshim vetëm me përdorimin e një sërë deklaratash if. Në thelb, i gjithë ky kod është një funksion copë -copë.
Funksionet në krye janë ekuacioni përkatës i linjave. Pasi të përcaktojmë se ku është temperatura në grafik, e kalojmë përmes atij funksioni, marrim shkëlqimin dhe e kalojmë në leds.
Hapi 6: Kodimi: Hapat e fundit
Së fundi, ne e shtojmë këtë deklaratë në fund.
provo:
ndërsa (E vërtetë): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) koha. gjumi (10) përveç Tastiera Ndërprerja: lë ()
Deklaratat try dhe përjashtim na lejojnë të dalim nga kodi duke përdorur një shkurtore të tastierës; sidoqoftë, do të na duhej të mbyllnim Raspberry Pi për të rinisur kodin. Pastaj kemi një lak while i cili shkon përgjithmonë. Ne përditësojmë led -et, si dhe përditësojmë LED -in e shiut. Ne ndalemi për dhjetë sekonda; OpenWeather lejon vetëm 60 thirrje për të dhëna në minutë, dhe 10 sekonda janë shumë përditësime.
Dhe me këtë, kodi ynë ka përfunduar. Më poshtë është kodi i përfunduar.
RaspberryPIWeatherStation.py
kërkesat e importit |
importRPi. GPIOasGPIO |
importjson |
koha e importit |
Kodet #Openweather më pak se 700 janë të gjitha reshje |
defCheckRain (IdCode): |
ifIdCode <700: |
kthimE vërtetë |
tjeter: |
kthimFals |
degjenerim i mesëm i mbetur me intensitet (Temperatura në F): |
#Ekuacioni i majtë: y =-(50/20) x + 175 |
#Ekuacioni i drejtë: y = (50/20) x - 75 |
kthim- (50/20)*Temperatura në F+175 |
defgetmiddlerightledintensity (Temperatura në F): |
#Ekuacioni i majtë: y =-(50/20) x + 175 |
#Ekuacioni i drejtë: y = (50/20) x - 75 |
kthimi (50/20)*Temperatura nëF-75 |
defgetextremeleftësia e dendur (Temperatura në F): |
#Ekuacioni i majtë: y = -(100/30) x + 200 |
#Ekuacioni i drejtë: y = (100/30) x - (400/3) |
kthim- (100/30)*Temperatura në F+200 |
defgetextremerightledintensity (Temperatura në F): |
# Ekuacioni i majtë: y = -(100/30) x + 200 |
# Ekuacioni i djathtë: y = (100/30) x - (400/3) |
kthimi (100/30)*Temperatura nëF- (400/3) |
#GPIO Setup |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (False) |
#Kunja |
Extreme_Hot_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Ftohtë_LED_PIN = 6 |
Shiu_LED_PIN = 23 |
#Konfigurimi i kunjit |
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) |
defGetLEDBritshmëria (temp): |
iftemp <= 0: |
e ftohtë ekstrem = 100 |
ftohur = 100 |
i nxehtë = 0 |
ekstreme e nxehtë = 0 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("LED ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
eliftemp> = 100: |
e ftohtë ekstrem = 0 |
ftohur = 0 |
i nxehtë = 100 |
ekstreme të nxehta = 100 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("Led ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
elif0 <temp <= 30: |
extremecoldled = merrni ekstremeleftledintensitet (temp) -100 |
ftohur = 100 |
i nxehtë = 0 |
ekstreme e nxehtë = 0 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("Led ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
elif100> temp> = 70: |
e ftohtë ekstrem = 0 |
ftohur = 0 |
i nxehtë = 100 |
extremehotled = merrni ekstremmerightledintensitet (temp) -100 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("LED ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
elif30 <temp <50: |
e ftohtë ekstrem = 0 |
ftohur = merr mesatarisht majtas intensitetin (temp) |
i nxehtë = 100-ftohur |
ekstreme e nxehtë = 0 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("LED ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
elif50 <temp <70: |
nxehtë = merrni mesatarisht të ndezur intensitetin (temp) |
ekstreme e nxehtë = 0 |
ftohur = 100-hotled |
e ftohtë ekstrem = 0 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("Led ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
eliftemp == 50: |
e ftohtë ekstrem = 0 |
ftohur = 50 |
i nxehtë = 50 |
ekstreme e nxehtë = 0 |
print ("E ftohtë ekstreme e udhëhequr:"+str (ekstreme e ftohtë)) |
print ("E ftohtë e udhëhequr:"+str (ftohur)) |
print ("LED ekstrem i nxehtë"+str (ekstrem i nxehtë)) |
print ("Led i nxehtë:"+str (i nxehtë)) |
ExtremeColdLED.fill (ekstrem i ftohtë) |
ColdLED.filloj (ftohur) |
ExtremeHotLED.fillo (ekstremehotled) |
HotLED.fillimi (i nxehtë) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO.putput (Rain_LED_PIN, GPIO. HIGH) |
tjeter: |
GPIO.putput (Rain_LED_PIN, GPIO. LOW) |
Informacioni #Api: Zëvendësoni çelësin API me çelësin tuaj oepnweather api |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print ("Shkruaj në një qytet!") |
emri i qytetit = hyrja () |
full_call = base_call+city_name+"& appid ="+openweather_api_key |
#Marrja e të dhënave të motit |
Përgjigje = kërkesat.get (thirrje e plotë) |
WeatherData = Response.json () |
WeatherID = Të dhënat e motit ["moti"] [0] ["id"] |
City_TemperatureK = WeatherData ["kryesore"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Konverto në Fahrenheit |
#Gjëra LED/GPIO |
print ("K:"+str (Qyteti_TemperatureK)) |
print ("F:"+str (City_TemperatureF)) |
print (ID e motit) |
provo: |
ndërsa (e vërtetë): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
koha. gjumi (10) |
përveçKyboardIntruptrupt: |
lë () |
shiko rawRaspberryPIWeatherStation.py e pritur me ❤ nga GitHub
Hapi 7: Ndërtimi dhe instalimi i telave
Whew! Pas gjithë atij kodimi, ne arrijmë në ndërtesë, e cila është dukshëm më e lehtë. Për shkak të urdhrave të qëndrimit të koronës në shtëpi, ne nuk mund të arrinim tek shumë nga mjetet që prisnim të kishim në shkollë. Pra, kjo pjesë është pak më e thjeshtë se sa kemi menduar. Vetë specifikat janë gjithashtu fleksibël. Së pari vizatuam një drejtkëndësh në një dërrasë druri. Madhësia specifike nuk ka shumë rëndësi, pasi thjesht shërben si një platformë për të vendosur led dhe pajisje elektronike.
Pastaj ne shpuam pesë 1/8 në vrima në copën tonë të drurit.
Ne pastaj e prerë drejtkëndëshin nga dërrasa për ta përdorur si platformën tonë për pajisjet tona elektronike.
(Kjo ishte kur filluam; gjetëm një sharrë më të madhe!)
Pastaj i shtyjmë kunjat e anodës dhe katodës së led -it në vrima; ledet duhet të jenë të vendosura në majë, llamba e tyre të dalë jashtë; mbani shënim se cila këmbë është më e gjatë dhe më e shkurtër. Pastaj u vendosëm të fillojmë të bashkojmë telat së bashku. Së pari ne lidhim rezistorët në anodën e LED (këmbën më të gjatë).
Pastaj, ne bashkojmë këmbët katodike të LED -ve në një tel të vetëm bakri të cilin do ta përdorim si tokë. Duhet të duket kështu.
Pasi ta bëjmë këtë, ne bashkojmë skajet mashkullore të kabllove bluzë femër-mashkull në skajet fundore të secilit rezistencë dhe tela tokëzimi bakri. Pasi ta bëjmë këtë, mund të fillojmë të lidhim telat në kunjat e mjedrës PI GPIO. Këtu është një diagram! Sidoqoftë, vini re, kunjat janë ato në kodin e prekur më parë.
Sapo të keni gjithçka të lidhur, tani gjithçka që duhet të bëni është të merrni skedarin Python në mjedër Pi dhe të hapni terminalin. drejtoni "python3 RaspberryPIWeatherStation.py" dhe më pas bëni siç tregon.
Hapi 8: Demonstrim dhe Përfundim
Faleminderit që lexuat deri në fund! Unë do të bashkëngjit skriptin python më poshtë! Nëse do të kishim gjëra që mund të shtonim, me siguri do të ishte…
1. Mbështetje për lloje të ndryshme hyrëse (qytete, pika gjeografike, etj.)
2. Mbështetje për më shumë informacion mbi motin
3. Shtoni një ekran të vogël për të shfaqur informacionin
Na tregoni mendimet tuaja! Ky ishte një projekt argëtues për tu ndërtuar. Mësuam shumë për kërkesat dhe marrjen e dokumenteve në internet duke përdorur python, dhe gjithashtu mësuam shumë për përdorimin e saldimit.
Recommended:
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit DIY & Stacioni i sensorit WiFi: 7 hapa (me fotografi)
DIY Weather Station & WiFi Sensor Station: Në këtë projekt do t'ju tregoj se si të krijoni një stacion moti së bashku me një stacion sensor WiFi. Stacioni i sensorit mat të dhënat e temperaturës dhe lagështisë lokale dhe i dërgon ato, përmes WiFi, në stacionin e motit. Stacioni i motit më pas shfaq t
Katër byrekë - mjedra e re Pi 4 - Projektet kryesore dhe festimi !: 6 hapa
Four Pies - New Raspberry Pi 4 - Projektet kryesore dhe festimi !: Më poshtë një përmbledhje e shpejtë e përmbajtjes. Hyrje dhe shfaqje e videos Pie Pi 3.14 Pies Rezultati
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH i ngritur: 3 hapa
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH: Unë kam një rrëmujë të një stacioni të energjisë. Doja të kondensoja gjithçka që ngarkohej në një tavolinë pune dhe të kisha vend për të bashkuar/etj në të. Lista e gjërave të energjisë: Telefoni celular (i prishur, por ngarkon bateritë e telefonit tim, kështu që është gjithmonë i kyçur dhe rrjedh karikime