Daftar Isi:

Stasiun Cuaca LED Raspberry PI: 8 Langkah
Stasiun Cuaca LED Raspberry PI: 8 Langkah

Video: Stasiun Cuaca LED Raspberry PI: 8 Langkah

Video: Stasiun Cuaca LED Raspberry PI: 8 Langkah
Video: Raspberry Pi Rain Radar & Weather Dashboard 2024, Juli
Anonim
Stasiun Cuaca LED Raspberry PI
Stasiun Cuaca LED Raspberry PI

Kami membuat Stasiun LED Cuaca Raspberry PI. Ini memberi tahu pengguna betapa panas dan dinginnya sebuah kota dengan menyalakan, dan meredupkan, leds. Itu juga memiliki petunjuk untuk memberi tahu mereka apakah hujan di kota tempat mereka mengetik atau tidak.

Dibuat oleh Michael Andrews dan Tio Marello.

Perlengkapan

Peralatan

  1. Solder Besi
  2. Dremel
  3. Gergaji

Bahan

  1. Raspberry Pi 3 B+ ~40 Dolar ~ 30 Dolar
  2. Kabel Jumper Wanita ke Pria ~ 7 Dolar
  3. 3 Dioda LED Biru dan 2 Merah ~ 11 Dolar
  4. Resistor 100 Ohm ~ 13 Dolar
  5. 4 x 4 x 1/4 Papan Kayu ~ 5 Dolar
  6. Solder ~ 10 Dolar
  7. Kawat Tembaga ~ 5 Dolar

Langkah 1: Coding Sebagai Pemecahan Masalah

Pengkodean adalah pemecahan masalah

Jadi, dalam proyek kami, apa masalah kami? Masalah kami adalah mendapatkan data cuaca dan kemudian menggunakan data itu untuk memberi tahu LED kami apakah mereka mati atau hidup. Jadi ini membagi masalah kita menjadi tiga area.

1. Mendapatkan Data Cuaca

2. Menggunakan Data Itu

3. Menggunakan LED

Namun, bahasa yang kami gunakan untuk proyek ini, Python, dan perangkat keras yang menjalankannya, Python, memberi kami cara mudah untuk mencapai tujuan ini.

Jadi, mari kita mulai dengan masalah pertama, mendapatkan data cuaca.

Langkah 2: Pengodean: Mendapatkan Data Cuaca

Python dengan sendirinya tidak bisa mendapatkan data cuaca. Kami harus mengimpor dua alat, serta layanan eksternal, untuk mendapatkan data cuaca. Untuk melakukan ini, kami menggunakan tiga alat.

1. Permintaan, modul python yang memungkinkan webscraping

2. Json, modul python yang memungkinkan kita menggunakan format file JSON

3. OpenWeather, sebuah website yang dapat memberikan kita data cuaca

Jadi, kami membawa dua modul dengan menulis kode ini di bagian atas skrip python kami.

permintaan impor

impor json

Namun, sebelum kita menggunakan alat ini, kita perlu menggunakan Openweather. Untuk itu, kita harus membuat akun di situs mereka dan mendapatkan kunci API. Ikuti petunjuk di situs web mereka dan Anda akan mendapatkan serangkaian huruf dan angka yang memungkinkan kami menggunakan layanan mereka. Bagaimana?

openweather_api_key = "260a23f27f5324ef2ae763c779c32d7e" #Kunci API Kami (Tidak Nyata)

base_call = "https://api.openweathermap.org/data/2.5/weather?q=" #OpenWeather Call #Di sini kita mendapatkan kota pengguna dalam bentuk teks print("Ketik kota!") city_name = input () #Di sini kita mengumpulkan alamat yang akan kita masukkan ke request.get to accept data cuaca full_call = base_call+city_name+"&appid="+openweather_api_key #Akhirnya kita panggil request.get dengan alamat kita, lalu kita ubah menjadi file json Response = request.get(full_call) WeatherData = Response.json() File #JSON berisi variabel berbeda yang dapat kita akses menggunakan sintaks ini #Di sini kita mendapatkan ID cuaca dan suhu dalam Kelvin kota yang diketik pengguna di WeatherID = WeatherData ["cuaca"][0]["id"] City_TemperatureK = WeatherData["main"]["temp"]

Di sini kami memiliki kode yang memberi kami data cuaca kami. Permintaan, dalam bentuk request.get, mengambil alamat situs web dan mengembalikan file dari situs web itu kepada kami. OpenWeather memberi kami alamat untuk dihubungi untuk memberi kami data cuaca dalam bentuk json. Kami mengumpulkan alamat yang kami masukkan ke dalam permintaan dan mendapatkan file json kembali. Kemudian kami membuat dua variabel dan menetapkannya ke suhu dan cuaca kota pengguna.

Jadi sekarang, dengan kode ini, kita memiliki dua variabel. Kami memiliki ID cuaca dan suhu dalam Kelvin

Langkah 3: Coding: Menggunakan Data Itu

Sekarang kita memiliki dua variabel ini, kita harus mempersiapkannya untuk digunakan untuk LED kita. Untuk aspek ini, kita tidak perlu mengimpor modul apa pun untuk ini.

Pertama, kita ubah kelvin ke Fahrenheit.

Kami melakukan ini dengan membuat variabel dengan sintaks ini

City_TemperatureF = (City_TemperatureK - 273)*1,8 + 32

yang mengkonversi dari Kelvin ke Fahrenheit (yang benar-benar mengkonversi dari K -> C -> F)

Berikutnya adalah WeatherID kami. WeatherID adalah ID yang disediakan Openweather yang memberi tahu kita tentang kondisi cuaca suatu kota.

openweathermap.org/weather-conditions Berikut adalah daftarnya.

Kami memperhatikan bahwa semua di bawah angka 700 adalah semacam presipitasi, jadi kami hanya memeriksa apakah kodenya di bawah 700 untuk melihat apakah hujan.

def CheckRain(IdCode): jika IdCode < 700: kembalikan True else: kembalikan False

Dengan itu, kami memiliki dua variabel yang disiapkan untuk digunakan dengan pin Raspberry PI dan Dioda LED kami.

Langkah 4: Pengkodean: Menggunakan RPi. GPIO dan Dioda LED

Pengkodean: Menggunakan RPi. GPIO dan Dioda LED
Pengkodean: Menggunakan RPi. GPIO dan Dioda LED

RaspberryPi dilengkapi dengan satu set pin jantan yang dapat kita gunakan untuk berkomunikasi dengan sejumlah komponen listrik, yang dalam hal ini adalah Dioda LED; itu mirip dengan Arduino dan sistemnya. Namun, Raspberry PI adalah komputer tujuan umum, berbeda dengan mikrokontroler seperti Arduino. Jadi, kita harus melakukan sedikit lebih banyak pekerjaan untuk menggunakannya. Ini terdiri dari pengaturan pin pada Raspberry Pi. Kami melakukan ini dengan menggunakan kode ini.

impor RPi. GPIO sebagai GPIO #Kami mengimpor modul agar dapat digunakan

#Mengatur pinGPIO.setmode(GPIO. BCM) GPIO.setwarnings(False)

#Pin yang digunakan untuk memasang LED. Ini mungkin berbeda jika Anda membuatnya, jadi pastikan untuk membandingkan dan mengubahnya bila perlu

Extreme_Hot_LED_PIN = 26 Hot_LED_PIN = 16

Ekstrim_Dingin_LED_PIN = 5

Dingin_LED_PIN = 6

Hujan_LED_PIN = 23

#Kami memeriksa setiap pin, menggunakan perintah.setup, memasukkan nomornya dan mengaturnya sebagai pin keluaran

GPIO.setup(Hujan_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_PINHot_LED_PIN

Namun, kode ini hanya mengizinkan kita menggunakan dua status dengan led, yaitu, hidup dan mati. Namun, kita membutuhkannya untuk dapat meredupkan lampu. Untuk melakukan ini, kami menggunakan Modulasi Lebar Pulsa.

Menggunakan Modulasi Lebar Pulsa

Modulasi Lebar Pulsa memungkinkan kita mengeluarkan sinyal analog menggunakan pin digital. Pada dasarnya, ini menghidupkan dan mematikan sumber sinyal dengan kecepatan tinggi, yang rata-rata mencapai tegangan tertentu. RPi. GPIO memungkinkan kita untuk menggunakan ini, meskipun dengan beberapa kode tambahan.

#Kami membuat objek empat pin menggunakan perintah GPIO. PWM, yang mengambil nomor saluran

#Angka kedua adalah berapa kali pembaruan per detik

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 selanjutnya, Anda harus mengetahui cara kami memperbarui pin ini.

Kami memperbarui pin menggunakan perintah

ExtremeColdLED.start(x)ColdLED.start(x)

ExtremeHotLED.start(x)

HotLED.start(x)

x dalam hal ini akan menjadi siklus tugas, yang menentukan berapa banyak pulsa mati. Ini berkisar dari 0-100, jadi kita harus mendasarkan kode kita berikutnya dari fakta itu.

Langkah 5: Pengkodean: Mendapatkan Kecerahan LED

Pengkodean: Mendapatkan Kecerahan LED
Pengkodean: Mendapatkan Kecerahan LED

Karena kami memiliki empat led yang berbeda, kami ingin menyalakannya tergantung caranya. dingin atau panas itu di kota pengguna. Kami memutuskan untuk memiliki empat tahap untuk dipimpin.

#Fungsi

def getmiddleleftledintensity(TemperatureinF): #Persamaan Kiri: y=-(50/20)x + 175 #Persamaan Kanan: y = (50/20)x - 75 return -(50/20)*TemperatureinF + 175

def getmiddlerightledintensity(TemperatureinF):

#Persamaan Kiri: y=-(50/20)x + 175 #Persamaan Kanan: y = (50/20)x - 75 kembalian (50/20)*Suhu dalamF - 75

def getextremeleftledintensity(TemperatureinF):

#Persamaan Kiri: y = -(100/30)x + 200 #Persamaan Kanan: y = (100/30)x - (400/3)

kembali -(100/30)*Suhu dalamF + 200

def getextremerrightledintensity(TemperatureinF):

# Persamaan Kiri: y = -(100/30)x + 200 # Persamaan Kanan: y = (100/30)x - (400/3)

kembali (100/30)*Suhu dalamF - (400/3)

#Menyetel Lampu LED

def GetLEDBrightness (temp):

jika suhu <= 0: sangat dingin = 100 dingin = 100 panas = 0 sangat dingin = 0

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(dipanaskan))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif temp >= 100: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = 100

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(hotled))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif 0 < temp <= 30: extremecoldled = getextremeleftledintensity(temp) - 100 coldled = 100 hotled = 0 extremehotled = 0

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(hotled))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif 100 > temp >= 70: extremecoldled = 0 coldled = 0 hotled = 100 extremehotled = getextremerrightledintensity(temp) - 100

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(dipanaskan))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif 30 < temp < 50: extremecoldled = 0 coldled = getmiddleleftledintensity(temp) hotled = 100 - coldled extremehotled = 0

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(dipanaskan))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif 50 < temp < 70: hotled = getmiddlerightledintensity(temp) extremehotled = 0

dingin = 100 - dipanaskan

sangat dingin = 0

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(dipanaskan))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start(hotled) elif temp == 50: extremecoldled = 0 coldled = 50 hotled = 50 extremehotled = 0

print("Led sangat dingin:" + str(sangat dingin))

print("Led dingin:" + str(didinginkan)) print("Led panas ekstrim" + str(Extremehotled)) print("Led panas:" + str(dipanaskan))

ExtremeColdLED.start(extremecoldled)

ColdLED.start(didinginkan)

ExtremeHotLED.start(extremehotled)

HotLED.start (dipanaskan)

Baiklah, bagian kode ini sangat panjang. Ini juga cukup sulit untuk dijelaskan. Pada dasarnya, kode di atas melihat suhu dalam Fahrenheit, dan menentukan apakah itu dalam serangkaian rentang. Bergantung pada rentang, ini memberikan nomor untuk setiap led dan kecerahannya dan kemudian mengatur kecerahan dengan memanggil perintah start(). Demikian penjelasan singkatnya. Jika cukup, saya sarankan Anda melanjutkan ke langkah berikutnya, tetapi jika Anda ingin melihat penjelasan yang panjang dan membosankan, teruslah membaca.

Ketika kami memprogram, kami memutuskan cara termudah untuk mendapatkan nilai dari suhu dalam bentuk fungsi matematika. Jadi, kami membuat grafik di GeoGebra untuk mewakili apa hubungan antara suhu kami dan kecerahan led kami; alasan ia pergi di atas 100 adalah bahwa ekstra akan masuk ke led kedua. Namun, kami mengalami masalah dalam mendapatkan satu fungsi untuk memetakan semua titik ini ke satu fungsi. Kami pikir kami bisa menggunakan parabola, tetapi kami memutuskan untuk hanya menggunakan serangkaian pernyataan if. Intinya, seluruh kode ini adalah fungsi sepotong-sepotong.

Fungsi di atas adalah persamaan garis masing-masing. Setelah kami menentukan di mana suhu berada pada grafik, kami menjalankannya melalui fungsi itu, mendapatkan kecerahan, dan meneruskannya ke led.

Langkah 6: Pengodean: Langkah Terakhir

Akhirnya, kami menambahkan pernyataan ini di akhir.

mencoba:

while(True): GetLEDBrightness(City_TemperatureF) GetRainLED(WeatherID) time.sleep(10) kecuali KeyboardInterrupt: quit()

Pernyataan coba dan kecuali memungkinkan kita untuk keluar dari kode dengan menggunakan pintasan keyboard; baik, kita harus mematikan Raspberry Pi untuk me-restart kode. Kemudian kita memiliki loop while yang berjalan selamanya. Kami memperbarui LED, serta memperbarui LED hujan. Kami berhenti selama sepuluh detik; OpenWeather hanya mengizinkan 60 panggilan untuk data per menit, dan 10 detik adalah banyak pembaruan.

Dan dengan itu, kode kita selesai. Di bawah ini adalah kode yang sudah jadi.

RaspberryPIWeatherStation.py

permintaan impor
importRPi. GPIOasGPIO
importjson
waktu impor
#Openweather idCodes kurang dari 700 semuanya curah hujan
defCheckRain(Kode Id):
ifIdCode<700:
kembaliBenar
lain:
kembaliFalse
defgetmiddleleftledintensity (Suhu dalamF):
#Persamaan Kiri: y=-(50/20)x + 175
#Persamaan Kanan: y = (50/20)x - 75
return-(50/20)*TemperatureinF+175
defgetmiddlerightledintensity (Suhu dalamF):
#Persamaan Kiri: y=-(50/20)x + 175
#Persamaan Kanan: y = (50/20)x - 75
kembali (50/20)*Suhu diF-75
defgetextremeleftledintensity(Suhu dalamF):
#Persamaan Kiri: y = -(100/30)x + 200
#Persamaan Kanan: y = (100/30)x - (400/3)
kembali-(100/30)*Suhu dalamF+200
defgetextremerightledintensity(Suhu dalamF):
# Persamaan Kiri: y = -(100/30)x + 200
# Persamaan Kanan: y = (100/30)x - (400/3)
kembali (10/30)*TemperatureinF- (400/3)
#Pengaturan GPIO
GPIO.setmode(GPIO. BCM)
GPIO.setwarnings(Salah)
#Pin
Ekstrim_Panas_LED_PIN=26
Hot_LED_PIN=16
Ekstrim_Dingin_LED_PIN=5
Dingin_LED_PIN=6
Hujan_LED_PIN=23
#Pengaturan Pin
GPIO.setup(Hujan_LED_PIN, GPIO. OUT)
GPIO.setup(Extreme_Cold_LED_PIN, GPIO. OUT)
GPIO.setup(PIN_LED_Dingin, 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:
sangat dingin = 100
dingin = 100
panas = 0
sangat panas = 0
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim"+str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
eliftemp>=100:
sangat dingin = 0
dingin = 0
dipanaskan = 100
sangat panas = 100
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim"+str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
elif0<temp<=30:
ekstrim dingin = gettextremeleftledintensity(temp) -100
dingin = 100
panas = 0
sangat panas = 0
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim" + str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
elif100>temp>=70:
sangat dingin = 0
dingin = 0
dipanaskan = 100
ekstrimhotled=getextremerightledintensity(temp) -100
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim"+str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
elif30<temp<50:
sangat dingin = 0
coldled=getmiddleleftledintensity(temp)
dipanaskan = 100-dingin
sangat panas = 0
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim"+str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
elif50<temp<70:
hotled=getmiddlerightledintensity(temp)
sangat panas = 0
dingin = 100-panas
sangat dingin = 0
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim" + str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
eliftemp==50:
sangat dingin = 0
dingin = 50
panas = 50
sangat panas = 0
print("Led sangat dingin:"+str(sangat dingin))
print("Led dingin:"+str(dingin))
print("Led panas ekstrim"+str(Extremehotled))
print("Led panas:"+str(dipanaskan))
ExtremeColdLED.start(extremecoldled)
ColdLED.start(didinginkan)
ExtremeHotLED.start(extremehotled)
HotLED.start (dipanaskan)
defGetRainLED(idCode):
ifCheckRain(Kode id):
GPIO.output(Hujan_LED_PIN, GPIO. HIGH)
lain:
GPIO.output(Hujan_LED_PIN, GPIO. LOW)
Informasi #Api: Ganti kunci API dengan kunci api oepnweather Anda
openweather_api_key="460a23f27ff324ef9ae743c7e9c32d7e"
base_call="https://api.openweathermap.org/data/2.5/weather?q="
print("Ketik kota!")
nama_kota=input()
full_call=panggilan_basis+nama_kota+"&appid="+openweather_api_key
#Mendapatkan Data Cuaca
Respon=permintaan.get(panggilan_penuh)
WeatherData=Respons.json()
WeatherID=WeatherData["cuaca"][0]["id"]
City_TemperatureK=WeatherData["main"]["temp"]
City_TemperatureF= (City_TemperatureK-273)*1,8+32#Konversi ke Fahrenheit
Barang #LED/GPIO
print("K:"+str(City_TemperatureK))
print("F:"+str(City_TemperatureF))
cetak (ID Cuaca)
mencoba:
sementara (Benar):
DapatkanLEDBrightness(City_TemperatureF)
GetRainLED(ID Cuaca)
waktu.tidur(10)
kecualiKeyboardInterrupt:
berhenti()

lihat rawRaspberryPIWeatherStation.py dihosting dengan ❤ oleh GitHub

Langkah 7: Membangun dan Menghubungkan Kabel

Wah! Setelah semua pengkodean itu, kita sampai ke gedung, yang secara signifikan lebih mudah. Karena corona perintah stay at home, kami tidak bisa mendapatkan banyak alat yang kami harapkan di sekolah. Jadi, bagian ini sedikit lebih sederhana dari yang kami maksudkan. Spesifikasinya sendiri juga fleksibel. Pertama kita menggambar persegi panjang di atas papan kayu. Ukuran spesifik tidak terlalu penting, karena hanya berfungsi sebagai platform untuk memasang led dan elektronik.

Kemudian kami mengebor lima lubang 1/8 di potongan kayu kami.

Kami kemudian memotong persegi panjang dari papan untuk digunakan sebagai platform kami untuk elektronik kami.

(Saat itulah kami mulai; kami menemukan gergaji yang lebih besar!)

Kami kemudian mendorong pin anoda dan katoda dari led ke dalam lubang; led harus diletakkan di atas, bohlamnya mencuat; melacak kaki mana yang lebih panjang dan lebih pendek. Kami kemudian bersiap untuk mulai menyolder kabel bersama. Pertama kita solder resistor ke kaki anoda LED (kaki yang lebih panjang).

Kemudian, kami menyolder kaki katoda LED ke satu kabel tembaga yang akan kami gunakan sebagai ground. Seharusnya terlihat seperti ini.

Setelah kita melakukannya, kita solder ujung male kabel jumper female-male ke ujung ujung masing-masing resistor dan kabel ground tembaga. Setelah kami melakukannya, kami dapat mulai mencolokkan kabel ke pin raspberry PI GPIO. Berikut diagramnya! Namun, perhatikan, pin adalah yang ada di kode yang sebelumnya disentuh.

Setelah semuanya terhubung, sekarang yang harus Anda lakukan adalah memasukkan file Python ke raspberry Pi dan membuka terminal. jalankan "python3 RaspberryPIWeatherStation.py" dan kemudian lakukan seperti yang ditunjukkan.

Langkah 8: Demonstrasi dan Kesimpulan

Terima kasih telah membaca sampai habis! Saya akan melampirkan skrip python di bawah ini! Jika ada hal-hal yang bisa kami tambahkan, itu mungkin…

1. Dukungan untuk berbagai jenis input (kota, titik geografis, dll.)

2. Dukungan untuk informasi cuaca lainnya

3. Tambahkan sedikit layar untuk menampilkan informasi

Beri tahu kami pendapat Anda! Ini adalah proyek yang menyenangkan untuk dibangun. Kami belajar banyak tentang permintaan dan mendapatkan dokumen internet menggunakan python, dan kami juga belajar banyak tentang penggunaan solder.

Direkomendasikan: