Daftar Isi:
- Perlengkapan
- Langkah 1: Coding Sebagai Pemecahan Masalah
- Langkah 2: Pengodean: Mendapatkan Data Cuaca
- Langkah 3: Coding: Menggunakan Data Itu
- Langkah 4: Pengkodean: Menggunakan RPi.GPIO dan Dioda LED
- Langkah 5: Pengkodean: Mendapatkan Kecerahan LED
- Langkah 6: Pengodean: Langkah Terakhir
- Langkah 7: Membangun dan Menghubungkan Kabel
- Langkah 8: Demonstrasi dan Kesimpulan
Video: Stasiun Cuaca LED Raspberry PI: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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
- Solder Besi
- Dremel
- Gergaji
Bahan
- Raspberry Pi 3 B+ ~40 Dolar ~ 30 Dolar
- Kabel Jumper Wanita ke Pria ~ 7 Dolar
- 3 Dioda LED Biru dan 2 Merah ~ 11 Dolar
- Resistor 100 Ohm ~ 13 Dolar
- 4 x 4 x 1/4 Papan Kayu ~ 5 Dolar
- Solder ~ 10 Dolar
- 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
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
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:
Stasiun Cuaca Internet Raspberry Pi: 5 Langkah (dengan Gambar)
Stasiun Cuaca Internet Raspberry Pi: *** Pembaruan *** Instruksi ini telah ketinggalan zaman. Layanan cuaca untuk data cuaca, yang digunakan dalam Instruksi ini, tidak lagi berfungsi. NAMUN, ada proyek alternatif yang pada dasarnya melakukan hal yang sama (hanya lebih baik - Instruktur ini
Membangun Stasiun Cuaca Super Raspberry Pi: 8 Langkah (dengan Gambar)
Bangun Stasiun Cuaca SUPER Raspberry Pi: Mari kita hadapi itu, kita manusia banyak berbicara tentang cuaca ️. Rata-rata orang berbicara tentang cuaca empat kali sehari, selama rata-rata 8 menit dan 21 detik. Hitunglah dan total 10 bulan hidup Anda yang akan Anda habiskan untuk mengoceh tentang
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Dilakukan dengan Cara yang Benar: 8 Langkah (dengan Gambar)
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Selesai dengan Cara yang Benar: Setelah 1 tahun beroperasi dengan sukses di 2 lokasi berbeda, saya membagikan rencana proyek stasiun cuaca bertenaga surya saya dan menjelaskan bagaimana hal itu berkembang menjadi sistem yang benar-benar dapat bertahan lama periode dari tenaga surya. Jika Anda mengikuti
Stasiun Cuaca DIY & Stasiun Sensor WiFi: 7 Langkah (dengan Gambar)
Stasiun Cuaca DIY & Stasiun Sensor WiFi: Dalam proyek ini saya akan menunjukkan cara membuat stasiun cuaca bersama dengan stasiun sensor WiFi. Stasiun sensor mengukur data suhu dan kelembaban lokal dan mengirimkannya, melalui WiFi, ke stasiun cuaca. Stasiun cuaca kemudian menampilkan
Stasiun Cuaca 5 in 1 Acurite Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca lain Kompatibel): 5 Langkah (dengan Gambar)
Stasiun Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca Lainnya Kompatibel): Ketika saya membeli stasiun cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya saat saya pergi. Ketika saya sampai di rumah dan memasangnya, saya menyadari bahwa saya harus menghubungkan layar ke komputer atau membeli hub pintar mereka