INHOUDSOPGAWE:
- Voorrade
- Stap 1: Kodering as probleemoplossing
- Stap 2: Kodering: kry weerdata
- Stap 3: Kodering: die gebruik van daardie data
- Stap 4: Kodering: Gebruik van RPi.GPIO en LED -diodes
- Stap 5: Kodering: kry LED -helderheid
- Stap 6: Kodering: Laaste stappe
- Stap 7: Bou en oprig
- Stap 8: Demonstrasie en gevolgtrekking
Video: Framboos PI LED Weerstasie: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Ons het 'n Raspberry PI Weather LED -stasie geskep. Dit vertel die gebruiker hoe warm en koud 'n stad is deur LED's op te lig en te verduister. Dit het ook 'n aanleiding gegee om hulle te vertel of dit in die stad reën of nie.
Geskep deur Michael Andrews en Tio Marello.
Voorrade
Gereedskap
- Soldeerbout
- Dremel
- Sien
Materiaal
- Framboos Pi 3 B+ ~ 40 Dollars ~ 30 Dollars
- Trui van vrou tot man ~ 7 dollar
- 3 blou en 2 rooi LED -diodes ~ 11 dollar
- 100 Ohm weerstande ~ 13 dollar
- 4 x 4 x 1/4 Houtplank ~ 5 Dollars
- Soldeer ~ 10 Dollars
- Koperdraad ~ 5 dollar
Stap 1: Kodering as probleemoplossing
Kodering is probleemoplossing
Wat is ons probleem in ons projek? Ons probleem is om weerdata te kry en dan die data te gebruik om ons LED's te vertel of hulle af is of aan is. Dit verdeel ons probleem dus in drie gebiede.
1. Kry weer data
2. Die gebruik van daardie data
3. Die gebruik van LED's
Die taal wat ons vir hierdie projek gebruik het, Python, en die hardeware waarop dit werk, Python, gee ons egter 'n maklike manier om hierdie doelwitte te bereik.
Dus, laat ons begin met die eerste probleem, met die verkryging van weerdata.
Stap 2: Kodering: kry weerdata
Python op sigself kan nie weerdata kry nie. Ons moet twee gereedskap invoer, sowel as 'n eksterne diens, om weerdata te kry. Om dit te doen, gebruik ons drie gereedskap.
1. Versoeke, 'n luislangmodule waarmee u webwerwe kan opspoor
2. Json, 'n luislangmodule waarmee ons die JSON -lêerformaat kan gebruik
3. OpenWeather, 'n webwerf wat vir ons weerdata kan gee
Dus bring ons die twee modules deur hierdie kode bo -aan ons python -skrif te skryf.
invoer versoeke
invoer json
Maar voordat ons hierdie gereedskap gebruik, moet ons Openweather gebruik. Hiervoor moet ons 'n rekening op hul webwerf skep en 'n API -sleutel kry. Volg die instruksies op hul webwerf, en u kry 'n reeks letters en syfers waarmee ons hul diens kan gebruik. Hoe?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Ons API -sleutel (nie werklik nie)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Hier kry ons die gebruiker se stad in die vorm van teksafdruk ("Tik 'n stad in!") city_name = input () #Hier het ons die adres bymekaargemaak wat ons sal aanvra by request.get om weerdata te ontvang full_call = base_call+city_name+"& appid ="+openweather_api_key #Uiteindelik bel ons versoeke.get met ons adres, dan omskep ons dit in 'n json -lêer Response = requests.get (full_call) WeatherData = Response.json () #JSON lêers bevat verskillende veranderlikes waartoe ons toegang kan verkry met behulp van hierdie sintaksis #Hier kry ons die weer -ID en die temperatuur in Kelvin van die stad wat die gebruiker ingevoer het WeatherID = WeatherData ["weer"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Hier het ons die kode wat ons weerdata gee. Versoeke, in die vorm van requests.get, neem 'n webwerfadres in en gee ons 'n lêer van die webwerf terug. OpenWeather gee ons 'n adres om te bel om vir ons weerdata in die vorm van 'n json te gee. Ons maak 'n adres bymekaar wat ons by versoeke aansluit en kry 'n json -lêer terug. Dan skep ons twee veranderlikes en ken dit toe aan die temperatuur en weerstoestand van die stad van die gebruiker.
Met hierdie kode het ons dus twee veranderlikes. Ons het 'n weer -ID en 'n temperatuur in Kelvin
Stap 3: Kodering: die gebruik van daardie data
Noudat ons hierdie twee veranderlikes het, moet ons dit voorberei vir gebruik vir ons LED's. Vir hierdie aspek hoef ons geen modules hiervoor in te voer nie.
Eerstens skakel ons die kelvin om in Fahrenheit.
Ons doen dit deur 'n veranderlike met hierdie sintaksis te skep
City_TemperatureF = (City_TemperatureK - 273)*1.8 + 32
wat omskakel van Kelvin na Fahrenheit (wat regtig omskakel van K -> C -> F)
Volgende is ons weer -ID. Die weatherID is 'n ID wat Openweather verskaf, wat ons vertel van die weerstoestande van 'n stad.
openweathermap.org/weather-conditions Hier is 'n lys daarvan.
Ons het opgemerk dat alles onder 700 -getal 'n soort neerslag was, en ons het net gekyk of die kode onder 700 was om te sien of dit reën.
def CheckRain (IdCode): as IdCode <700: return True else: return False
Daarmee het ons twee veranderlikes voorberei vir gebruik met ons Framboos PI -penne en LED -diodes.
Stap 4: Kodering: Gebruik van RPi. GPIO en LED -diodes
Die RaspberryPi kom met 'n stel manlike penne wat ons kan gebruik om met 'n magdom elektriese komponente te kommunikeer, wat in hierdie geval LED -diodes is; dit is soortgelyk aan Arduino en sy stelsel. Die Raspberry PI is egter 'n rekenaar vir algemene doeleindes, in teenstelling met 'n mikrobeheerder soos die Arduino. Ons moet dus 'n bietjie meer werk doen om dit te gebruik. Dit bestaan uit die opstel van die penne op die Raspberry Pi. Ons doen dit deur hierdie kode te gebruik.
voer RPi. GPIO in as GPIO #Ons voer die module in sodat ons dit kan gebruik
#Stel die pinsGPIO.setmode (GPIO. BCM) GPIO.setwarnings op (onwaar)
#Die penne waarop die LED's ingeprop is. Dit kan anders wees as u dit bou, dus vergelyk en verander indien nodig
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Koud_LED_PIN = 6
Reën_LED_PIN = 23
#Ons gaan deur elke pen, gebruik die.setup -opdrag, voer die nommer in en stel dit as 'n uitvoerpen in
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_L_
Met hierdie kode kan ons egter slegs twee toestande met die LED gebruik, dit wil sê aan en af. Ons het dit egter nodig om die ligte te kan verdof. Om dit te doen, gebruik ons Pulse Width Modulation.
Met behulp van Pulse Width Modulation
Met Pulse Width Modulation kan ons 'n analoog sein stuur met 'n digitale pen. In wese skakel die seinbron teen 'n hoë snelheid aan en af, wat gemiddeld tot 'n sekere spanning is. Met die RPi. GPIO kan ons dit gebruik, al is dit met 'n ekstra kode.
#Ons skep vier speldvoorwerpe met die GPIO. PWM -opdrag, wat 'n kanaalnommer opneem
#Die tweede nommer is die aantal kere wat dit per sekonde opdateer
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)
Vir die volgende stap moet u weet hoe ons hierdie penne opdateer.
Ons werk die penne op met die opdrag
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x in hierdie geval sou die dienssiklus wees, wat bepaal hoeveel dit afskakel. Dit wissel van 0-100, so ons moet ons volgende kode op die feit baseer.
Stap 5: Kodering: kry LED -helderheid
Omdat ons vier verskillende LED's het, wil ons hulle verlig, afhangende van hoe. koud of warm, dit is in die stad van die gebruiker. Ons het besluit om vier fases vir die ledes te hê.
#Funksies
def getmiddeleleftledintensity (TemperatureinF): #Left Equation: y = -(50/20) x + 175 #Right Equation: y = (50/20) x -75 return -(50/20)*TemperatureinF + 175
def getmiddlerightledintensity (TemperatuurinF):
#Linksvergelyking: y = - (50/20) x + 175 #Regtervergelyking: y = (50/20) x - 75 opbrengs (50/20)*TemperatuurinF - 75
def getextremeleftledintensity (TemperatureinF):
#Linksvergelyking: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)
opbrengs -(100/30)*Temperatuur in F + 200
def getextremerightledintensity (TemperatuurinF):
# Linksvergelyking: y = - (100/30) x + 200 # Regsvergelyking: y = (100/30) x - (400/3)
opbrengs (100/30)*Temperatuur inF - (400/3)
#Stel die LED -ligte in
def GetLEDBrightness (temp):
as temp <= 0: extremecoldled = 100 coldled = 100 hotled = 0 extremehotled = 0
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = 100
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremehotled = 0
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0
coldled = 100 - hotled
uiterste verkoue = 0
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehotled = 0
print ("Extreme cold led:" + str (extremecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (uiterste verkoue)
ColdLED.start (verkoue)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled)
Goed, hierdie gedeelte van die kode is regtig lank. Dit is ook redelik moeilik om te verduidelik. Die kode hierbo kyk in wese na die temperatuur in Fahrenheit en bepaal of dit binne 'n reeks reekse is. Afhangende van die reekse, gee dit 'n nommer vir elke led en die helderheid daarvan en stel dan die helderheid in deur die opdrag () op te roep. Dit is die vinnige verduideliking. As dit voldoende is, beveel ek aan dat u na die volgende stap gaan, maar as u die lang en vervelige verduideliking wil sien, moet u aanhou lees.
Toe ons programmeer, het ons besluit dat die maklikste manier om 'n waarde uit 'n temperatuur te kry, in die vorm van 'n wiskundige funksie was. Ons het dus 'n grafiek in GeoGebra gemaak om die verhouding tussen ons temperatuur en ons helderheid van die LED voor te stel; die rede waarom dit bo 100 gaan, is dat die ekstra in die tweede led ingaan. Ons het egter die probleem ondervind om 'n enkele funksie te kry om al hierdie punte na 'n enkele funksie te karteer. Ons het gedink ons kan 'n parabool gebruik, maar ons het besluit om net 'n reeks as -stellings te gebruik. In wese is hierdie hele kode 'n stuk -stuk funksie.
Die funksies bo -aan is die onderskeie lynevergelyking. Sodra ons vasgestel het waar die temperatuur op die grafiek is, voer ons dit deur die funksie, kry ons die helderheid en gee dit aan die LED's.
Stap 6: Kodering: Laaste stappe
Laastens voeg ons hierdie stelling aan die einde by.
probeer:
terwyl (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) behalwe KeyboardInterrupt: stop ()
Met die probeer en behalwe stellings kan ons die kode verlaat deur 'n kortpad te gebruik; in elk geval sou ons die Raspberry Pi moes afsluit om die kode weer te begin. Dan het ons 'n tyd -lus wat vir ewig loop. Ons werk die LED's op, en werk die reën -LED op. Ons hou tien sekondes stil; OpenWeather laat slegs 60 oproepe toe vir data per minuut, en 10 sekondes is baie opdaterings.
En daarmee is ons kode klaar. Hieronder is die voltooide kode.
FramboosPIWeatherStation.py
invoerversoeke |
importRPi. GPIOasGPIO |
invoer |
invoer tyd |
#Opweer -idKodes wat minder as 700 is, is alles neerslag |
defCheckRain (IdCode): |
ifIdCode <700: |
terugkeer Waar |
anders: |
return Valse |
vergete middeleeftige intensiteit (temperatuur inF): |
#Linksvergelyking: y =-(50/20) x + 175 |
#Regsvergelyking: y = (50/20) x - 75 |
opbrengs- (50/20)*Temperatuur in F+175 |
daagliks ligte intensiteit (temperatuur in F): |
#Linksvergelyking: y =-(50/20) x + 175 |
#Regsvergelyking: y = (50/20) x - 75 |
opbrengs (50/20)*Temperatuur in F-75 |
uiters ekstrem verhoogde intensiteit (temperatuur in F): |
#Linksvergelyking: y = -(100/30) x + 200 |
#Regtevergelyking: y = (100/30) x - (400/3) |
opbrengs- (100/30)*Temperatuur in F+200 |
ongetwyfeld ekstreme ligte intensiteit (temperatuur in F): |
# Links Vergelyking: y = -(100/30) x + 200 |
# Regsvergelyking: y = (100/30) x - (400/3) |
opbrengs (100/30)*Temperatuur in F- (400/3) |
#GPIO -opstelling |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (Onwaar) |
#Spelde |
Extreme_Hot_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Koud_LED_PIN = 6 |
Reën_LED_PIN = 23 |
#Pin -opstelling |
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: |
uitermatig verkoel = 100 |
verkoel = 100 |
verwarm = 0 |
extremehotled = 0 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp> = 100: |
uiterste verkoue = 0 |
verkoel = 0 |
verwarm = 100 |
extremehotled = 100 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif0 <temp <= 30: |
uiterste verkoue = kry ekstremverlengde intensiteit (temp) -100 |
verkoel = 100 |
verwarm = 0 |
extremehotled = 0 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif100> temp> = 70: |
uiterste verkoue = 0 |
verkoel = 0 |
verwarm = 100 |
extremehotled = getextremerightledintensity (temp) -100 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif30 <temp <50: |
uiterste verkoue = 0 |
verkoel = word middelmatig verlaag intensiteit (temp) |
hotled = 100-coldled |
extremehotled = 0 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
extremehotled = 0 |
verkoel = 100-warm |
uiterste verkoue = 0 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp == 50: |
uiterste verkoue = 0 |
verkoel = 50 |
verwarm = 50 |
extremehotled = 0 |
print ("Extreme cold led:"+str (extremecoldled)) |
print ("Cold led:"+str (coldled)) |
print ("Extreme hot led"+str (extremehotled)) |
print ("Hot led:"+str (hotled)) |
ExtremeColdLED.start (uiterste verkoue) |
ColdLED.start (verkoue) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO.uitvoer (Rain_LED_PIN, GPIO. HIGH) |
anders: |
GPIO.uitvoer (Rain_LED_PIN, GPIO. LOW) |
#API -inligting: Herhaal API -sleutel met u oepnweather -api -sleutel |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print ("Tik 'n stad in!") |
stadnaam = invoer () |
full_call = base_call+city_name+"& appid ="+openweather_api_key |
#Kry weerdata |
Antwoord = versoeke.get (volledige oproep) |
WeatherData = Response.json () |
WeatherID = WeatherData ["weer"] [0] ["id"] |
City_TemperatureK = WeatherData ["main"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Skakel oor na Fahrenheit |
#LED/GPIO -goed |
print ("K:"+str (City_TemperatureK)) |
print ("F:"+str (City_TemperatureF)) |
druk (WeatherID) |
probeer: |
terwyl (waar): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
tyd. slaap (10) |
behalweKeyboardInterrupt: |
ophou () |
sien rawRaspberryPIWeatherStation.py aangebied deur ❤ deur GitHub
Stap 7: Bou en oprig
Sjoe! Na al die kodering kom ons by die gebou, wat aansienlik makliker is. As gevolg van die korona -huisbesoek, kon ons nie by baie van die gereedskap kom wat ons by die skool sou hê nie. Hierdie gedeelte is dus 'n bietjie eenvoudiger as wat ons bedoel het. Die besonderhede self is ook buigsaam. Eers het ons 'n reghoek op 'n houtbord geteken. Die spesifieke grootte maak nie regtig saak nie, want dit dien eenvoudig as 'n platform om leds en elektronika aan te trek.
Toe boor ons vyf 1/8 in gate in ons stuk hout.
Ons sny dan die reghoek van die plank om ons platform vir ons elektronika te gebruik.
(Dit was toe ons begin; ons het 'n groter saag gevind!)
Ons druk dan die anode- en katodepenne van die led in die gate; die leds moet bo -op lê, hul bolle steek uit; hou dop watter been langer en korter is. Ons het toe begin om drade saam te soldeer. Eerstens soldeer ons die weerstande aan die anodebeen van die LED (die langer been).
Dan soldeer ons die katodepote van die LED's aan 'n enkele koperdraad wat ons as grond sal gebruik. Dit moet so lyk.
Nadat ons dit gedoen het, soldeer ons die manlike ente van die vroulike-manlike springkabels aan die eindpunte van elke weerstand en die koperdraad. Sodra ons dit gedoen het, kan ons die drade begin aansluit in die framboos PI GPIO -penne. Hier is 'n diagram! Let egter daarop dat die penne die kode is wat voorheen aangeraak is.
As u eers klaar is, hoef u net die Python -lêer op die framboos Pi te plaas en die terminale oop te maak. hardloop "python3 RaspberryPIWeatherStation.py" en doen dan soos dit wys.
Stap 8: Demonstrasie en gevolgtrekking
Dankie dat u deurgaans gelees het! Ek heg die luislang hieronder aan! As daar dinge is wat ons kan byvoeg, is dit waarskynlik …
1. Ondersteuning vir verskillende invoertipes (stede, geografiese punte, ens.)
2. Ondersteuning vir meer weerinligting
3. Voeg 'n klein skerm by om inligting te wys
Laat weet ons u gedagtes! Dit was 'n prettige projek om te bou. Ons het baie geleer oor versoeke en om internetdokumente te kry met behulp van python, en ons het ook baie geleer oor die gebruik van soldeer.
Aanbeveel:
Professionele weerstasie met behulp van ESP8266 en ESP32 DIY: 9 stappe (met foto's)
Professionele weerstasie met behulp van ESP8266 en ESP32 DIY: LineaMeteoStazione is 'n volledige weerstasie wat met professionele sensors van Sensirion sowel as 'n Davis -instrumentkomponent (reënmeter, windmeter) verbind kan word
HC-12 Weerstasie vir lang afstande en DHT-sensors: 9 stappe
HC-12 langafstand-weerstasie en DHT-sensors: In hierdie tutoriaal leer ons hoe u 'n afstandweerstasie op afstand kan maak met twee dht-sensors, HC12-modules en die I2C LCD-skerm. Kyk na die video
Persoonlike weerstasie met framboos Pi met BME280 in Java: 6 stappe
Persoonlike weerstasie met Raspberry Pi met BME280 in Java: Slegte weer lyk altyd erger deur 'n venster. Ons was nog altyd geïnteresseerd in die monitering van ons plaaslike weer en wat ons by die venster sien. Ons wou ook beter beheer oor ons verwarming en lugversorgingstelsel hê. Die bou van 'n persoonlike weerstasie is 'n goeie ding
NaTaLia Weerstasie: Arduino -sonkrag -weerstasie op die regte manier: 8 stappe (met foto's)
NaTaLia Weerstasie: Arduino -sonkrag -weerstasie op die regte manier: Na 1 jaar suksesvolle werking op 2 verskillende plekke deel ek my projekplanne met sonkrag -aangedrewe weerstasies en verduidelik hoe dit ontwikkel het tot 'n stelsel wat werklik oor 'n lang tyd kan voortbestaan tydperke van sonkrag. As jy volg
Weerstasie met framboos Pi met BME280 in Python: 6 stappe
Weerstasie met Raspberry Pi Met BME280 in Python: is maith an scéalaí an aimir (The Weather is a Good Storyteller) Met aardverwarming en klimaatsveranderingskwessies word die wêreldwye weerpatroon in ons wêreld wispelturig, wat lei tot 'n aantal weerverwante natuurrampe (droogtes, uiterste