Daftar Isi:

Server Data Suhu Ganda IoT: 12 Langkah (dengan Gambar)
Server Data Suhu Ganda IoT: 12 Langkah (dengan Gambar)

Video: Server Data Suhu Ganda IoT: 12 Langkah (dengan Gambar)

Video: Server Data Suhu Ganda IoT: 12 Langkah (dengan Gambar)
Video: TUTORIAL MEMBUAT WEBSITE KONTROL IOT ( FORMALINE DETECTOR ) - PART 1 2024, Juni
Anonim
Server Data Suhu Ganda IoT
Server Data Suhu Ganda IoT

Ini adalah upaya pertama saya untuk menulis Instructable dan jadi tolong santai saja! Jika menurut Anda ini tidak terlalu buruk, silakan pilih saya di Kontes Penulis Pertama Kali.

Ini adalah proyek Lock-Down saya untuk memantau 2 suhu dari jarak jauh di rumah kaca, satu di lantai dan satu di bawah atap. Meskipun saya telah menggunakan Raspberry Pi (RPi) sebelumnya, proyek ini melibatkan beberapa elemen yang belum pernah saya gunakan dan sepanjang jalan, saya menemukan beberapa tutorial yang ketinggalan zaman atau hanya salah. Ini adalah kumpulan pengetahuan saya untuk membuat monitor suhu jarak jauh ganda yang berfungsi dari Sensor Suhu Digital Pi Zero & 2 DS18B20+ One Wire yang diperoleh di sepanjang jalan.

Hal-hal yang saya pelajari tentang:

  • Membuat data tersedia dari perangkat sebagai bagian dari Internet of Things (IoT)
  • Antarmuka 1-Kawat dengan 2 perangkat
  • Dataplisitas
  • data JSON
  • Menyiapkan firewall UFW
  • Menggunakan Freeboard.io untuk menampilkan data
  • Mengkonfigurasi RPi untuk menjalankan program secara otomatis

Ada sejumlah besar data yang dapat ditemukan dengan pencarian sederhana tentang semua topik ini, tetapi yang tidak begitu jelas adalah bagaimana menggabungkan semua elemen yang terpisah ini.

Perlengkapan

  • Anda akan memerlukan Raspberry Pi (dengan monitor, mouse & keyboard untuk pengaturan tetapi tidak saat menjalankan proyek yang sudah selesai)
  • Koneksi internet yang berfungsi.
  • PSU dengan konektor Micro USB
  • 2 dari Sensor Suhu Digital Satu Kawat DS18B20+. Saya menemukan Amazon adalah yang termurah
  • Resistor 4K7 ohm atau saya menggunakan 2 resistor 10K ohm.
  • Papan tempat memotong roti kecil dan beberapa kabel pria/wanita untuk pengujian di bangku
  • Sepotong kecil stripboard untuk perakitan akhir
  • Alat sederhana untuk menyolder dan mengupas kawat.
  • Kotak plastik kecil untuk menampung desain yang sudah jadi

Langkah 1: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Saya sudah memiliki Raspberry Pi Zero W (dengan nirkabel) tetapi saya yakin proyek sederhana ini akan berjalan dengan baik di RPI mana pun. Kotak bit elektronik aneh di bengkel saya memiliki yang lainnya (papan tempat memotong roti, kawat, PSU dll) dan jadi yang harus saya beli hanyalah dua sensor 2 x DS18B20 dari Amazon. Ini adalah chip DS18B20 normal yang dipasang dengan nyaman di rumah tahan air dan kabel 3m. Ada 3 kabel dari kabel:

  • Merah – daya – sambungkan ke pin 3.3v 1
  • Hitam – kembali – sambungkan ke pin ground 6
  • Kuning – data – sambungkan ke pin GPIO4 7

Sensor menggunakan antarmuka 1-Wire dan sangat mudah untuk disambungkan dan diperoleh datanya. Ada beberapa halaman di Web dengan rincian untuk koneksi 1 perangkat tetapi sangat sedikit untuk menghubungkan 2 (atau lebih).

Untuk pengujian di bangku, sirkuit dirakit menggunakan papan tempat memotong roti. Tutorial yang saya temukan menyatakan untuk menggunakan resistor 4K7 untuk membiaskan jalur data, tetapi saya tidak dapat menemukannya & jadi menggunakan 2* 10K secara paralel & berfungsi dengan baik. Ada banyak sumber daya di Web untuk menggunakan papan tempat memotong roti (breadboard) untuk merakit sirkuit RPi, jadi saya tidak akan mengulanginya di sini.

Diagram dibuat menggunakan Diagram Sirkuit

Langkah 2: Pengaturan Perangkat Lunak Raspberry Pi OS

Pengaturan Perangkat Lunak Raspberry Pi OS
Pengaturan Perangkat Lunak Raspberry Pi OS
Pengaturan Perangkat Lunak Raspberry Pi OS
Pengaturan Perangkat Lunak Raspberry Pi OS
Pengaturan Perangkat Lunak Raspberry Pi OS
Pengaturan Perangkat Lunak Raspberry Pi OS

Karena saya telah menggunakan RPi ini sebelumnya, saya memutuskan untuk memulai dengan instalasi OS yang bersih, saya memformat ulang kartu SD dan menginstal versi NOOBS yang bersih. Saya kemudian menginstal Raspian versi desktop lengkap (opsi teratas) karena ini juga akan menginstal PIP & GIT yang tidak dimiliki versi lite. Meskipun saya tidak memerlukan Graphical User Interface (GUI) untuk proyek ini, ini adalah cara mudah untuk mengatur semua opsi dan dengan kartu SD 16gb tidak ada kekurangan ruang.

Saya mengatur akses WI-FI kemudian menjalankan instalasi penuh & kemudian wizard dengan pembaruan & peningkatan dll. Menggunakan GUI, saya mengatur RPI sesuai kebutuhan hanya karena menggunakan GUI lebih sederhana daripada Command Line Interface (CLI). Saya pergi ke jendela konfigurasi dari menu dan kemudian:

  • Pada tab sistem, saya mengubah kata sandi, mengatur untuk boot ke CLI dan menghapus centang Masuk Otomatis
  • Pada tab antarmuka, saya mengaktifkan 1-kawat
  • Diklik ok & boot ulang

Jika Anda perlu kembali ke GUI kapan saja, ketik saja startx di CLI

mulaix

Langkah 3: Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh

Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh
Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh
Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh
Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh
Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh
Atur Dataplicity untuk Mengizinkan Akses Jarak Jauh

Saya menemukan entri blog yang sangat membantu di situs Dataplicity di https://blog.dataplicity.com/how-to-build-a-raspb… dan menggunakan beberapa bagian ini. Bagian 3 dari blog menjelaskan pengaturan Dataplicity untuk akses jarak jauh ke RPi. Saya belum pernah menggunakan Dataplicity sebelumnya, tetapi saya harus mengatakan, saya sangat merekomendasikannya sebagai alat akses jarak jauh yang sangat sederhana. Meskipun tangkapan layar (di blog di atas) sedikit ketinggalan zaman, prinsipnya baik-baik saja.

Di PC Anda, buka Dataplicity.com dan buat akun (Anda bisa menggunakan browser di GUI, tetapi agak lambat di RPi Zero). Kemudian klik tombol "tambah perangkat baru" dan sederet kode ditampilkan di jendela pop-up. Lalu pergi ke CLI pada RPi dan ketik baris teks. Jika semua sudah oke maka akan muncul logo Dataplicity dan program install akan berjalan.

Kembali ke PC Anda, perangkat baru sekarang akan muncul di situs web Dataplicity. Klik perangkat dan Anda akan melihat layar terminal untuk RPi Anda.

Ada beberapa hal yang perlu diperhatikan di sini:

  • Untuk masuk, ketik "su pi" (untuk akses pengguna super) dan Anda akan dimintai kata sandi (seperti yang telah diatur sebelumnya)
  • Anda harus mengaktifkan Wormhole (untuk digunakan nanti)
  • Anda akan memerlukan alamat Wormhole untuk menampilkan data nanti (klik kanan untuk menyalin bila diperlukan)

Anda dapat menggunakan akses jarak jauh ini untuk semua langkah berikut dan jauh lebih mudah untuk menyalin data, program, dll daripada langsung di RPi.

Langkah 4: Periksa Sensornya

Anda sekarang dapat menggunakan Dataplicity akses jarak jauh ke RPI untuk semua bagian berikutnya.

Jika semua sekarang terhubung dengan baik, Anda seharusnya dapat melihat suhu yang dikembalikan dari DS18B20. Saya memang mengerjakan tutorial Pi Hut tetapi sebagian besar ini tidak diperlukan. Jika Anda ingin detail lengkapnya dapat ditemukan di sini:

Bit penting adalah pergi ke direktori perangkat & pastikan 2 sensor yang berbeda ditampilkan.

cd /sys/bus/w1/devices/

Ini akan menunjukkan 2 perangkat yang dimulai dengan 28- dan master bus. Tambang menunjukkan:

28-011453ebfdaa 28-0114543d5daa w1_bus_master1

2 nomor ID ini penting dan akan dibutuhkan nanti! Kemudian ubah ke salah satu direktori sensor:

cd 28-011453ebfdaa

(misalnya) dan kemudian membaca nilai dari sensor

kucing w1_slave

Seharusnya ada 2 baris teks yang ditampilkan:

53 01 4b 46 7f ff 0c 10 2d: crc=2d YA

53 01 4b 46 7f ff 0c 10 2d t=21187

YA menunjukkan sensor membaca dengan benar dan 21187 menunjukkan suhu dalam Celcius dari 21.187 (bagi dengan 1000) Ulangi ini untuk memeriksa sensor kedua. Jika keduanya terbaca ok maka kita bisa melanjutkan membaca data dengan Python3.

Saya menyalin dan mengadaptasi kode berikut yang saya temukan di Web tetapi saya tidak ingat dari mana. Jika ini terlihat seperti kode Anda, maka saya minta maaf karena tidak ada plagiarisme yang dimaksudkan; tolong beri tahu saya & saya akan mengakui pekerjaan Anda.

Buat direktori bernama proyek dan ubah ke direktori itu.

mkdir ~/proyek

cd ~/proyek

Di direktori ini, gunakan editor teks (nano) untuk membuat dan mengedit file bernama thermo-test.py

sudo nano thermo-test.py

Ini seharusnya membuka editor dan saat Anda menggunakan Dataplicity, Anda cukup menyalin kode berikut di bawah ini (thermo-test.py) dan menempelkannya ke editor. Anda perlu mengubah 2 nama perangkat (mulai 28-…) dengan yang disebutkan di atas. Jika semua sudah benar, tekan ctrl+X untuk menyelesaikan, Y untuk menyimpan & kembali menggunakan nama yang sudah ada. Jika Anda lebih suka menggunakan GUI maka Thonny akan melakukan hal yang sama.

Untuk menjalankan program pengujian:

sudo python3 thermo-test.py

Semuanya baik-baik saja, ini harus menjalankan file menggunakan python 3 dan mencetak ke layar 2 suhu setiap 10 detik. Anda dapat menguji semuanya baik-baik saja dengan menempatkan 1 sensor ke dalam air es atau menghangatkannya dengan pengering rambut. Jika semuanya tampak baik-baik saja, maka kita bisa melanjutkan!

Langkah 5: UFW Firewall

Firewall UFW
Firewall UFW

Karena RPi ini akan terhubung secara permanen ke internet, saya memutuskan Firewall akan menjadi ide yang bagus dan yang sederhana untuk digunakan adalah Uncomplicated Firewall (ufw). Ada tutorial yang sangat sederhana di sini

Saya tidak akan membahasnya secara mendalam karena ini bukan tujuan dari Instructable ini, tetapi singkatnya:

Instal firewall dengan:

sudo apt-get install ufw

Tetapkan aturan default:

Sudo ufw default memungkinkan keluar

Sudo ufw default menolak masuk

Buka port 80 untuk Dataplicity

sudo ufw izinkan 80

Aktifkan firewall

sudo ufw aktifkan

Cek status dan pastikan semua berjalan

status sudo ufw

Langkah 6: Mengirim Data Suhu Sebagai JSON

Mengirim Data Suhu Sebagai JSON
Mengirim Data Suhu Sebagai JSON

Kembali ke blog Tim Fernando dan bagian 5.

Ikuti langkah-langkah seperti yang dinyatakan (kecuali kita telah membuat direktori proyek) dan semuanya akan berfungsi dengan baik. Menggunakan GIT Anda akan mengunduh file aplikasi Tim & PIP akan memastikan semua program yang diperlukan diinstal ke RPi Anda. Saya kemudian menemukan bahwa saya perlu mem-boot ulang untuk memastikan semua paket sudah diatur dengan benar.

Kemudian jalankan program Tim dan RPi Anda seharusnya menyediakan data JSON untuk sensor pertama.

cd home/pi/proyek/temperatur-serve-pi

sudo gunicorn suhu: aplikasi -b 0.0.0.0:80

Anda dapat melanjutkan melalui blog ke bagian 6 di mana Anda akan menemukan data disediakan untuk 1 sensor.

Anda juga dapat menggunakan JSON Viewer untuk melihat data https://codebeautify.org/jsonviewer Klik tombol “load URL” dan paste di alamat Wormhole yang disebutkan sebelumnya. Di panel kiri, Anda akan melihat dua entri, satu untuk Celsius & satu untuk Fahrenheit.

Langkah 7: Kirim Data Dari Kedua Sensor

Kirim Data Dari Kedua Sensor
Kirim Data Dari Kedua Sensor

Berdasarkan kode di temperature.py dan thermo-test.py, saya membuat 2temps.py Diedit seperti sebelumnya di direktori /projects/temperature-serve-pi, ditempelkan di kode dan disimpan. Saya kemudian berlari

sudo gunicorn 2temps:app -b 0.0.0.0:80

Sekarang ketika saya menjalankan kembali JSON Viewer saya mendapat nilai untuk temp1 & temp2

Kesuksesan:)

Langkah 8: Mulai Otomatis

Mulai Otomatis
Mulai Otomatis

Karena listrik ke rumah kaca kadang-kadang dimatikan, saya ingin RPi memuat program secara otomatis dan mulai membuktikan data. Cara paling sederhana tampaknya adalah mengedit file rc.local dan menambahkan kode yang diperlukan di bagian bawah tepat di atas baris 0 exit.

cd dll

sudo nan rc.local

lalu tambahkan

tidur 10

cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04:app -b 0.0.0.0:80 &

  • The & di bagian akhir memberitahu komputer untuk menjalankan skrip di sub shell sehingga komputer Anda tidak menunggu fungsi berakhir dan akan melanjutkan boot
  • Tidur 10 [detik] memastikan semua operasi sebelumnya diselesaikan sebelum memulai layanan.

Keluar dan simpan seperti sebelumnya. Kemudian reboot dan jalankan kembali JSON Viewer untuk memeriksa semuanya baik-baik saja.

Jika Anda ingin informasi lebih lanjut tentang program yang berjalan secara otomatis, ada tutorial yang bagus di sini

Langkah 9: Tampilkan Data di Freeboard.io (1)

Menampilkan Data di Freeboard.io (1)
Menampilkan Data di Freeboard.io (1)

Langkah-langkah di blog Tim berfungsi dengan baik, secara ringkas; buat akun di www.freeboard.io lalu buat Freeboard baru, saya beri nama SHEDTEMPERATURES milik saya.

Pertama, tambahkan sumber data, klik TAMBAH di kanan atas dan dari pop-up pilih JSON sebagai jenisnya, beri NAMA sumber data, tambahkan alamat lubang cacing dari sebelumnya sebagai URL dan klik TIDAK untuk TRY THINGPROXY. Suhu hanya berubah sangat lambat sehingga REFRESH SETIAP 15 DETIK tidak masalah. Klik SIMPAN.

Langkah 10: Tampilkan Data di Freeboard.io (2)

Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)
Tampilkan Data di Freeboard.io (2)

Klik TAMBAHKAN PANEL lalu tanda + untuk menambahkan widget pertama. Anda dapat memilih dan bermain dengan berbagai JENIS tetapi saya menemukan Gauge baik-baik saja. Berikan JUDUL, UNIT (C), MINIMUM dan MAKSIMUM yang sesuai dengan aplikasi Anda. Untuk DATASOURCE, klik tanda + dan sumber yang dibuat di atas akan muncul.

Dropdown sekarang harus menunjukkan 2 sumber data JSON (temp2 & temp2) yang dibuat sebelumnya. Pilih sumber yang sesuai dan klik simpan.

Ulangi ini untuk pengukur kedua dan kita siap.

Data sekarang akan ditampilkan pada 2 pengukur dan jika Anda masih memiliki PRi yang terhubung ke monitor, Anda akan melihat permintaan dari Freeboard.io saat mereka tiba.

Langkah 11: Bangun Proyek Menjadi Kotak

Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak
Bangun Proyek Menjadi Kotak

Sampai saat ini, RPi dan komponen lainnya telah dirakit di bangku menggunakan papan tempat memotong roti. Sepotong kecil stripboard kemudian digunakan untuk menggantikan papan tempat memotong roti dan semua ujungnya disolder ke tempatnya.

Ditemukan kotak penyimpanan Lego kecil berwarna merah muda cerah yang memiliki banyak ruang dan RPI tidak akan terlalu panas. lubang dibor ke sisi kotak & pilar pemasangan nilon 3mm digunakan untuk menahan RPi dan stripboard pada tempatnya.

Hanya ada 3 koneksi yang dibutuhkan dari GPIO, 3.3v, GND & data.

  • 3.3vdc pin 1
  • GND pin 6
  • Data (GPIO4) pin 7

Lubang juga ditambahkan di dalam kotak untuk daya USB dan kabel ke sensor suhu. Setelah semuanya terpasang pada tempatnya, sedikit silikon sealant ditambahkan untuk memastikan laba-laba tidak berpikir itu adalah tempat hangat yang bagus untuk menghabiskan musim dingin!

Langkah 12: Selesai

Selesai
Selesai
Selesai
Selesai

Kotak ditempatkan ke dalam rumah kaca dan ditenagai dari pengisi daya USB. Kedua sensor ditempatkan satu di dekat bagian atas rumah kaca dan yang lainnya ke pot tanaman untuk memeriksa seberapa dingin bibit di malam hari.

Ini adalah Instruksi pertama saya dan saya harap Anda pikir itu baik-baik saja. Jika Anda menemukan kesalahan, beri tahu saya & saya akan mengubahnya jika diperlukan. Langkah selanjutnya mungkin untuk mencatat data setiap (katakanlah) 60 detik, tetapi ini akan datang nanti.

Direkomendasikan: