Daftar Isi:

Fanair: Stasiun Cuaca untuk Kamar Anda: 6 Langkah (dengan Gambar)
Fanair: Stasiun Cuaca untuk Kamar Anda: 6 Langkah (dengan Gambar)

Video: Fanair: Stasiun Cuaca untuk Kamar Anda: 6 Langkah (dengan Gambar)

Video: Fanair: Stasiun Cuaca untuk Kamar Anda: 6 Langkah (dengan Gambar)
Video: Kabur dari Peretas Kembali ke tugas mengerjakan.. Mati pmc's inc 2024, November
Anonim
Fanair: Stasiun Cuaca untuk Kamar Anda
Fanair: Stasiun Cuaca untuk Kamar Anda

Ada banyak cara untuk mengetahui cuaca saat ini, tetapi Anda hanya tahu cuaca di luar. Bagaimana jika Anda ingin mengetahui cuaca di dalam rumah Anda, di dalam ruangan tertentu? Itulah yang saya coba selesaikan dengan proyek ini.

Fanair menggunakan beberapa sensor untuk merasakan:

  • suhu
  • kelembaban
  • lampu
  • gas tertentu
  • tekanan udara

Ini sangat kompak dan menggunakan Raspberry Pi 3 B, untuk mendapatkan nilai, menyimpannya dalam database MySQL dan kemudian membuatnya mudah tersedia di situs web. Termasuk dalam kode dan situs web adalah kemampuan untuk mendapatkan data cuaca aktual untuk lokasi Anda sehingga situs web juga dapat digunakan untuk memeriksa cuaca luar.

Langkah 1: Dapatkan Semua Item yang Diperlukan

Dapatkan Semua Item yang Diperlukan
Dapatkan Semua Item yang Diperlukan

Pertama-tama Anda akan membutuhkan elektronik dasar seperti kabel / kabel jumper. Jika Anda berencana untuk menyolder semuanya bersama-sama sebagai proyek permanen maka jelas Anda juga memerlukan besi solder, solder, dan untuk kenyamanan Anda sendiri sebuah PCB untuk menyolder semuanya.

Untuk item yang lebih spesifik saya membuat Bill of Material ini.

  • Raspberry Pi 3 B
  • MPC3008 - ADC 8-Saluran 10-Bit
  • Sensor Suhu dan Kelembaban Termometer AM2301
  • WR Rademacher WR-tyoe 930-1 PCB
  • Kasing ABS untuk pembuatan prototipe (hitam)
  • LDR
  • Sensor gas MQ135
  • 2x BC517 Darlington Transistor
  • LED RGB
  • Paket Resistor
  • Bel
  • kabel
  • Barometer BMP280
  • Kipas USB yang tenang (5V)

Semua bersama-sama ini harus biaya sekitar € 110. Perlu diingat bahwa harga total adalah perkiraan. Juga, proyek saya memiliki layar LCD di foto tetapi tidak terhubung karena tidak ada cukup ruang dalam kasus saya, jadi itu tidak termasuk dalam instruksi.

Langkah 2: Siapkan Raspberry Pi Anda

Dapatkan Raspian Jessie Anda dengan sistem operasi Pixel dari situs resmi Raspberry Pi dan setelah diunduh, unzip. Anda akan mendapatkan file gambar. Untuk mendapatkannya di Pi, Anda harus menulisnya ke SD-Card menggunakan Win32 Disk Imager. Setelah terinstal, pilih file gambar dan drive tempat SD-Card Anda berada. Kemudian tekan write dan tunggu sampai selesai.

Setelah selesai klik pada SD-Card Anda di File Explorer dan buka file bernama 'cmdline.txt' pergi ke akhir file teks sebelum rootwait dan tulis 'ip=254.169.10.2' dengan spasi di sekitar tentunya. Setelah Anda menyimpannya, Anda harus mengklik kanan di suatu tempat di dalam jendela dan membuat file baru bernama 'ssh'. Perhatikan bahwa file ini tidak memiliki ekstensi file. Untuk memastikan tidak ada ekstensi klik 'view' di file explorer dan centang 'hidden files'. Jika memang mengubah namanya dan menghapus ekstensi sehingga hanya membaca 'ssh'.

Setelah itu selesai, Anda akhirnya dapat meletakkan SD-Card Anda di Raspberry Pi. Unduh klien ssh (saya sarankan MobaXterm). Dan hubungkan menggunakan ssh dengan IP yang Anda set sebelumnya '254.169.10.2'. Nama pengguna adalah 'pi', kata sandi 'raspberry'. Jika mau, Anda dapat mengubah kata sandi dengan mengetikkan perintah 'sudo passwd' di terminal dan mengikuti petunjuknya. Karena kita akan menggunakan sebagian besar SD-Card untuk Fanair, Anda harus memperluas penyimpanan yang tersedia dengan mengetik 'sudo rapi-config' memilih 'Opsi Lanjutan' dan kemudian 'Perluas File System'. Jika diminta restart.

Kami akan menggunakan antarmuka 1-kawat, SPI, dan I2C. Untuk dapat menggunakannya, Anda harus mengaturnya terlebih dahulu!

Langkah 3: Hubungkan Semuanya Bersama

Hubungkan Semuanya Bersama
Hubungkan Semuanya Bersama
Hubungkan Semuanya Bersama
Hubungkan Semuanya Bersama

Saatnya membuat sirkuit! Pertama kali Anda mungkin harus mencobanya di papan tempat memotong roti, tetapi jika Anda tidak punya waktu untuk itu, Anda bisa mencoba menyoldernya bersama-sama.

Sirkuit yang Anda perlukan terlihat seperti di atas, untuk kenyamanan, versi papan tempat memotong roti juga disertakan.

Langkah 4: Buat Basis Data Anda

Untuk menyimpan semua data yang akan Anda terima secara efisien, kami akan menggunakan database MySQL TSQL. Sebelum menginstal MySQL mari kita pastikan semuanya up to date dengan mengetikkan beberapa perintah di terminal:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'Sudo apt-get dist-upgrade'

Terima setiap prompt dengan mengetik 'y' dan enter.

Untuk menginstal MySQL ketik:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Saat diminta, buat kata sandi root pilihan Anda.

Setelah selesai menginstal login dengan menggunakan:

'mysql -uroot -p'

Dan mengetik kata sandi Anda.

Dapatkan kode Fanair dari My Github! Klik 'Klon atau unduh' dan kemudian 'Unduh ZIP'. Buka zip kode di folder pilihan Anda. Permintaan untuk membuat database yang beroperasi penuh ada di folder database. Buka file salin kode dan tempel di terminal dengan MySQL terbuka. Kemudian klik enter dan database selesai!

Langkah 5: Saatnya untuk Kode

Untuk memanfaatkan semua sensor, Anda jelas perlu menjalankan sebuah program. Untungnya kodenya sudah selesai (sebagian besar), dan kami sudah mengunduhnya saat mendapatkan kueri SQL database.

Seperti yang saya katakan ada beberapa hal yang masih perlu diubah/ditambahkan agar program dapat bekerja dengan baik. Pertama-tama program menggunakan Darksky API untuk mendapatkan data cuaca berdasarkan garis bujur dan garis lintang. Untuk menggunakannya, Anda harus mendaftar. 1000 panggilan pertama gratis dan setelah itu dikenakan biaya $0,0001 per panggilan. Saya pernah mendengar jika Anda tidak membayar, akun Anda akan diblokir. Agar adil $ 0,0001 per panggilan cukup murah. Fanair memanggil data terbaru setiap jam yang berarti bahwa dalam setahun jika dijalankan penuh waktu hanya akan dikenakan biaya $ 0,876. Anda juga mendapatkan 41 hari gratis jika Fanair beroperasi penuh waktu.

Setelah mendaftar, cari kunci API Anda. Cari bujur dan lintang lokasi Anda di google maps atau coba googling. Buat file teks baru direktori root Fanair (dengan kelas, main.py …). Beri nama file 'key_location.txt'. Buka file teks dan pada baris pertama rekatkan kunci API Darksky Anda. Pada baris kedua tempel garis bujur Anda dan pada baris ketiga tempel garis lintang Anda (keduanya dalam format desimal). Setelah selesai simpan file.

Di direktori yang sama buat file teks lain yang disebut 'database_dsn.txt'. Baris pertama harus mengatakan 'localhost'. Baris kedua adalah 'root'. Di baris ketiga Anda harus mengetikkan kata sandi yang Anda buat untuk database sebelumnya, dan baris keempat dan terakhir Anda harus mengetik 'fanair'.

Klik kanan file main.py dan pilih edit. 'fanair = Fanair(5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' perlu diubah. Jika Anda mengikuti gambar, 5 nilai pertama harus diubah dari '5, 26, 17, 27, 22, 4' menjadi '20, 21, 26, 19, 13'. '/home/muhsin/Applications/Fanair' juga harus diubah ke jalur root Fanair Anda (di mana main.py berada). Pastikan untuk meletakkan garis miring di depan 'rumah' tetapi tidak setelah 'Fanair'.

Sekarang ini semua bagus tetapi kodenya harus masuk ke Pi. Untungnya bagi kami protokol sftp ada. Untuk meletakkan file di Pi, gunakan klien sftp seperti FileZilla atau jika Anda memutuskan untuk menggunakan MobaXterm, Anda dapat mengunggah file dengan mudah di antarmuka sftp di sebelah kiri terminal.

Dalam pengalaman saya, saya tidak selalu mendapatkan tanggal dan waktu yang tepat di Raspberry Pi. Untuk memastikan Anda menerima datetime yang benar, saya sarankan untuk mengikuti panduan ini: Tanggal dan waktu sinkronisasi Raspberry Pi.

Dan last but not least beberapa perpustakaan perlu diinstal dan beberapa antarmuka perlu diaktifkan:

'Sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 instal adafruit_python_dht'

1-Kawat:

  1. 'sudo raspi-config'
  2. 'Opsi Antarmuka'
  3. '1 Kawat'
  4. Memungkinkan
  5. 'sudo nano /boot/config.txt'
  6. Tambahkan baris ini di file: 'dtoverlay=w1-gpio'
  7. 'sudo reboot'

SPI:

  1. 'sudo raspi-config'
  2. 'Opsi Antarmuka'
  3. 'SPI'
  4. Memungkinkan
  5. 'sudo reboot'
  6. 'sudo nano /boot/config.txt'
  7. Cari 'dtparam=spi=on' dan batalkan komentar dengan menghapus hashtag.
  8. 'Sudo apt-get install python3-dev

UKM:

  1. 'sudo raspi-config''
  2. 'Opsi Antarmuka'
  3. 'I2C'
  4. Memungkinkan
  5. 'sudo reboot'
  6. 'Sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Cari dtparam=i2c_arm=on dan batalkan komentar dengan menghapus hashtag.

labu

pip3 menginstal Flask

konektor mysql

'pip3 install -Iv mysql-connector==2.1.4'

laba-laba

'pip3 instal py-spidev'

Langit yang gelap

'pip3 instal darkskylib'

Langkah 6: Cobalah

Jika Anda telah berhasil sejauh ini, ketuk diri Anda di belakang. Sekarang semuanya dilakukan untuk membuat Fanair bekerja dengan baik. Jadi untuk mengujinya ketik 'cd ""'. Lokasi file adalah "/ home/pi" misalnya jika Anda baru saja menempel di direktori home Anda. Kemudian ketik 'python3 main.py' dan diamkan selama 15 menit sehingga akan ada data di database setelah selesai. Setelah itu tekan 'ctrl + c' stop stop program dan ketik 'python3 Flask.py'. Untuk melihat apakah situs web Anda berfungsi, Anda perlu menjelajahi alamat IP Pi yang Anda buat dengan ':5000' setelahnya (seperti ini: 169.254.10.1:5000').

Untuk membuatnya berjalan secara otomatis setelah boot:

'sudo nano /etc/rc.local'

Di akhir file TAPI SEBELUM keluar 0:

'sudo python3 "/main.py" &'

'sudo python3 "/ Flask.py" &'

Selamat sekarang skrip Anda harus dijalankan dari startup dan ANDA SELESAI! Jika Anda berencana untuk menjalankan proyek dan belum melakukannya, saya sarankan Anda menyolder semuanya bersama-sama, hanya untuk memastikan semuanya tetap terpasang. Meskipun jika Anda tidak bermain untuk banyak bergerak, tentu saja papan tempat memotong roti juga berfungsi.

Direkomendasikan: