![Málna PI LED időjárás állomás: 8 lépés Málna PI LED időjárás állomás: 8 lépés](https://i.howwhatproduce.com/images/006/image-17782-j.webp)
Tartalomjegyzék:
- Kellékek
- 1. lépés: Kódolás problémamegoldásként
- 2. lépés: Kódolás: Időjárási adatok beszerzése
- 3. lépés: Kódolás: Az adatok felhasználása
- 4. lépés: Kódolás: RPi.GPIO és LED diódák használata
- 5. lépés: Kódolás: A LED fényerejének beállítása
- 6. lépés: Kódolás: utolsó lépések
- 7. lépés: Felépítés és bekötés
- 8. lépés: Demonstráció és következtetés
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47
![Málna PI LED időjárás állomás Málna PI LED időjárás állomás](https://i.howwhatproduce.com/images/006/image-17782-1-j.webp)
Létrehoztunk egy Raspberry PI Weather LED állomást. A LED -ek világításával és tompításával elmondja a felhasználónak, hogy milyen meleg és hideg egy város. Azt is vezetett, hogy megmondja nekik, hogy esik -e az eső abban a városban, amelyet beírtak.
Készítette: Michael Andrews és Tio Marello.
Kellékek
Eszközök
- Forrasztópáka
- Dremel
- Fűrész
Anyagok
- Raspberry Pi 3 B+ ~ 40 dollár ~ 30 dollár
- Női -férfi jumper vezetékek ~ 7 dollár
- 3 kék és 2 piros LED dióda ~ 11 dollár
- 100 ohmos ellenállások ~ 13 dollár
- 4 x 4 x 1/4 fa deszka ~ 5 dollár
- Forrasztás ~ 10 dollár
- Rézhuzal ~ 5 dollár
1. lépés: Kódolás problémamegoldásként
A kódolás problémamegoldás
Tehát mi a problémánk a projektünkben? A problémánk az időjárási adatok beszerzése, majd az adatok felhasználásával jelzi a LED -einknek, hogy ki vagy be vannak -e kapcsolva. Tehát ez három területre bontja a problémánkat.
1. Időjárási adatok lekérése
2. Az adatok felhasználása
3. LED -ek használata
Azonban a projekthez használt nyelv, a Python, és a hardver, amelyen fut, a Python, egyszerű módot ad arra, hogy elérjük ezeket a célokat.
Kezdjük tehát az első problémával, az időjárási adatok beszerzésével.
2. lépés: Kódolás: Időjárási adatok beszerzése
A Python önmagában nem tud időjárási adatokat szerezni. Két eszközt, valamint egy külső szolgáltatást kell importálnunk az időjárási adatok lekéréséhez. Ehhez három eszközt használunk.
1. Kérések, python modul, amely lehetővé teszi a webcraping -et
2. Json, egy python modul, amely lehetővé teszi a JSON fájlformátum használatát
3. Az OpenWeather egy olyan webhely, amely időjárási adatokat szolgáltathat számunkra
Tehát a két modult úgy hozzuk, hogy ezt a kódot a python szkriptünk tetejére írjuk.
import kérések
import json
Mielőtt azonban ezeket az eszközöket használnánk, használnunk kell az Openweather programot. Ehhez létre kell hoznunk egy fiókot a webhelyükön, és meg kell szereznünk egy API -kulcsot. Kövesse a weboldalukon megjelenő utasításokat, és kapni fog egy betűket és számokat, amelyek lehetővé teszik számunkra a szolgáltatás igénybevételét. Hogyan?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Our API kulcsunk (nem valódi)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Itt kapjuk meg a felhasználó városát szöveges nyomtatás formájában ("Írja be a várost!") city_name = input () #Itt összeállítottuk a címet, amelyet a kérésekhez csatlakoztatunk. Kapjunk időjárási adatokat full_call = base_call+city_name+"& appid ="+openweather_api_key #Végül felhívjuk a request.get címet, majd json fájlba konvertáljuk Response = request.get (full_call) WeatherData = Response.json () A #JSON fájlok különböző változókat tartalmaznak, amelyekhez ezt a szintaxist használva érhetjük el ["weather"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Itt van a kód, amely megkapja az időjárási adatainkat. A request.get formátumú kérések felvesznek egy webhely címet, és visszaadnak nekünk egy fájlt a webhelyről. Az OpenWeather megad egy címet, ahová felhívhatjuk, hogy json formában adhassunk meg időjárási adatokat. Összegyűjtünk egy címet, amelyet a kérésekhez csatlakoztatunk, és visszakapunk egy json fájlt. Ezután létrehozunk két változót, és hozzárendeljük őket a felhasználó városának hőmérsékletéhez és időjárásához.
Tehát most ezzel a kóddal két változónk van. Van időjárási azonosítónk és hőmérsékletünk Kelvinben
3. lépés: Kódolás: Az adatok felhasználása
Most, hogy megvan ez a két változó, elő kell készítenünk őket a LED -ek használatához. Ebből a szempontból nem kell modulokat importálnunk ehhez.
Először a kelvint Fahrenheitre konvertáljuk.
Ezt úgy tesszük meg, hogy létrehozunk egy változót ezzel a szintaxissal
Városi_hőmérsékletF = (Városi_hőmérsékletK - 273)*1,8 + 32
amely Kelvinből Fahrenheitre konvertál (ami valóban K -> C -> F -ből konvertál)
A következő az időjárási azonosítónk. Az weatherID egy olyan azonosító, amelyet az Openweather biztosít, és amely egy város időjárási viszonyairól tájékoztat bennünket.
openweathermap.org/weather-conditions Itt van egy lista ezekről.
Észrevettük, hogy minden 700 -as szám alatt valamiféle csapadék volt, ezért csak ellenőriztük, hogy a kód 700 alatt van -e, hogy lássuk, esik -e az eső.
def CheckRain (IdCode): ha IdCode <700: return True else: return False
Ezzel előkészítettük két változónkat a málna PI csapjainkhoz és a LED diódákhoz.
4. lépés: Kódolás: RPi. GPIO és LED diódák használata
![Kódolás: RPi. GPIO és LED diódák használata Kódolás: RPi. GPIO és LED diódák használata](https://i.howwhatproduce.com/images/006/image-17782-2-j.webp)
A RaspberryPi egy sor tűvel rendelkezik, amelyekkel kommunikálhatunk számos elektromos alkatrészkel, amelyek ebben az esetben a LED diódák; rokon az Arduino -val és annak rendszerével. A Raspberry PI azonban általános célú számítógép, szemben az olyan mikrokontrollerrel, mint az Arduino. Tehát egy kicsit többet kell dolgoznunk, hogy használhassuk őket. Ez a Raspberry Pi csapjainak beállításából áll. Ezt a kód használatával tesszük.
importálja az RPi. GPIO -t GPIO -ként #Importáljuk a modult, hogy használhassuk
#A tűk beállításaGPIO.setmode (GPIO. BCM) GPIO.setwarnings (Hamis)
#A LED -ekhez csatlakoztatott csapok. Ezek eltérőek lehetnek, ha felépíti, ezért feltétlenül hasonlítsa össze és szükség esetén módosítsa
Extrém_Hot_LED_PIN = 26 Forró_LED_PIN = 16
Extrém_hideg_LED_PIN = 5
Hideg_LED_PIN = 6
Eső_LED_PIN = 23
#Minden pin -n keresztül megyünk, a.setup paranccsal, beírjuk a számát és kimeneti tűként állítjuk be
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_)
Ez a kód azonban csak két állapotot használna a leddel, azaz be és ki. Szükségünk van azonban arra, hogy tompítsuk a fényeket. Ehhez impulzusszélesség -modulációt használunk.
Az impulzusszélesség -moduláció használata
Az impulzusszélesség -moduláció lehetővé teszi, hogy analóg jelet adjunk ki egy digitális tű segítségével. Lényegében nagy sebességgel kapcsolja be és ki a jelforrást, ami átlagol bizonyos feszültségre. Az RPi. GPIO lehetővé teszi számunkra ennek használatát, bár némi extra kóddal.
#Létrehozunk négy tűs objektumot a GPIO. PWM paranccsal, amely csatornaszámot vesz fel
#A második szám a másodpercenkénti frissítések száma
ExtremeHotLED = GPIO. PWM (Extreme_Hot_LED_PIN, 100) HotLED = GPIO. PWM (Hot_LED_PIN, 100)
ExtremeColdLED = GPIO. PWM (Extreme_Cold_LED_PIN, 100)
HidegLED = GPIO. PWM (Hideg_LED_PIN, 100)
A következő lépésben tudnia kell, hogyan frissítjük ezeket a csapokat.
A paranccsal frissítjük a csapokat
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x ebben az esetben a működési ciklus lenne, amely meghatározza, hogy mennyit pulzál. 0-100 között mozog, ezért a következő kódunkat erre a tényre kell alapoznunk.
5. lépés: Kódolás: A LED fényerejének beállítása
![Kódolás: A LED fényerejének elérése Kódolás: A LED fényerejének elérése](https://i.howwhatproduce.com/images/006/image-17782-3-j.webp)
Mivel négy különböző LED -ed van, szeretnénk megvilágítani őket, attól függően, hogy hogyan. hideg vagy meleg van a felhasználó városában. Úgy döntöttünk, hogy négy szakasz áll a vezetők rendelkezésére.
#Funkciók
def getmiddleleftledensensity (TemperatureinF): #Bal egyenlet: y = -(50/20) x + 175 #Jobb egyenlet: y = (50/20) x -75 visszatérés -(50/20)*HőmérsékletF + 175
a közepes fényerő csökkentése (F hőmérséklet):
#Bal oldali egyenlet: y = - (50/20) x + 175 #Jobb egyenlet: y = (50/20) x - 75 visszatérés (50/20)*Hőmérséklet F - 75
szélső szélsőbaloldali intenzitás (hőmérséklet F):
#LeftEquation: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)
visszatérés -(100/30)*HőmérsékletF + 200
def getextremerightledintensity (Temperature inF):
# Bal egyenlet: y = - (100/30) x + 200 # JobbEgyenlet: y = (100/30) x - (400/3)
visszatérés (100/30)*Hőmérséklet F - (400/3)
#A LED -lámpák beállítása
def GetLEDBrightness (hőmérséklet):
ha a hőmérséklet <= 0: extremecoldled = 100 coldled = 100 hotled = 0 extremehotled = 0
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hideg)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = 100
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hideg)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hideg)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hidegen)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremehotled = 0
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hideg)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0
hidegen = 100 - forró
extrém hidegen = 0
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hideg)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehotled = 0
print ("Extrém hideg led:" + str (extrém hideg))
print ("Hideg led:" + str (hidegen)) print ("Extrém meleg led" + str (extrémhőmérsékletű)) print ("Forró led:" + str (forró))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (hidegen)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled)
Rendben, ez a kódrész nagyon hosszú. Elég nehéz megmagyarázni is. Lényegében a fenti kód a Fahrenheit -fokban mért hőmérsékletet vizsgálja, és meghatározza, hogy tartományokban van -e. A tartományoktól függően számot ad minden LED -hez és fényerejéhez, majd a start () parancs meghívásával beállítja a fényerőt. Ez a gyors magyarázat. Ha elég, javaslom, hogy lépjen tovább a következő lépésre, de ha látni szeretné a hosszú és unalmas magyarázatot, olvassa tovább.
Amikor programoztunk, úgy döntöttünk, hogy a hőmérséklet legegyszerűbb módja matematikai függvény. Így létrehoztunk egy grafikont a GeoGebra -ban, amely bemutatja, hogy milyen kapcsolat van a hőmérsékletünk és a vezetett fényerő között; Azért megy 100 fölé, hogy az extra a második ledbe kerül. Azonban belefutottunk abba a kérdésbe, hogy egyetlen függvényt kapunk, amely ezeket a pontokat egyetlen függvényhez rendeli hozzá. Azt gondoltuk, hogy használhatunk egy parabolát, de úgy döntöttünk, hogy megelégszünk azzal, hogy ha egy sor állítást használunk. Lényegében ez az egész kód darabonkénti függvény.
A felső függvények a megfelelő egyenletek. Miután meghatároztuk, hogy a grafikonon hol van a hőmérséklet, futtassuk le azt a függvényen, kapjuk meg a fényerőt és adjuk át a LED -ekre.
6. lépés: Kódolás: utolsó lépések
Végül ezt a kijelentést a végéhez fűzzük.
próbáld ki:
míg (igaz): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10), kivéve a KeyboardInterrupt: quit ()
A try and excement utasítások lehetővé teszik, hogy kilépjünk a kódból egy billentyűparancs segítségével; mindkét esetben le kell állítanunk a Raspberry Pi -t, hogy újraindítsuk a kódot. Aztán van egy időciklusunk, amely örökké tart. Frissítjük a LED -eket, valamint frissítjük az eső LED -ét. Tíz másodpercig szünetet tartunk; Az OpenWeather csak 60 hívást tesz lehetővé adatforgalomra percenként, 10 másodperc pedig rengeteg frissítés.
És ezzel a kódunk befejeződött. Alább a kész kód.
RaspberryPIWeatherStation.py
importkérések |
importRPi. GPIOasGPIO |
importjson |
importálási idő |
Az #Offweather idCode 700 -nál kevesebb csapadék |
defCheckRain (IdCode): |
ifIdCode <700: |
returnTruve |
más: |
returnFalse |
középső bal oldali intenzitás (hőmérséklet F): |
#Bal oldali egyenlet: y =-(50/20) x + 175 |
#Jobb egyenlet: y = (50/20) x - 75 |
visszatérés (50/20)*Hőmérséklet F+175 |
defgetmiddler közepes intenzitás (hőmérséklet F): |
#Bal oldali egyenlet: y =-(50/20) x + 175 |
#Jobb egyenlet: y = (50/20) x - 75 |
visszatérés (50/20)*F-75 hőmérséklet |
defgetext szélsőbaloldali intenzitás (hőmérséklet F): |
#LeftEquation: y = -(100/30) x + 200 |
#RightEquation: y = (100/30) x - (400/3) |
visszatérés (100/30)*Hőmérséklet F+200 |
defgetextremerightleintensity (Temperature inF): |
# BalraEgyenlet: y = -(100/30) x + 200 |
# JobbEgyenlet: y = (100/30) x - (400/3) |
visszatérés (100/30)*Hőmérséklet F- (400/3) |
#GPIO beállítás |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (hamis) |
#Tüskék |
Extrém_Hot_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extrém_hideg_LED_PIN = 5 |
Hideg_LED_PIN = 6 |
Eső_LED_PIN = 23 |
#Pin Setup |
GPIO.setup (Rain_LED_PIN, GPIO. OUT) |
GPIO.setup (Extreme_Cold_LED_PIN, GPIO. OUT) |
GPIO.setup (hideg_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) |
HidegLED = GPIO. PWM (Hideg_LED_PIN, 100) |
defGetLEDBrightness (hőmérséklet): |
iftemp <= 0: |
extrém hidegen = 100 |
kihűlt = 100 |
forró = 0 |
extrémfényű = 0 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp> = 100: |
extrém hidegen = 0 |
kihűlt = 0 |
forró = 100 |
extrémfényű = 100 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif0 <hőmérséklet <= 30: |
extremecoldled = getextremeleftledintensity (temp) -100 |
kihűlt = 100 |
forró = 0 |
extrémfényű = 0 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif100> hőmérséklet> = 70: |
extrém hidegen = 0 |
kihűlt = 0 |
forró = 100 |
extremehotled = getextremerightledintensity (temp) -100 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif30 <hőmérséklet <50: |
extrém hidegen = 0 |
hidegen = getmiddleleftledensensity (temp) |
forró = 100-fázott |
extrémfényű = 0 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif50 <hőmérséklet <70: |
hotled = getmiddlerightledintensity (temp) |
extrémfényű = 0 |
hidegen = 100-forró |
extrém hidegen = 0 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp == 50: |
extrém hidegen = 0 |
kihűlt = 50 |
forró = 50 |
extrémfényű = 0 |
print ("Extrém hideg led:"+str (extrém hideg)) |
print ("Hideg led:"+str (hidegen)) |
nyomtatás ("Extrém meleg led"+str (extrémfényű)) |
print ("Forró led:"+str (forró) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (hidegen) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO. kimenet (Rain_LED_PIN, GPIO. HIGH) |
más: |
GPIO. kimenet (Rain_LED_PIN, GPIO. LOW) |
#Api információk: Cserélje ki az API -kulcsot az oepnweather API -kulccsal |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print ("Írj be egy várost!") |
városnév = input () |
full_call = base_call+city_name+"& appid ="+openweather_api_key |
#Időjárási adatok lekérése |
Válasz = request.get (full_call) |
WeatherData = Response.json () |
WeatherID = WeatherData ["weather"] [0] ["id"] |
City_TemperatureK = WeatherData ["main"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273)*1.8+32#Átalakítás Fahrenheitre |
#LED/GPIO cucc |
print ("K:"+str (City_TemperatureK)) |
print ("F:"+str (City_TemperatureF)) |
nyomtatás (WeatherID) |
próbáld ki: |
míg (igaz): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
time.sleep (10) |
kivéveKeyboardInterrupt: |
Kilépés() |
view rawRaspberryPIWeatherStation.py, amelyet a GitHub ❤ üzemeltet
7. lépés: Felépítés és bekötés
Tyűha! Ennyi kódolás után eljutunk az épülethez, ami lényegesen könnyebb. A korona otthon maradása miatt nem tudtunk hozzájutni sok olyan eszközhöz, amit elvártunk az iskolában. Tehát ez a rész egy kicsit egyszerűbb, mint amit terveztünk. A sajátosságok is rugalmasak. Először egy téglalapot rajzoltunk egy deszkára. A konkrét méret valójában nem sokat számít, mivel egyszerűen platformként szolgál a LED -ek és az elektronika elhelyezéséhez.
Ezután öt 1/8 rész lyukat fúrtunk a fadarabunkba.
Ezután kivágtuk a téglalapot a deszkából, hogy platformunkként használhassuk elektronikánkhoz.
(Ekkor kezdtük; találtunk egy nagyobb fűrészt!)
Ezután a led anód- és katódcsapjait benyomjuk a lyukakba; a LED -eknek a tetejükön kell lenniük, izzóik kilógnak; kövesse nyomon, melyik láb hosszabb és rövidebb. Ezután hozzákezdtünk a vezetékek összeforrasztásához. Először az ellenállásokat forrasztjuk a LED anód lábához (a hosszabb lábhoz).
Ezután forrasztjuk a LED -ek katódlábát egyetlen rézhuzalra, amelyet földelésként használunk. Ennek így kell kinéznie.
Ezt követően forrasztjuk a női-férfi áthidaló kábelek hüvelyi végeit az egyes ellenállások és a réz földelővezeték végére. Miután ezt megtettük, elkezdhetjük a vezetékek csatlakoztatását a málna PI GPIO csapokhoz. Itt egy diagram! Ne feledje azonban, hogy a csapok a korábban érintett kódban találhatók.
Ha már mindez be van kötve, most csak annyit kell tennie, hogy a Python fájlt a málna Pi -re helyezi, és megnyitja a terminált. futtassa a "python3 RaspberryPIWeatherStation.py" fájlt, majd tegye, ahogy mutatja.
8. lépés: Demonstráció és következtetés
![](https://i.ytimg.com/vi/hi0DuJcGc5c/hqdefault.jpg)
Köszönöm, hogy végig olvastad! Mellékelem az alábbi python scriptet! Ha lenne mit hozzáfűzni, akkor valószínűleg…
1. Támogatás a különböző bemeneti típusokhoz (városok, földrajzi pontok stb.)
2. További időjárási információk támogatása
3. Adjon hozzá egy kis képernyőt az információk megjelenítéséhez
Ossza meg velünk gondolatait! Ez egy szórakoztató projekt volt. Sokat tanultunk a kérésekről és az internetes dokumentumok megszerzéséről a python használatával, valamint a forrasztás használatáról is.
Ajánlott:
HC-12 nagy hatótávolságú időjárás állomás és DHT érzékelők: 9 lépés
![HC-12 nagy hatótávolságú időjárás állomás és DHT érzékelők: 9 lépés HC-12 nagy hatótávolságú időjárás állomás és DHT érzékelők: 9 lépés](https://i.howwhatproduce.com/images/001/image-79-j.webp)
HC-12 nagy hatótávolságú időjárás állomás és DHT érzékelők: Ebben az oktatóanyagban megtanuljuk, hogyan készítsünk távoli időjárási állomást két dht érzékelő, HC12 modul és az I2C LCD kijelző segítségével. Nézze meg a videót
Műholdas időjárás -állomás: 5 lépés
![Műholdas időjárás -állomás: 5 lépés Műholdas időjárás -állomás: 5 lépés](https://i.howwhatproduce.com/images/001/image-233-j.webp)
Műholdas időjárás -állomás: Ez a projekt azoknak készült, akik saját időjárási adataikat szeretnék gyűjteni. Mérheti a szél sebességét és irányát, a hőmérsékletet és a páratartalmat. Ezenkívül képes hallgatni a Föld körül keringő időjárási műholdakat 100 percenként. Én akarok
ESP8266 Időjárás állomás óra: 4 lépés
![ESP8266 Időjárás állomás óra: 4 lépés ESP8266 Időjárás állomás óra: 4 lépés](https://i.howwhatproduce.com/images/001/image-1190-j.webp)
ESP8266 Időjárás állomás óra: Ez a projekt remek módja az idő és az időjárás megjelenítésének egy kis kényelmes csomagban. Elmagyarázom a projektet, hogyan működik, és itt mutatom a kódot. Különböző gombok megnyomásával megjelenítheti az aktuális időjárást egy meghatározott helyen, valamint a hőmérsékletet
Kézi időjárás állomás: 4 lépés
![Kézi időjárás állomás: 4 lépés Kézi időjárás állomás: 4 lépés](https://i.howwhatproduce.com/images/001/image-212-22-j.webp)
Kézi időjárás állomás: Ebben az utasításban egy Arduino -t, egy oled kijelzőt és egy SparkFun környezeti érzékelő kombinációt fogunk használni a CCS811 és BME280 érzékelőkkel a fedélzeten, hogy olyan kézi eszközt hozzunk létre, amely méri a hőmérsékletet, a páratartalmat, a TVOC -szintet, a légköri nyomást, a
Málna PI hőmérséklet és páratartalom naplózás, felhőjárás -állomás, Wifi és mobil statisztika: 6 lépés
![Málna PI hőmérséklet és páratartalom naplózás, felhőjárás -állomás, Wifi és mobil statisztika: 6 lépés Málna PI hőmérséklet és páratartalom naplózás, felhőjárás -állomás, Wifi és mobil statisztika: 6 lépés](https://i.howwhatproduce.com/images/001/image-2075-8-j.webp)
Málna PI hőmérséklet és páratartalom naplózás, felhőjárás -állomás, Wifi és mobil statisztika: A Raspberry PI eszközzel teljesen ingyen naplózhatja a hőmérsékletet és a páratartalmat a kint, a szobában, az üvegházban, a laborban, a hűtőtérben vagy bármely más helyen. Ezt a példát a hőmérséklet és a páratartalom naplózására használjuk. A készülék csatlakozik az internetes v