Isi kandungan:

Stesen Cuaca LED Raspberry PI: 8 Langkah
Stesen Cuaca LED Raspberry PI: 8 Langkah

Video: Stesen Cuaca LED Raspberry PI: 8 Langkah

Video: Stesen Cuaca LED Raspberry PI: 8 Langkah
Video: RPi2DMD Tutorial English Game Room Clock LED Panel Raspberry Pi Setup 2024, November
Anonim
Stesen Cuaca LED Raspberry PI
Stesen Cuaca LED Raspberry PI

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

  1. Besi pematerian
  2. Dremel
  3. Melihat

Bahan

  1. Raspberry Pi 3 B + ~ 40 Dolar ~ 30 Dolar
  2. Wayar Jumper Wanita hingga Lelaki ~ 7 Dolar
  3. 3 Diod LED Biru dan 2 Merah ~ 11 Dolar
  4. 100 Ohm Perintang ~ 13 Dolar
  5. 4 x 4 x 1/4 Papan Kayu ~ 5 Dolar
  6. Pateri ~ 10 Dolar
  7. 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

Pengekodan: Menggunakan RPi. GPIO dan LED Diod
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

Pengekodan: Mendapatkan Kecerahan LED
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: