Isi kandungan:
- Bekalan
- Langkah 1: Pengekodan Sebagai Penyelesaian Masalah
- Langkah 2: Pengekodan: Mendapatkan Data Cuaca
- Langkah 3: Pengekodan: Menggunakan Data Itu
- Langkah 4: Pengekodan: Menggunakan RPi.GPIO dan LED Diod
- Langkah 5: Pengekodan: Mendapatkan Kecerahan LED
- Langkah 6: Pengekodan: Langkah Akhir
- Langkah 7: Membina dan Membuat Pendawaian
- Langkah 8: Demonstrasi dan Kesimpulan
Video: Stesen Cuaca LED Raspberry PI: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Kami membuat Stesen LED Raspberry PI Weather. Ia memberitahu pengguna betapa panas dan sejuknya sebuah bandar dengan menyalakan dan meredupkan lampu. Ini juga mempunyai petunjuk untuk memberitahu mereka apakah hujan di kota yang mereka ketik atau tidak.
Dicipta oleh Michael Andrews dan Tio Marello.
Bekalan
Alat
- Besi pematerian
- Dremel
- Melihat
Bahan
- Raspberry Pi 3 B + ~ 40 Dolar ~ 30 Dolar
- Wayar Jumper Wanita hingga Lelaki ~ 7 Dolar
- 3 Diod LED Biru dan 2 Merah ~ 11 Dolar
- 100 Ohm Perintang ~ 13 Dolar
- 4 x 4 x 1/4 Papan Kayu ~ 5 Dolar
- Pateri ~ 10 Dolar
- Kawat Tembaga ~ 5 Dolar
Langkah 1: Pengekodan Sebagai Penyelesaian Masalah
Pengekodan adalah penyelesaian masalah
Jadi, dalam projek kami, apa masalah kami? Masalah kami ialah mendapatkan data cuaca dan kemudian menggunakan data tersebut untuk memberitahu LED kami sama ada ia mati atau menyala. Jadi ini membahagikan masalah kita kepada tiga bidang.
1. Mendapatkan Data Cuaca
2. Menggunakan Data Itu
3. Menggunakan LEDS
Walau bagaimanapun, bahasa yang kami gunakan untuk projek ini, Python, dan perkakasan yang dijalankannya, Python, memberi kami cara mudah untuk mencapai tujuan ini.
Oleh itu, kita akan mulakan dengan masalah pertama, mendapatkan data cuaca.
Langkah 2: Pengekodan: Mendapatkan Data Cuaca
Python dengan sendirinya tidak dapat memperoleh data cuaca. Kita harus mengimport dua alat, dan juga perkhidmatan luaran, untuk mendapatkan data cuaca. Untuk melakukan ini, kami menggunakan tiga alat.
1. Permintaan, modul python yang membolehkan webscraping
2. Json, modul python yang membolehkan kita menggunakan format fail JSON
3. OpenWeather, laman web yang dapat memberi kami data cuaca
Oleh itu, kami membawa dua modul dengan menulis kod ini di bahagian atas skrip python kami.
permintaan import
import json
Sebelum menggunakan alat ini, kita perlu menggunakan Openweather. Untuk itu, kita harus membuat akaun di laman web mereka dan mendapatkan kunci API. Ikuti arahan di laman web mereka dan anda akan mendapat rentetan huruf dan nombor yang membolehkan kami menggunakan perkhidmatan mereka. Bagaimana?
openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" # Kunci API Kami (Tidak Sebenar)
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call # Di sini kita mendapatkan bandar pengguna dalam bentuk cetakan teks ("Ketik di kota!") city_name = input () #Di sini kami mengumpulkan alamat yang akan kami pasangkan ke request.get untuk menerima data cuaca full_call = base_call + city_name + "& appid =" + openweather_api_key #Akhirnya kami memanggil request.get dengan alamat kami, kemudian kami mengubahnya menjadi file json Respons = permintaan.get (full_call) WeatherData = Response.json () #JSON fail mengandungi pemboleh ubah yang berbeza yang dapat kita akses menggunakan sintaks ini ["cuaca"] [0] ["id"] City_TemperatureK = WeatherData ["main"] ["temp"]
Di sini kita mempunyai kod yang memberi kita data cuaca. Permintaan, dalam bentuk request.get, mengambil alamat laman web dan memberi kami fail dari laman web itu kembali. OpenWeather memberi kami alamat untuk dihubungi untuk memberi kami data cuaca dalam bentuk json. Kami mengumpulkan alamat yang kami pasangkan ke permintaan dan mendapatkan fail json kembali. Kemudian kami membuat dua pemboleh ubah dan menetapkannya pada suhu dan cuaca di bandar pengguna.
Jadi sekarang, dengan kod ini, kita mempunyai dua pemboleh ubah. Kami mempunyai WeatherID dan suhu di Kelvin
Langkah 3: Pengekodan: Menggunakan Data Itu
Sekarang kita mempunyai dua pemboleh ubah ini, kita harus mempersiapkannya untuk digunakan untuk LED kita. Untuk aspek ini, kita tidak perlu mengimport modul untuk ini.
Pertama, kita menukar kelvin menjadi Fahrenheit.
Kami melakukan ini dengan membuat pemboleh ubah dengan sintaks ini
City_TemperatureF = (City_TemperatureK - 273) * 1.8 + 32
yang menukar dari Kelvin ke Fahrenheit (yang benar-benar menukar dari K -> C -> F)
Seterusnya adalah ID cuaca kami. WeatherID adalah ID yang disediakan oleh Openweather yang memberitahu kami mengenai keadaan cuaca di bandar.
openweathermap.org/weather-conditions Berikut adalah senarai mereka.
Kami melihat bahawa semua di bawah angka 700 adalah semacam curah hujan, jadi kami hanya memeriksa apakah kodnya di bawah 700 untuk melihat apakah hujan.
def CheckRain (IdCode): jika IdCode <700: return True other: return False
Dengan itu, kami mempunyai dua pemboleh ubah yang disiapkan untuk digunakan dengan pin Raspberry PI dan Diod LED kami.
Langkah 4: Pengekodan: Menggunakan RPi. GPIO dan LED Diod
RaspberryPi dilengkapi dengan satu set pin lelaki yang boleh kita gunakan untuk berkomunikasi dengan sejumlah komponen elektrik, yang dalam hal ini, adalah LED Diod; ia serupa dengan Arduino dan sistemnya. Walau bagaimanapun, Raspberry PI adalah komputer tujuan umum, berbanding dengan mikrokontroler seperti Arduino. Oleh itu, kita perlu melakukan lebih banyak kerja untuk menggunakannya. Ini terdiri daripada memasang pin pada Raspberry Pi. Kami melakukannya dengan menggunakan kod ini.
import RPi. GPIO sebagai GPIO #Kami mengimport modul supaya kita dapat menggunakannya
#Sediakan pinGPIO.setmode (GPIO. BCM) GPIO.setwarnings (Salah)
# Pin yang dipasangkan LED. Ini mungkin berbeza jika anda membinanya, jadi pastikan untuk membandingkan dan mengubah bila perlu
Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16
Extreme_Cold_LED_PIN = 5
Sejuk_LED_PIN = 6
Hujan_LED_PIN = 23
# Kami melalui setiap pin, menggunakan perintah.setup, memasukkan nombornya dan menetapkannya sebagai pin output
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)
Walau bagaimanapun, kod ini hanya membolehkan kita menggunakan dua keadaan dengan petunjuk, iaitu, hidup dan mati. Namun, kita memerlukannya agar dapat meredupkan lampu. Untuk melakukan ini, kami menggunakan Pulse Width Modulation.
Menggunakan Modulasi Lebar Nadi
Pulse Width Modulation memungkinkan kita mengeluarkan isyarat analog menggunakan pin digital. Pada asasnya, ia menghidupkan dan mematikan sumber isyarat pada kadar tinggi, yang rata-rata mencapai voltan tertentu. RPi. GPIO membolehkan kami menggunakan ini, walaupun dengan beberapa kod tambahan.
#Kami membuat objek empat pin menggunakan perintah GPIO. PWM, yang mengambil nombor saluran
# Nombor kedua ialah frekuensi kemas kini sesaat
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)
Untuk langkah seterusnya, anda harus mengetahui cara kami mengemas kini pin ini.
Kami mengemas kini pin menggunakan arahan
ExtremeColdLED.start (x) ColdLED.start (x)
ExtremeHotLED.start (x)
Permulaan HotLED (x)
x dalam hal ini akan menjadi kitaran tugas, yang menentukan berapa pulsa. Ini berkisar antara 0-100, jadi kita harus mendasarkan kod kita seterusnya dengan fakta itu.
Langkah 5: Pengekodan: Mendapatkan Kecerahan LED
Kerana kami mempunyai empat lampu yang berbeza, kami ingin menyalakannya bergantung pada caranya. sejuk atau panas di bandar pengguna. Kami memutuskan untuk mempunyai empat peringkat untuk memimpin.
#Fungsi
def getmiddleleftledintensity (TemperatureinF): # Persamaan Kiri: y = - (50/20) x + 175 # Persamaan Kanan: y = (50/20) x - 75 pulangan - (50/20) * TemperatureinF + 175
def getmiddlerightledintensity (TemperatureinF):
# Persamaan Kiri: y = - (50/20) x + 175 # Persamaan Kanan: y = (50/20) x - 75 pulangan (50/20) * Suhu dalamF - 75
def getextremeleftledintensity (TemperatureinF):
#LeftEquation: y = - (100/30) x + 200 #Peranan Kanan: y = (100/30) x - (400/3)
kembali - (100/30) * Suhu dalamF + 200
def getextremerightledintensity (TemperatureinF):
# LeftEquation: y = - (100/30) x + 200 # RightEquation: y = (100/30) x - (400/3)
kembali (100/30) * TemperatureinF - (400/3)
#Menetapkan Lampu LED
def GetLEDBrightness (temp):
jika temp <= 0: extremeecoldled = 100 coldled = 100 hotled = 0 extremeehotled = 0
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled))
cetak ("LED sejuk:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif temp> = 100: extremeecoldled = 0 coldled = 0 hotled = 100 extremeehotled = 100
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) cetak ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif 0 <temp <= 30: extremeecoldled = getextremeleftledintensity (temp) - 100 coldled = 100 hotled = 0 extremeehotled = 0
cetak ("Led sejuk yang melampau:" + str (extremeecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) cetak ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif 100> temp> = 70: extremeecoldled = 0 coldled = 0 hotled = 100 extremeehotled = getextremerightledintensity (temp) - 100
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) cetak ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif 30 <temp <50: extremeecoldled = 0 coldled = getmiddleleftledintensity (temp) hotled = 100 - coldled extremeehotled = 0
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled))
cetak ("LED sejuk:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) print ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif 50 <temp <70: hotled = getmiddlerightledintensity (temp) extremeehotled = 0
coldled = 100 - hotled
melampau = 0
cetak ("Led sejuk yang melampau:" + str (extremeecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) cetak ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled) elif temp == 50: extremeecoldled = 0 coldled = 50 hotled = 50 extremeehotled = 0
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled))
print ("Cold led:" + str (coldled)) print ("Extreme hot led" + str (extremeehotled)) cetak ("Hot led:" + str (hotled))
ExtremeColdLED.start (extremeecoldled)
ColdLED.start (sejuk)
ExtremeHotLED.start (melampau)
HotLED.start (hotled)
Baiklah, bahagian kod ini sangat panjang. Ia juga sukar untuk dijelaskan. Pada dasarnya, kod di atas melihat suhu di Fahrenheit, dan menentukan sama ada ia berada dalam satu set julat. Bergantung pada julat, ia memberikan nombor untuk setiap led dan kecerahannya dan kemudian menetapkan kecerahan dengan memanggil perintah start (). Itulah penjelasan ringkas. Sekiranya sudah mencukupi, saya cadangkan anda melangkah ke langkah seterusnya, tetapi jika anda ingin melihat penjelasan yang panjang dan membosankan, teruskan membaca.
Semasa kami memprogram, kami memutuskan cara termudah untuk mendapatkan nilai dari suhu adalah dalam bentuk fungsi matematik. Oleh itu, kami membuat grafik di GeoGebra untuk menunjukkan apa hubungan antara suhu dan kecerahan kami; alasannya melebihi 100 adalah bahawa tambahan akan masuk ke led kedua. Walau bagaimanapun, kami menghadapi masalah mendapatkan satu fungsi untuk memetakan semua titik ini ke satu fungsi. Kami fikir kami dapat menggunakan parabola, tetapi kami memutuskan untuk hanya menggunakan serangkaian pernyataan jika. Pada dasarnya, keseluruhan kod ini adalah fungsi secara sepotong.
Fungsi di bahagian atas adalah persamaan garis masing-masing. Sebaik sahaja kita menentukan di mana suhu berada di grafik, kita menjalankannya melalui fungsi itu, mendapatkan kecerahan, dan menyebarkannya ke led.
Langkah 6: Pengekodan: Langkah Akhir
Akhirnya, kami menambah pernyataan ini pada akhir.
cuba:
sementara (Benar): GetLEDBrightness (City_TemperatureF) GetRainLED (WeatherID) masa. tidur (10) kecuali Papan Kekunci Selang: berhenti ()
Cubaan dan kecuali pernyataan membolehkan kita keluar kod dengan menggunakan jalan pintas papan kekunci; jika tidak, kita harus mematikan Raspberry Pi untuk memulakan semula kodnya. Kemudian kita mempunyai gelung sementara yang berterusan selama-lamanya. Kami mengemas kini led, dan juga mengemas kini LED hujan. Kami berhenti selama sepuluh saat; OpenWeather hanya membenarkan 60 panggilan data setiap minit, dan 10 saat adalah banyak kemas kini.
Dan dengan itu, kod kami selesai. Berikut adalah kod yang telah siap.
RaspberryPIWeatherStation.py
permintaan import |
importRPi. GPIOasGPIO |
importjson |
masa import |
#Kod id Openweather kurang daripada 700 adalah semua pemendakan |
defCheckRain (IdCode): |
ifIdCode <700: |
kembaliBenar |
lain: |
kembaliFalse |
defgetmiddleleftledintensity (TemperatureinF): |
# Persamaan Kiri: y = - (50/20) x + 175 |
# Persamaan Kanan: y = (50/20) x - 75 |
pulangan- (50/20) * Suhu dalamF + 175 |
defgetmiddlerightledintensity (TemperatureinF): |
# Persamaan Kiri: y = - (50/20) x + 175 |
# Persamaan Kanan: y = (50/20) x - 75 |
pulangan (50/20) * Suhu dalamF-75 |
defgetextremeleftledintensity (TemperatureinF): |
#LeftEquation: y = - (100/30) x + 200 |
#RightEquation: y = (100/30) x - (400/3) |
pulangan- (100/30) * Suhu dalamF + 200 |
defgetextremerightledintensity (TemperatureinF): |
# LeftEquation: y = - (100/30) x + 200 |
# KananEquation: y = (100/30) x - (400/3) |
kembali (100/30) * TemperatureinF- (400/3) |
Persediaan #GPIO |
GPIO.setmode (GPIO. BCM) |
GPIO.setwarnings (Salah) |
# Pin |
Extreme_Hot_LED_PIN = 26 |
Panas_LED_PIN = 16 |
Extreme_Cold_LED_PIN = 5 |
Sejuk_LED_PIN = 6 |
Hujan_LED_PIN = 23 |
Persediaan #Pin |
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: |
keterlaluan = 100 |
sejuk = 100 |
hotled = 0 |
melampau = 0 |
cetak ("Led sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
eliftemp> = 100: |
melampau = 0 |
sejuk = 0 |
hotled = 100 |
melampau = 100 |
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
elif0 <temp <= 30: |
extremeecoldled = getextremeleftledintensity (temp) -100 |
sejuk = 100 |
hotled = 0 |
melampau = 0 |
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
elif100> temp> = 70: |
melampau = 0 |
sejuk = 0 |
hotled = 100 |
extremeehotled = getextremerightledintensity (temp) -100 |
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
elif30 <temp <50: |
melampau = 0 |
coldled = getmiddleleftledintensity (temp) |
hotled = 100-sejuk |
melampau = 0 |
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
elif50 <temp <70: |
hotled = getmiddlerightledintensity (temp) |
melampau = 0 |
coldled = 100-hotled |
melampau = 0 |
cetak ("Led sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
eliftemp == 50: |
melampau = 0 |
sejuk = 50 |
hotled = 50 |
melampau = 0 |
cetak ("Dingin sejuk yang melampau:" + str (extremeecoldled)) |
cetak ("Cold led:" + str (coldled)) |
cetak ("Ekstrim panas dipimpin" + str (melampau) |
cetak ("Hot led:" + str (hotled)) |
ExtremeColdLED.start (extremeecoldled) |
ColdLED.start (sejuk) |
ExtremeHotLED.start (melampau) |
HotLED.start (hotled) |
defGetRainLED (idCode): |
ifCheckRain (idCode): |
GPIO.output (Hujan_LED_PIN, GPIO. HIGH) |
lain: |
GPIO.output (Hujan_LED_PIN, GPIO. LOW) |
#Api maklumat: Balik kunci API dengan kunci api oepnweather anda |
openweather_api_key = "460a23f27ff324ef9ae743c7e9c32d7e" |
base_call = "https://api.openweathermap.org/data/2.5/weather?q=" |
cetak ("Taipkan bandar!") |
city_name = input () |
full_call = base_call + city_name + "& appid =" + openweather_api_key |
#Mendapatkan Data Cuaca |
Respons = request.get (panggilan_ penuh) |
WeatherData = Response.json () |
WeatherID = WeatherData ["cuaca"] [0] ["id"] |
City_TemperatureK = WeatherData ["main"] ["temp"] |
City_TemperatureF = (City_TemperatureK-273) * 1.8 + 32 # Tukar ke Fahrenheit |
# Bahan LED / GPIO |
cetak ("K:" + str (City_TemperatureK)) |
cetak ("F:" + str (City_TemperatureF)) |
cetak (WeatherID) |
cuba: |
sementara (Betul): |
DapatkanLEDBrightness (City_TemperatureF) |
GetRainLED (WeatherID) |
masa. tidur (10) |
kecualiKeyboardInterrupt: |
berhenti () |
lihat rawRaspberryPIWeatherStation.py dihoskan dengan ❤ oleh GitHub
Langkah 7: Membina dan Membuat Pendawaian
Wah! Setelah semua pengekodan itu, kami sampai ke bangunan, yang mana lebih mudah. Oleh kerana corona tinggal di rumah, kami tidak dapat menggunakan banyak alat yang kami harapkan di sekolah. Jadi, bahagian ini sedikit lebih sederhana daripada apa yang kita kehendaki. Kekhususannya juga fleksibel. Mula-mula kami melukis sebuah segi empat tepat di atas papan kayu. Ukuran tertentu tidak terlalu penting, kerana ia hanya berfungsi sebagai platform untuk memasang led dan elektronik.
Kemudian kami menggerudi lima lubang 1/8 di sekeping kayu kami.
Kami kemudian memotong segi empat tepat dari papan untuk digunakan sebagai platform untuk elektronik kami.
(Ini ketika kami bermula; kami menjumpai gergaji yang lebih besar!)
Kami kemudian memasukkan pin anod dan katod yang dipimpin ke dalam lubang; led mesti diletakkan di atas, mentolnya melekat; menjejaki kaki mana yang lebih panjang dan lebih pendek. Kami kemudian bersiap untuk mula menyatukan wayar. Mula-mula kita memasangkan perintang ke kaki anod LED (kaki lebih panjang).
Kemudian, kami menyisipkan kaki katod LED ke wayar tembaga tunggal yang akan kami gunakan sebagai tanah. Ia mesti kelihatan seperti ini.
Selepas kami melakukannya, kami menyolek hujung jumper kabel lelaki-lelaki ke hujung hujung setiap perintang dan wayar tanah tembaga. Setelah melakukannya, kita boleh mula memasang wayar ke pin raspberry PI GPIO. Inilah gambarajah! Walau bagaimanapun, perhatikan, pin adalah yang ada dalam kod yang sebelumnya disentuh.
Setelah anda melakukan semua ini, sekarang yang perlu anda lakukan ialah memasukkan fail Python ke raspberry Pi dan membuka terminal. jalankan "python3 RaspberryPIWeatherStation.py" dan kemudian lakukan seperti yang ditunjukkan.
Langkah 8: Demonstrasi dan Kesimpulan
Terima kasih kerana membaca sehingga kini! Saya akan melampirkan skrip python di bawah! Sekiranya ada perkara yang dapat kita tambahkan, mungkin …
1. Sokongan untuk pelbagai jenis input (bandar, titik geografi, dll.)
2. Sokongan untuk maklumat cuaca yang lebih banyak
3. Tambahkan sedikit skrin untuk menunjukkan maklumat
Beritahu kami pendapat anda! Ini adalah projek yang menyeronokkan untuk dibina. Kami belajar banyak tentang permintaan dan mendapatkan dokumen internet menggunakan python, dan kami juga banyak belajar menggunakan solder.
Disyorkan:
Stesen Cuaca Internet Raspberry Pi: 5 Langkah (dengan Gambar)
Stesen Cuaca Internet Raspberry Pi: *** Kemas kini *** Instructable ini telah ketinggalan zaman. Perkhidmatan cuaca untuk data cuaca, yang digunakan dalam Instructable ini, tidak lagi berfungsi. Walau bagaimanapun, ada projek alternatif yang pada dasarnya melakukan perkara yang sama (hanya lebih baik - Instructa ini
Bina Stesen Cuaca Raspberry Pi SUPER: 8 Langkah (dengan Gambar)
Bina Stesen Cuaca Raspberry Pi SUPER: Mari kita hadapi, kita manusia banyak membincangkan cuaca ⛅️. Rata-rata orang bercakap mengenai cuaca empat kali sehari, selama 8 minit dan 21 saat. Lakukan matematik dan itu berjumlah 10 bulan dalam hidup anda yang akan anda habiskan untuk menghabiskan kira-kira
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: 8 Langkah (dengan Gambar)
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: Setelah 1 tahun beroperasi di 2 lokasi yang berbeza, saya berkongsi rancangan projek stesen cuaca berkuasa solar saya dan menerangkan bagaimana ia berkembang menjadi sistem yang benar-benar dapat bertahan dalam jangka masa yang lama tempoh dari tenaga suria. Sekiranya anda mengikuti
Stesen Cuaca DIY & Stesen Sensor WiFi: 7 Langkah (dengan Gambar)
DIY Weather Station & WiFi Sensor Station: Dalam projek ini saya akan menunjukkan kepada anda cara membuat stesen cuaca bersama dengan stesen sensor WiFi. Stesen sensor mengukur data suhu dan kelembapan tempatan dan menghantarnya, melalui WiFi, ke stesen cuaca. Stesyen cuaca kemudian memaparkan
Stesen Cuaca Acurite 5 dalam 1 Menggunakan Pi Raspberry dan Weewx (Stesen Cuaca lain Sesuai): 5 Langkah (dengan Gambar)
Stesen Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stesen Cuaca yang Lain Sesuai): Semasa saya membeli stesen cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya semasa saya tiada. Semasa saya pulang dan menyiapkannya, saya menyedari bahawa saya mesti mempunyai paparan yang disambungkan ke komputer atau membeli hab pintar mereka