Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sensor Suhu Raspberry Pi

Beberapa minggu yang lalu, saya membeli Raspberry Pi. Setelah membaca Panduan Pengguna Raspberry Pi Eben Upton, khususnya dua bab yang menjadi fokus perhatiannya pada GPIO, saya punya ide untuk proyek pertama saya. Postingan ini mencakup iterasi pertama dari proyek pemantauan suhu rumah yang saya buat menggunakan Raspberry Pi, MCP9808, Mac Mini lama (awal 2008), InfluxDB, Grafana, sedikit Python, dan runit.

Perangkat Keras Sensor

Untuk proyek ini saya memilih untuk menggunakan Papan Breakout MCP9808 dari Adafruit – sumber yang sangat baik untuk komponen, sirkuit, dan ide. Saya memilih unit ini karena beberapa alasan:

  1. Ini dikendalikan melalui I²C – GPIO Raspberry Pi mendukung bus I²C yang diperlukan melalui pin 3 (Jalur Data Serial, SDA) dan 5 (Jalur Jam Serial, SCL)
  2. Ini berjalan dalam rentang daya dan logika 2,7V hingga 5,5V – Raspberry Pi menyediakan saluran listrik pada 3,3V dan 5V
  3. Cukup murah (<$5 USD) – Keterampilan menyolder saya bukan yang terbaik.

Perakitan Sirkuit

Kapal Breakout Board MCP9808 dari Adafruit sebagian besar sudah dirakit. Kit khusus ini hanya mengharuskan Anda menyolder strip header 8 pin yang disertakan ke papan breakout.

Saya menggunakan GPIO Breakout dan papan tempat memotong roti untuk menghubungkan Raspberry Pi ke MCP9808; pendekatan ini sedikit lebih mudah untuk dikelola, memperbaiki kesalahan pengkabelan, dan kurang permanen daripada menyolder sensor ke Raspberry Pi. Untuk membaca suhu dari MCP9808, hanya pin daya, ground, dan pin I²C SDA dan SCL yang diperlukan:

Pin yang tersisa, opsional, tidak digunakan dalam proyek ini. Mereka memberikan solusi untuk mengatasi masalah I²C saat beberapa perangkat digunakan pada bus yang sama dan pin untuk memperingatkan jika sensor membaca suhu di atas atau di bawah ambang batas.

Datastore

Saya tahu bahwa saya ingin mendukung proyek dengan penyimpanan data yang persisten. Ini akan memungkinkan saya untuk menangkap titik data dan kemudian menganalisisnya untuk tren umum, referensi silang pola pemanasan/pendinginan dengan peristiwa cuaca, dll.

Saya memilih InfluxDB karena bahasa kueri waktu dan model penyimpanannya. Saya menginstal Influx di Mac Mini lama (Awal 2009 dengan OSX 10.10) yang saya duduki di bawah meja saya. Menginstal dan menjalankan InfluxDB dasar didokumentasikan dengan baik; karena saya sudah menggunakan Homebrew untuk mengelola sebagian besar dependensi pihak ketiga saya dan ada formula untuk InfluxDB, instalasi diselesaikan dengan mengeluarkan brew install influxdb .

Konfigurasikan database InfluxDB

Dengan InfluxDB terinstal, saya menyiapkan database untuk menyimpan pembacaan suhu saya dan pengguna database untuk mengelolanya. Saya menggunakan konsol web instans InfluxDB saya untuk melakukan ini; secara default berjalan pada port 8083 dari host InfluxDB.

Konfigurasi Raspberry Pi

Sekarang setelah perangkat keras dan penyimpanan data disiapkan, ada sedikit konfigurasi OS yang diperlukan untuk Raspberry Pi yang siap pakai untuk berkomunikasi dengan MCP9808 melalui bus I²C.

Aktifkan I²C

Secara default, Raspberry Pi tidak memuat modul kernel yang diperlukan untuk menggunakan bus I²C. Untuk mengaktifkan komunikasi I²C melalui GPIO, saya menambahkan dua baris berikut ke /etc/modules

i2c-bcm2708i2c-dev 

Kemudian reboot Raspberry Pi

sudo reboot 

Setelah sistem initalizses sistem harus dapat mengenali MCP9808 terhubung. Saya menggunakan i2cdetect cli alat untuk melakukannya:

sudo i2cdetect 1 # channel 1 adalah default pada model Raspberry Pi B+ 

Perangkat Lunak Sensor

Adafruit menyediakan pembungkus MCP9808 dan abstraksi I²C. Saya menggunakan keduanya dalam skrip driver utama untuk proyek ini.

Instal dependensi build

sudo apt-get updatesudo apt-get install build-essential python-dev python-smbus 

Instal pembungkus Adafruit_Python_MCP9808

cd ~/Downloadsgit clone https://github.com/adafruit/Adafruit_Python_MCP9808/blob/master/Adafruit_MCP9808cd Adafruit_MCP9808sudo python setup.py install 

Ini juga akan menginstal abstraksi I²C karena pembungkus MCP9808 bergantung padanya.

Baca, Laporkan, Ulangi

Selanjutnya saya menulis sedikit skrip python, poll.py , untuk membaca dari MCP9808 pada suatu interval dan melaporkan temuannya ke instans database InfluxDB mcp9808_test.

#!/usr/bin/python import time import Adafruit_MCP9808.MCP9808 as MCP9808 dari influxdb import InfluxDBClient # Menghasilkan muatan yang diperlukan untuk memposting # data suhu ke InfluxDB def temperature_data(degrees_c):return [ { 'points':[[c_to_f(degrees_c)]], 'name':'Temperature Readings', 'columns':['degrees_f']}] # Mengonversi representasi suhu dalam Celcius # ke Farenheight def c_to_f(c):return c * 9.0 / 5.0 + 32.0 # Menginisialisasi komunikasi dengan MCP9808 # melalui bus I2C. sensor =MCP9808.MCP9808() sensor.begin() # Menentukan interval di mana logika pengambilan # akan terjadi capture_interval =60.0 # Setiap 60 detik # Membuat koneksi ke mcp9808_test # InfluxDB instance influxClient =InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test') # Read, Report, Repeat while True:temp =sensor.readTempC() print "Temperature {0:0.3} F".format( c_to_f(temp)) influxClient.write_points(temperature_data(temp)) time.sleep(capture_interval)

Sekarang dapat dijalankan menggunakan perintah berikut; perhatikan bahwa skrip perlu dijalankan sebagai root pengguna Raspberry Pi untuk berinteraksi dengan GPIO.

sudo python /poll.py 

Untuk-selamanya

Hore! Semuanya berjalan dan berjalan… sampai saya menyalakan/mematikan sakelar powertip di bawah meja saya. Pada titik ini saya menyadari bahwa saya ingin memastikan bahwa poll.py skrip berjalan selama Raspberry Pi memiliki kekuatan. Untuk mencapai ini, saya menggunakan pengawas proses runit.

Untuk detail lebih lanjut:Sensor Suhu Raspberry Pi


Proses manufaktur

  1. Pencatat Suhu Raspberry Pi
  2. Profil suhu Raspberry Pi menggunakan LabVIEW
  3. Ukur suhu dengan sensor DS18B20 1-kawat dan Raspberry Pi
  4. Monitor Jaringan Suhu &Kelembaban Raspberry Pi
  5. Baca suhu dengan DS18B20 | Raspberry Pi 2
  6. Pemantauan Suhu di Raspberry Pi
  7. Mengukur suhu dengan RASPBERRY PI
  8. TMP006 Sensor Suhu Pustaka Python menggunakan Raspberry pi,
  9. Sensor Suhu Python dan Raspberry Pi
  10. Stasiun Cuaca Raspberry Pi