Përmbajtje:

Mjedra PI LED Stacioni i motit: 8 hapa
Mjedra PI LED Stacioni i motit: 8 hapa

Video: Mjedra PI LED Stacioni i motit: 8 hapa

Video: Mjedra PI LED Stacioni i motit: 8 hapa
Video: Осмотр дрейфующих льдов на ледоколе, работающем в зимний период | Gourmet Bus Tour 2024, Korrik
Anonim
Stacioni i motit Mjedër PI LED
Stacioni i motit Mjedër PI LED

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

  1. Makine per ngjitjen e metalit
  2. Dremel
  3. Sharrë

Materiale

  1. Raspberry Pi 3 B+ 40 dollarë ~ 30 dollarë
  2. Telat Jumper nga Femra në Mashkull 7 dollarë
  3. 3 dioda blu dhe 2 të kuqe LED 11 dollarë
  4. Rezistenca 100 Ohm 13 dollarë
  5. 4 x 4 x 1/4 Dërrasë druri ~ 5 dollarë
  6. Saldator 10 dollarë
  7. 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

Kodimi: Përdorimi i diodave RPi. GPIO dhe LED
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

Kodimi: Marrja e shkëlqimit LED
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: