Isi kandungan:

Pelayan Data Suhu Dwi IoT: 12 Langkah (dengan Gambar)
Pelayan Data Suhu Dwi IoT: 12 Langkah (dengan Gambar)

Video: Pelayan Data Suhu Dwi IoT: 12 Langkah (dengan Gambar)

Video: Pelayan Data Suhu Dwi IoT: 12 Langkah (dengan Gambar)
Video: Dikira Warga Gadungan Ternyata Gerakannya Bikin NgeriiišŸ˜± 2024, Jun
Anonim
Pelayan Data Suhu Dwi IoT
Pelayan Data Suhu Dwi IoT

Ini adalah percubaan pertama saya untuk menulis Instructable dan jadi tolonglah saya! Sekiranya anda menganggap ini tidak terlalu buruk, maka pilihlah saya dalam Peraduan Pengarang Kali Pertama.

Ini adalah projek Lock-Down saya untuk memantau 2 suhu di rumah hijau dari jarak jauh, satu di tingkat lantai dan satu di bawah bumbung. Walaupun saya pernah menggunakan Raspberry Pi (RPi) sebelumnya, projek ini melibatkan beberapa elemen yang belum pernah saya gunakan dan sepanjang perjalanan, saya menjumpai beberapa tutorial yang ketinggalan zaman atau salah. Ini adalah koleksi pengetahuan saya untuk membuat monitor suhu jauh jauh yang berfungsi dari Pi Zero & 2 DS18B20 + One Wire Digital Temperature Sensor yang diperolehi sepanjang perjalanan.

Perkara yang saya pelajari:

  • Menjadikan data tersedia dari peranti sebagai sebahagian daripada Internet of Things (IoT)
  • Antara muka 1-Wire dengan 2 peranti
  • Kesesuaian data
  • Data JSON
  • Menyiapkan firewall UFW
  • Menggunakan Freeboard.io untuk memaparkan data
  • Mengkonfigurasi RPi untuk menjalankan program secara automatik

Terdapat sejumlah besar data yang dapat dijumpai dengan carian mudah untuk semua topik ini, tetapi yang tidak begitu jelas adalah bagaimana menggabungkan semua elemen yang berasingan ini.

Bekalan

  • Anda memerlukan Raspberry Pi (dengan monitor, tetikus & papan kekunci untuk penyediaan tetapi tidak semasa menjalankan projek yang sudah siap)
  • Sambungan internet yang berfungsi.
  • PSU dengan penyambung USB Mikro
  • 2 daripada Sensor Suhu Digital DS18B20 + One Wire. Saya dapati Amazon adalah https://www.amazon.co.uk/gp/product/B07CZ1G29V/refā€¦ termurah
  • Perintang 4K7 ohm atau saya menggunakan 2 perintang 10K ohm.
  • Papan roti kecil dan beberapa wayar lelaki / wanita untuk ujian di bangku simpanan
  • Sekeping kecil papan pelindung untuk pemasangan akhir
  • Alat mudah untuk pematerian dan pelucutan wayar.
  • Kotak plastik kecil untuk menempatkan reka bentuk siap

Langkah 1: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan

Saya sudah mempunyai Raspberry Pi Zero W (tanpa wayar) tetapi saya yakin projek mudah ini akan berjalan lancar pada mana-mana RPI. Kotak bit elektronik ganjil di bengkel saya mempunyai semua yang lain (papan roti, wayar, PSU dll) dan yang perlu saya beli hanyalah dua sensor 2 x DS18B20 dari Amazon. Ini adalah cip DS18B20 biasa yang hanya dipasang dengan mudah di perumahan kalis air dan kabel 3m. Terdapat 3 wayar dari kabel:

  • Merah - kuasa - sambungkan ke pin 3.3v 1
  • Hitam - kembali - sambungkan ke pin tanah 6
  • Kuning - data - sambungkan ke pin 7 GPIO4

Sensor menggunakan antara muka 1-Wire dan sangat mudah untuk dihubungkan dan mendapatkan data dari. Terdapat beberapa halaman di Web dengan perincian untuk sambungan 1 peranti tetapi sangat sedikit untuk menghubungkan 2 (atau lebih).

Untuk ujian di bangku, litar dipasang menggunakan papan roti. Tutorial yang saya dapati menyatakan menggunakan perintang 4K7 untuk membezakan garis data, tetapi saya tidak dapat menjumpai satu & seterusnya menggunakan 2 * 10K secara selari & ia berfungsi dengan baik. Terdapat banyak sumber di Web untuk menggunakan papan roti untuk memasang litar RPi dan oleh itu saya tidak akan mengulanginya di sini.

Diagram dibuat menggunakan Circuit Diagram

Langkah 2: Persediaan Perisian Raspberry Pi OS

Persediaan Perisian Raspberry Pi OS
Persediaan Perisian Raspberry Pi OS
Persediaan Perisian Raspberry Pi OS
Persediaan Perisian Raspberry Pi OS
Persediaan Perisian Raspberry Pi OS
Persediaan Perisian Raspberry Pi OS

Oleh kerana saya pernah menggunakan RPi ini sebelumnya, saya memutuskan untuk memulakan dengan pemasangan OS yang bersih, saya memformat semula kad SD dan memasang versi bersih dari NOOBS. Saya kemudian memasang versi desktop penuh Raspian (pilihan teratas) kerana ini juga akan memasang PIP & GIT yang versi lite tidak ada. Walaupun saya tidak memerlukan Antaramuka Pengguna Grafik (GUI) untuk projek itu, ini adalah cara mudah untuk mengatur semua pilihan dan dengan kad SD 16gb tidak ada kekurangan ruang.

Saya menyediakan akses WI-FI kemudian menjalankan pemasangan penuh & kemudian wizard dengan kemas kini & peningkatan dll. Dengan menggunakan GUI, saya menyiapkan RPI seperti yang diperlukan hanya kerana menggunakan GUI lebih sederhana daripada Command Line Interface (CLI). Saya pergi ke tetingkap konfigurasi dari menu dan kemudian:

  • Pada tab sistem, saya menukar kata laluan, diatur untuk boot ke CLI dan tidak dicentang Log Masuk Automatik
  • Pada tab antara muka, saya mengaktifkan 1-wayar
  • Klik ok & boot semula

Sekiranya anda perlu kembali ke GUI pada bila-bila masa, taipkan startx di CLI

permulaanx

Langkah 3: Siapkan Dataplicity untuk Membolehkan Akses Jauh

Sediakan Dataplicity untuk Membolehkan Akses Jauh
Sediakan Dataplicity untuk Membolehkan Akses Jauh
Sediakan Dataplicity untuk Membolehkan Akses Jauh
Sediakan Dataplicity untuk Membolehkan Akses Jauh
Sediakan Dataplicity untuk Membolehkan Akses Jauh
Sediakan Dataplicity untuk Membolehkan Akses Jauh

Saya menemui entri blog yang sangat berguna di laman Dataplicity di https://blog.dataplicity.com/how-to-build-a-raspbā€¦ dan menggunakan beberapa bahagian ini. Bahagian 3 blog menerangkan penyediaan Dataplicity untuk akses jauh ke RPi. Saya tidak pernah menggunakan Dataplicity sebelumnya, tetapi harus dikatakan, saya sangat mengesyorkannya sebagai alat akses jarak jauh yang sangat mudah. Walaupun tangkapan skrin (di blog di atas) agak ketinggalan zaman, prinsipnya baik-baik saja.

Pada PC anda, pergi ke Dataplicity.com dan buat akaun (anda boleh menggunakan penyemak imbas di GUI, tetapi lebih lambat pada RPi Zero). Kemudian klik butang "tambah peranti baru" dan sebaris kod dipaparkan di tetingkap pop timbul. Kemudian pergi ke CLI pada RPi dan taipkan baris teks. Sekiranya semuanya baik-baik saja, logo Dataplicity akan dipaparkan dan program pemasangan akan dijalankan.

Kembali pada PC anda, peranti baru kini akan muncul di laman web Dataplicity. Klik peranti dan anda akan melihat skrin terminal untuk RPi anda.

Terdapat beberapa perkara yang perlu diperhatikan di sini:

  • Untuk log masuk, ketik "su pi" (untuk akses pengguna super) dan anda akan diminta kata laluan (seperti yang ditetapkan sebelumnya)
  • Anda perlu mengaktifkan Wormhole (akan digunakan kemudian)
  • Anda memerlukan alamat Wormhole untuk memaparkan data kemudian (klik kanan untuk menyalin bila diperlukan)

Anda boleh menggunakan akses jauh ini untuk semua langkah berikut dan jauh lebih mudah untuk menyalin data, program dan lain-lain daripada secara langsung pada RPi.

Langkah 4: Periksa Sensor

Anda kini boleh menggunakan akses Dataplicity ke RPI untuk semua bahagian seterusnya.

Sekiranya semuanya disambungkan dengan baik, anda mesti dapat melihat suhu yang kembali dari DS18B20. Saya berjaya melalui tutorial Pi Hut tetapi kebanyakan perkara ini tidak diperlukan. Sekiranya anda mahukan maklumat lengkapnya boleh didapati di sini:

Bit penting adalah pergi ke direktori peranti & pastikan 2 sensor berbeza ditunjukkan.

cd / sys / bas / w1 / peranti /

Ini harus menunjukkan 2 peranti bermula dengan 28- dan master bus. Tambang menunjukkan:

28-011453ebfdaa 28-0114543d5daa w1_bus_master1

2 nombor ID ini penting dan akan diperlukan kemudian! Kemudian ubah ke salah satu direktori sensor:

cd 28-011453ebfdaa

(sebagai contoh) dan kemudian membaca nilai dari sensor

kucing w1_slave

Harus ada 2 baris teks yang ditunjukkan:

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 betul dan 21187 menunjukkan suhu dalam Celsius 21.187 (bahagi dengan 1000) Ulangi ini untuk memeriksa sensor kedua. Sekiranya kedua-duanya membaca ok maka kita boleh terus membaca data dengan Python3.

Saya menyalin dan menyesuaikan kod berikut yang saya dapati di Web tetapi saya tidak ingat dari mana. Sekiranya ini kelihatan seperti kod anda, maka saya minta maaf kerana tidak ada penipuan yang dimaksudkan; sila beritahu saya & saya akan mengakui karya anda.

Buat direktori yang disebut projek dan ubah ke direktori itu.

mkdir ~ / projek

cd ~ / projek

Dalam direktori ini, gunakan penyunting teks (nano) untuk membuat dan mengedit fail yang disebut thermo-test.py

sudo nano thermo-test.py

Ini semestinya telah membuka editor dan semasa anda menggunakan Dataplicity, anda hanya boleh menyalin kod berikut di bawah (thermo-test.py) dan tampal ke dalam editor. Anda perlu menukar 2 nama peranti (mulai 28-ā€¦) dengan yang dinyatakan di atas. Apabila semuanya kelihatan betul, tekan ctrl + X untuk menyelesaikan, Y untuk menyimpan & kembali untuk menggunakan nama yang ada. Sekiranya anda lebih suka menggunakan GUI maka Thonny akan melakukan perkara yang sama.

Untuk menjalankan program ujian:

sudo python3 thermo-test.py

Semuanya baik-baik saja, ini harus melaksanakan fail menggunakan python 3 dan mencetak ke layar 2 suhu setiap 10 saat. Anda boleh menguji semuanya baik-baik saja dengan meletakkan 1 sensor ke dalam air es atau memanaskan dengan perlahan dengan pengering rambut. Sekiranya semuanya kelihatan baik-baik saja, maka kita boleh terus maju!

Langkah 5: Firewall UFW

Firewall UFW
Firewall UFW

Oleh kerana RPi ini akan disambungkan secara kekal ke internet, saya memutuskan Firewall akan menjadi idea yang baik dan yang mudah digunakan adalah Firewall Tanpa Komplikasi (ufw). Terdapat tutorial yang sangat mudah di sini

Saya tidak akan mendalam kerana ini bukan tujuan Instructable ini, tetapi secara ringkas:

Pasang firewall dengan:

sudo apt-get pasang ufw

Tetapkan peraturan lalai:

sudo ufw lalai membenarkan keluar

sudo ufw lalai menolak masuk

Buka port 80 untuk Dataplicity

sudo ufw membenarkan 80

Aktifkan firewall

sudo ufw aktifkan

Periksa status dan pastikan semua berjalan

status sudo ufw

Langkah 6: S mengakhiri Data Suhu Sebagai JSON

S mengakhiri Data Suhu Sebagai JSON
S mengakhiri Data Suhu Sebagai JSON

Kembali ke blog Tim Fernando dan bahagian 5.

Ikuti langkah-langkah seperti yang dinyatakan (kecuali kita sudah membuat direktori projek) dan semuanya harus berjalan lancar. Dengan menggunakan GIT, anda akan memuat turun fail aplikasi Tim & PIP akan memastikan semua program yang diperlukan dipasang ke RPi anda. Saya kemudian mendapati saya perlu boot semula untuk memastikan semua pakej disiapkan dengan betul.

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

cd rumah / pi / projek / suhu-servis-pi

suhu sudo gunicorn: app -b 0.0.0.0:80

Anda boleh meneruskan blog ke bahagian 6 di mana anda akan dapati data disediakan untuk 1 sensor.

Anda juga dapat menggunakan JSON Viewer untuk melihat data https://codebeautify.org/jsonviewer Klik butang "muat URL" dan tampal di alamat Wormhole yang dinyatakan sebelumnya. Di panel kiri, anda akan melihat dua entri, satu untuk Celsius & satu untuk Fahrenheit.

Langkah 7: Hantar Data Dari Kedua Sensor

Hantar Data Dari Kedua Sensor
Hantar Data Dari Kedua Sensor

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

sudo gunicorn 2temps: app -b 0.0.0.0:80

Sekarang semasa saya menjalankan JSON Viewer, saya mendapat nilai untuk temp1 & temp2

Berjaya:)

Langkah 8: Mula Auto

Permulaan Auto
Permulaan Auto

Oleh kerana kuasa ke rumah hijau sesekali dimatikan, saya mahu RPi memuat program secara automatik dan mula membuktikan data. Kaedah paling mudah ialah mengedit fail rc.local dan menambahkan kod yang diperlukan di bahagian bawah tepat di atas baris keluar 0.

cd dll

sudo nan rc.local

kemudian tambah

tidur 10

cd rumah / pi / projek / suhu-servis-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &

  • The & at the end memberitahu komputer untuk menjalankan skrip dalam sub shell sehingga komputer anda tidak menunggu fungsinya berakhir dan akan diteruskan dengan boot
  • Tidur 10 [saat] memastikan semua operasi sebelumnya selesai sebelum memulakan perkhidmatan.

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

Sekiranya anda mahukan lebih banyak maklumat mengenai program yang dijalankan secara automatik, terdapat tutorial hebat di sini

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

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

Langkah-langkah dalam blog Tim berjalan lancar, secara ringkas; buat akaun di www.freeboard.io dan kemudian buat Freeboard baru, saya memanggil saya SHEDTEMPERATURES.

Mula-mula, tambahkan sumber data, klik TAMBAH di kanan atas dan dari pop-up pilih JSON sebagai jenisnya, berikan sumber data NAMA, tambahkan alamat lubang cacing dari sebelumnya sebagai URL dan klik TIDAK untuk MENCUBA THINGPROXY. Suhu hanya berubah dengan sangat perlahan dan jadi REFRESH SETIAP 15 SECONDS baik. Klik SIMPAN.

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

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

Klik TAMBAH PANE dan kemudian + untuk menambah widget pertama. Anda boleh memilih dan bermain dengan pelbagai JENIS tetapi saya dapati Gauge baik-baik saja. Berikan TITLE, UNIT (C), MINIMUM dan MAXIMUM yang sesuai untuk aplikasi anda. Untuk DATASOURCE, klik + dan sumber yang dibuat di atas akan muncul.

Lungsur turun sekarang harus menunjukkan 2 sumber data JSON (temp2 & temp2) yang dibina lebih awal. Pilih sumber yang sesuai dan klik simpan.

Ulangi ini untuk pengukur kedua dan kami sudah siap.

Data sekarang harus dipaparkan pada 2 alat pengukur dan jika anda masih mempunyai PRi yang terhubung ke monitor, anda akan melihat permintaan dari Freeboard.io ketika mereka tiba.

Langkah 11: Bina Projek Ke Dalam Kotak

Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak
Bina Projek Ke Dalam Kotak

Hingga saat ini, RPi dan komponen lainnya semuanya dipasang di bangku menggunakan papan roti. Sepotong kecil papan pemotong kemudian digunakan untuk menggantikan papan roti dan plag semuanya disisipkan ke tempatnya.

Kotak penyimpanan Lego berwarna merah jambu terang dijumpai yang mempunyai banyak ruang dan di mana RPI tidak akan terlalu panas. lubang digerudi ke sisi kotak & tiang pelekap nilon 3mm digunakan untuk menahan RPi dan papan jalur ke tempatnya.

Hanya ada 3 sambungan yang diperlukan dari data GPIO, 3.3v, GND &.

  • 3.3vdc pin 1
  • Pin GND 6
  • Pin data (GPIO4) 7

Lubang juga ditambahkan di dalam kotak untuk kuasa USB dan kabel ke sensor suhu. Setelah semuanya dipasang di tempatnya, sejumlah kecil silikon sealant ditambahkan untuk memastikan labah-labah tidak menyangka itu adalah tempat hangat yang bagus untuk menghabiskan musim sejuk!

Langkah 12: Selesai

Selesai
Selesai
Selesai
Selesai

Kotak itu dimasukkan ke dalam rumah hijau dan dihidupkan dari pengecas USB. Kedua-dua sensor diletakkan satu dekat bahagian atas rumah hijau dan yang lain ke periuk tanaman untuk memeriksa seberapa sejuk anak benih di malam hari.

Ini adalah Instructable pertama saya dan saya harap anda fikir tidak mengapa. Sekiranya terdapat sebarang kesilapan, beritahu saya & saya akan meminda sekiranya diperlukan. Langkah seterusnya mungkin mencatat data setiap (katakanlah) 60 saat, tetapi ini akan datang kemudian.

Disyorkan: