Cuprins:
- Provizii
- Pasul 1: Codificarea ca rezolvare a problemelor
- Pasul 2: Codificare: obținerea datelor meteo
- Pasul 3: Codificare: utilizarea acestor date
- Pasul 4: Codificare: Utilizarea RPi.GPIO și a diodelor LED
- Pasul 5: Codificare: Obținerea luminozității LED-urilor
- Pasul 6: Codificare: pașii finali
- Pasul 7: Construirea și cablarea
- Pasul 8: demonstrație și concluzie
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Am creat o stație LED pentru vreme Raspberry PI. Îi spune utilizatorului cât de fierbinte și de rece este un oraș prin aprinderea și diminuarea ledurilor. De asemenea, are un motiv pentru a le spune dacă plouă sau nu în orașul în care au tastat.
Creat de Michael Andrews și Tio Marello.
Provizii
Instrumente
- Ciocan de lipit
- Dremel
- A văzut
Materiale
- Raspberry Pi 3 B + ~ 40 dolari ~ 30 dolari
- Sârmă jumper de la feminin la masculin ~ 7 dolari
- 3 diode LED albastre și 2 roșii ~ 11 dolari
- Rezistențe 100 Ohm ~ 13 dolari
- 4 x 4 x 1/4 scândură de lemn ~ 5 dolari
- Solder ~ 10 dolari
- Sârmă de cupru ~ 5 dolari
Pasul 1: Codificarea ca rezolvare a problemelor
Codificarea este rezolvarea problemelor
Deci, în proiectul nostru, care este problema noastră? Problema noastră este să obținem date despre vreme și apoi să le folosim pentru a indica LED-urile noastre dacă sunt stinse sau aprinse. Deci, acest lucru împarte problema noastră în trei domenii.
1. Obținerea datelor meteo
2. Utilizarea acelor date
3. Utilizarea LED-urilor
Cu toate acestea, limbajul pe care l-am folosit pentru acest proiect, Python, și hardware-ul pe care rulează, Python, ne oferă o modalitate ușoară de a realiza aceste obiective.
Deci, vom începe cu prima problemă, obținerea datelor meteo.
Pasul 2: Codificare: obținerea datelor meteo
Python singur nu poate obține date despre vreme. Trebuie să importăm două instrumente, precum și un serviciu extern, pentru a obține date despre vreme. Pentru a face acest lucru, folosim trei instrumente.
1. Solicitări, un modul python care permite webscraping
2. Json, un modul python care ne permite să folosim formatul de fișier JSON
3. OpenWeather, un site web care ne poate oferi date despre vreme
Deci, aducem cele două module scriind acest cod în partea de sus a scriptului nostru Python.
solicitări de import
import json
Cu toate acestea, înainte de a utiliza aceste instrumente, trebuie să folosim Openweather. Pentru aceasta, trebuie să creăm un cont pe site-ul lor și să obținem o cheie API. Urmați instrucțiunile de pe site-ul lor web și veți primi un șir de litere și cifre care ne vor permite să folosim serviciul lor. Cum?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Cheia noastră API (nu este reală)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Aici obținem orașul utilizatorului sub formă de text tipărit ("Tastați un oraș!") city_name = input () # Aici am asamblat adresa pe care o vom conecta la requests.get pentru a primi date despre vreme full_call = base_call + city_name + "& appid =" + openweather_api_key # În cele din urmă apelăm request.get cu adresa noastră, apoi o convertim într-un fișier json Response = requests.get (full_call) WeatherData = Response.json () Fișierele #JSON conțin diferite variabile pe care le putem accesa folosind această sintaxă. ["weather"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Aici avem codul care ne obține datele meteo. Solicitările, sub forma request.get, primesc o adresă a site-ului web și ne oferă un fișier din acel site înapoi. OpenWeather ne oferă o adresă de apelat pentru a ne oferi date despre vreme sub forma unui json. Asamblăm o adresă pe care o conectăm la solicitări și obținem un fișier json înapoi. Apoi creăm două variabile și le atribuim temperaturii și vremii din orașul utilizatorului.
Deci, acum, cu acest cod, avem două variabile. Avem un ID meteo și o temperatură în Kelvin
Pasul 3: Codificare: utilizarea acestor date
Acum că avem aceste două variabile, trebuie să le pregătim pentru a fi utilizate pentru LED-urile noastre. Pentru acest aspect, nu trebuie să importăm module pentru aceasta.
În primul rând, convertim kelvinul în Fahrenheit.
Facem acest lucru creând o variabilă cu această sintaxă
Oraș_TemperaturăF = (Oraș_TemperaturăK - 273) * 1,8 + 32
care convertește de la Kelvin la Fahrenheit (ceea ce convertește cu adevărat de la K -> C -> F)
Următorul nostru este weatherID. WeatherID este un ID furnizat de Openweather, care ne spune despre condițiile meteorologice ale unui oraș.
openweathermap.org/weather-conditions Iată o listă a acestora.
Am observat că totul sub numărul 700 a fost un fel de precipitații, așa că am verificat doar dacă codul era sub 700 pentru a vedea dacă plouă.
Def CheckRain (IdCode): dacă IdCode <700: returnează True else: returnează False
Cu aceasta, avem cele două variabile pregătite pentru utilizare cu pinii Raspberry PI și cu diodele LED.
Pasul 4: Codificare: Utilizarea RPi. GPIO și a diodelor LED
RaspberryPi vine cu un set de pini masculi pe care îi putem folosi pentru a comunica cu o serie de componente electrice, care în acest caz sunt diode LED; este asemănător cu Arduino și sistemul său. Cu toate acestea, Raspberry PI este un computer de uz general, spre deosebire de un microcontroler precum Arduino. Deci, trebuie să facem ceva mai multă muncă pentru a le folosi. Aceasta constă în configurarea pinilor de pe Raspberry Pi. Facem acest lucru folosind acest cod.
import RPi. GPIO ca GPIO # Importăm modulul pentru a-l putea folosi
# Configurați piniiGPIO.setmode (GPIO. BCM) GPIO.setwarnings (Fals)
#Pini la care sunt conectate LED-urile. Acestea pot fi diferite dacă îl construiți, deci asigurați-vă că comparați și modificați când este necesar
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Cold_LED_PIN = 6
Rain_LED_PIN = 23
# Trecem prin fiecare pin, folosind comanda.setup, introducând numărul său și setându-l ca pin de ieșire
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)
Cu toate acestea, acest cod ne-ar permite doar să folosim două stări cu ledul, adică pornit și oprit. Cu toate acestea, avem nevoie de asta pentru a putea estompa luminile. Pentru a face acest lucru, folosim Modularea lățimii impulsurilor.
Utilizarea modulării lățimii impulsurilor
Modularea lățimii impulsurilor ne permite să emitem un semnal analogic folosind un pin digital. În esență, pornește și oprește sursa de semnal la o rată ridicată, care mediază la o anumită tensiune. RPi. GPIO ne permite să folosim acest lucru, deși cu un cod suplimentar.
#Creăm patru obiecte pin folosind comanda GPIO. PWM, care preia un număr de canal
# Al doilea număr este de câte ori se actualizează pe secundă
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)
Pentru următorul pas, va trebui să știți modul în care actualizăm acești pini.
Actualizăm pinii folosind comanda
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
HotLED.start (x)
x în acest caz ar fi ciclul de funcționare, care determină cât de mult se oprește. Acesta variază de la 0 la 100, deci trebuie să ne bazăm următorul cod pe acest fapt.
Pasul 5: Codificare: Obținerea luminozității LED-urilor
Deoarece avem patru led-uri diferite, vrem să le aprindem în funcție de cum. rece sau cald este în orașul utilizatorului. Am decis să avem patru etape pentru condus.
#Funcții
def getmiddleleftledintensity (TemperatureinF): #Echuația stânga: y = - (50/20) x + 175 #Echuația dreaptă: y = (50/20) x - 75 return - (50/20) * TemperaturainF + 175
def getmiddlerightledintensity (TemperatureinF):
# Ecuația stânga: y = - (50/20) x + 175 # Ecuația dreaptă: y = (50/20) x - 75 return (50/20) * Temperatura înF - 75
def getextremeleftledintensity (TemperatureinF):
#LeftEquation: y = - (100/30) x + 200 #RightEquation: y = (100/30) x - (400/3)
retur - (100/30) * Temperatura în F + 200
def getextremerightightintensity (TemperatureinF):
# LeftEquation: y = - (100/30) x + 200 # RightEquation: y = (100/30) x - (400/3)
retur (100/30) * Temperatura inF - (400/3)
#Setarea luminilor LED
def GetLEDBrightness (temp):
dacă temp <= 0: extremecoldled = 100 coldled = 100 hotled = 0 extremehotled = 0
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp> = 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = 100
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 0 <temp <= 30: extremecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremehotled = 0
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 100> temp> = 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerightledintensity (temp) - 100
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("LED extrem de fierbinte" + str (extremehotled)) print ("Led fierbinte:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 30 <temp <50: extremecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremehotled = 0
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremehotled = 0
rece = 100 - fierbinte
extremecoldled = 0
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("LED extrem de fierbinte" + str (extremehotled)) print ("Led fierbinte:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehotled = 0
print ("LED extrem de rece:" + str (extrem de răcit))
print ("Led rece:" + str (rece)) print ("Extreme hot led" + str (extremehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremecoldled)
ColdLED.start (rece)
ExtremeHotLED.start (extremehotled)
HotLED.start (hotled)
Bine, această secțiune de cod este foarte lungă. De asemenea, este destul de greu de explicat. În esență, codul de mai sus privește temperatura în Fahrenheit și determină dacă se află într-un set de intervale. În funcție de domenii, acesta dă un număr pentru fiecare led și luminozitatea sa și apoi setează luminozitatea apelând comanda start (). Aceasta este explicația rapidă. Dacă este suficient, vă recomand să treceți la pasul următor, dar dacă doriți să vedeți explicația lungă și plictisitoare, continuați să citiți.
Când am programat, am decis că cel mai simplu mod de a obține o valoare de la o temperatură a fost sub forma unei funcții matematice. Deci, am creat un grafic în GeoGebra pentru a reprezenta relația dintre temperatura noastră și luminozitatea noastră; motivul pentru care depășește 100 este că extra ar intra în al doilea led. Cu toate acestea, ne-am confruntat cu problema obținerii unei singure funcții care să mapeze toate aceste puncte la o singură funcție. Am crezut că putem folosi o parabolă, dar am decis să ne mulțumim doar să folosim o serie de afirmații if. În esență, întregul cod este o funcție parțială.
Funcțiile din partea de sus sunt ecuația respectivă de linii. Odată ce determinăm unde se află temperatura pe grafic, o rulăm prin acea funcție, obținem luminozitatea și o trecem pe leduri.
Pasul 6: Codificare: pașii finali
În cele din urmă, adăugăm această afirmație la final.
încerca:
while (True): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) time.sleep (10) cu excepția KeyboardInterrupt: quit ()
Instrucțiunile try and except ne permit să ieșim din cod utilizând o scurtătură de la tastatură; în caz contrar, ar trebui să închidem Raspberry Pi pentru a reporni codul. Apoi avem o buclă de timp care rulează pentru totdeauna. Actualizăm ledurile, precum și actualizăm LED-ul de ploaie. Ne oprim timp de zece secunde; OpenWeather permite doar 60 de apeluri pentru date pe minut, iar 10 secunde sunt o mulțime de actualizări.
Și cu aceasta, codul nostru este terminat. Mai jos este codul terminat.
RaspberryPIWeatherStation.py
cereri de import |
importRPi. GPIOasGPIO |
importjson |
timp de import |
#Openweather idCodes mai puțin de 700 sunt toate precipitații |
defCheckRain (IdCode): |
ifIdCode <700: |
returnAdevărat |
altceva: |
returnFals |
defgetmiddleleftledintensity (TemperatureinF): |
#Echuația stânga: y = - (50/20) x + 175 |
#Echuație dreaptă: y = (50/20) x - 75 |
retur- (50/20) * Temperatura în F + 175 |
defgetmiddlerightledintensity (TemperatureinF): |
#Echuația stânga: y = - (50/20) x + 175 |
#Echuație dreaptă: y = (50/20) x - 75 |
retur (50/20) * Temperatura în F-75 |
defgetextremeleftledintensity (TemperatureinF): |
#LeftEquation: y = - (100/30) x + 200 |
#RightEquation: y = (100/30) x - (400/3) |
retur- (100/30) * Temperatura în F + 200 |
defgetextremerightightintensity (TemperatureinF): |
# Ecuația din stânga: y = - (100/30) x + 200 |
# RightEquation: y = (100/30) x - (400/3) |
retur (100/30) * Temperatura inF- (400/3) |
#GPIO Setup |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (Fals) |
#Pini |
Extreme_Hot_LED_PIN = 26 |
Hot_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Cold_LED_PIN = 6 |
Rain_LED_PIN = 23 |
#Pin Setup |
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: |
extremecoldled = 100 |
rece = 100 |
hotled = 0 |
extremehotled = 0 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp> = 100: |
extremecoldled = 0 |
rece = 0 |
hotled = 100 |
extremehotled = 100 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Led fierbinte:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif0 <temp <= 30: |
extremecoldled = getextremeleftledintensity (temp) -100 |
rece = 100 |
hotled = 0 |
extremehotled = 0 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif100> temp> = 70: |
extremecoldled = 0 |
rece = 0 |
fierbinte = 100 |
extremehotled = getextremerightledintensity (temp) -100 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Led fierbinte:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif30 <temp <50: |
extremecoldled = 0 |
coldled = getmiddleleftledintensity (temp) |
hotled = 100-rece |
extremehotled = 0 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Led fierbinte:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
extremehotled = 0 |
rece = 100-fierbinte |
extremecoldled = 0 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
eliftemp == 50: |
extremecoldled = 0 |
rece = 50 |
fierbinte = 50 |
extremehotled = 0 |
print ("LED extrem de rece:" + str (extrem de răcit)) |
print ("Led rece:" + str (rece)) |
print ("LED extrem de fierbinte" + str (extremehotled)) |
print ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremecoldled) |
ColdLED.start (rece) |
ExtremeHotLED.start (extremehotled) |
HotLED.start (hotled) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO.output (Rain_LED_PIN, GPIO. HIGH) |
altceva: |
GPIO.output (Rain_LED_PIN, GPIO. LOW) |
Informații #Api: Repalce cheia API cu cheia API API oepnweather |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
print („Tastați un oraș!”) |
city_name = input () |
full_call = base_call + city_name + "& appid =" + openweather_api_key |
# Obținerea datelor meteo |
Răspuns = 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 # Convertiți în Fahrenheit |
# Lucruri LED / GPIO |
print ("K:" + str (City_TemperatureK)) |
print ("F:" + str (City_TemperatureF)) |
print (WeatherID) |
încerca: |
în timp ce (Adevărat): |
GetLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
time.sleep (10) |
exceptie KeyboardInterrupt: |
părăsi() |
vizualizați rawRaspberryPIWeatherStation.py găzduit cu ❤ de GitHub
Pasul 7: Construirea și cablarea
Vai! După toate aceste codări, ajungem la clădire, ceea ce este mult mai ușor. Datorită comenzilor coronei de ședere la domiciliu, nu am putut ajunge la multe dintre instrumentele pe care ne așteptam să le avem la școală. Deci, această parte este puțin mai simplă decât am intenționat. Specificul în sine este, de asemenea, flexibil. Mai întâi am desenat un dreptunghi pe o scândură de lemn. Dimensiunea specifică nu prea contează prea mult, deoarece servește pur și simplu ca o platformă pentru a pune leduri și electronice.
Apoi am forat cinci 1/8 în găuri în bucata noastră de lemn.
Decupăm apoi dreptunghiul din scândură pentru a-l folosi ca platformă pentru electronica noastră.
(Atunci am început; am găsit un fierăstrău mai mare!)
Apoi împingem pinii anodului și catodului ledului în găuri; ledurile ar trebui să fie așezate pe partea de sus, becurile lor să iasă; urmăriți care picior este mai lung și mai scurt. Apoi ne-am pregătit să începem să lipim fire împreună. Mai întâi lipim rezistențele la piciorul anodic al LED-ului (piciorul mai lung).
Apoi, lipim picioarele catodice ale LED-urilor pe un singur fir de cupru pe care îl vom folosi ca pământ. Ar trebui să arate așa.
După ce facem acest lucru, lipim capetele masculine ale cablurilor jumper-mamă la capetele fiecărui rezistor și firul de împământare din cupru. Odată ce facem acest lucru, putem începe să conectăm firele la pinii GPIO cu zmeură. Iată o diagramă! Cu toate acestea, rețineți, pinii sunt cei din codul atins anterior.
Odată ce ați conectat totul, acum tot ce trebuie să faceți este să preluați fișierul Python pe raspberry Pi și să deschideți terminalul. rulați „python3 RaspberryPIWeatherStation.py” și apoi faceți cum arată.
Pasul 8: demonstrație și concluzie
Vă mulțumim că ați citit până la capăt! Voi atașa scriptul python de mai jos! Dacă am putea adăuga lucruri, probabil că ar fi …
1. Suport pentru diferite tipuri de intrare (orașe, puncte geografice etc.)
2. Suport pentru mai multe informații despre vreme
3. Adăugați un mic ecran pentru a afișa informații
Spune-ne gândurile tale! Acesta a fost un proiect distractiv de construit. Am învățat multe despre cereri și obținerea de documente pe internet folosind python și, de asemenea, am învățat multe despre utilizarea lipirii.
Recomandat:
Stație meteo Internet Raspberry Pi: 5 pași (cu imagini)
Stație meteo Internet Raspberry Pi: *** Actualizare *** Acest instructabil nu mai este actualizat. Serviciile meteo pentru datele meteo, utilizate în acest instructabil, nu mai funcționează. Oricum, există un proiect alternativ care face practic același lucru (doar mai bine - această Instrucțiune
Construiți o stație meteo Raspberry Pi SUPER: 8 pași (cu imagini)
Construiți o stație meteo SUPER Raspberry Pi: Să recunoaștem, noi oamenii vorbim mult despre vreme ⛅️. O persoană obișnuită vorbește despre vreme de patru ori pe zi, în medie 8 minute și 21 de secunde. Faceți calculele și asta însumează 10 luni din viață pe care le veți petrece scotocind despre t
Stație meteo personală folosind Raspberry Pi cu BME280 în Java: 6 pași
Stație meteo personală folosind Raspberry Pi cu BME280 în Java: vremea rea arată întotdeauna mai rău printr-o fereastră. Am fost mereu interesați să monitorizăm vremea noastră locală și ceea ce vedem pe fereastră. De asemenea, am dorit un control mai bun asupra sistemului nostru de încălzire și aer condiționat. Construirea unei stații meteorologice personale este o grea
Stație meteo DIY și stație senzor WiFi: 7 pași (cu imagini)
Stație meteo DIY și stație senzor WiFi: În acest proiect vă voi arăta cum să creați o stație meteo împreună cu o stație senzor WiFi. Stația senzorului măsoară datele locale de temperatură și umiditate și le trimite, prin WiFi, către stația meteo. Stația meteo afișează apoi t
Stație electrică în dormitor / stație de încărcare NiMH supusă: 3 pași
Stație electrică în dormitor / stație de încărcare NiMH supusă: am o mizerie de centrală electrică. Am vrut să condensez tot ce se încărca pe un singur banc de lucru și să am spațiu de lipit / etc pe el. Lista de lucruri electrice: telefonul mobil (rupt, dar îmi încarcă bateriile telefonului, așa că este mereu conectat și încarcă încărcătura