Verwenden Sie den analogen Temperatursensor Raspberry Pi Python to TMP36 und den AD-Wandler MCP3008

Ich wollte Sensordaten von Raspberry Pi von Node.js sowie von Arduino Firmata erhalten, aber es scheint schwierig zu sein, also entschied ich mich, zu Python zurückzukehren. Da GPIO von Raspberry Pi nur digital eingeben kann, TMP36 und LM35DZ AD-Konverter wie MCP3008 und PCF8591 bei Verwendung analoger Sensoren wird notwendig. Schreiben wir ein Python-Programm, das die Temperatur mit TMP36 misst.

Aktivieren Sie SPI

[SPI (Serial Peripheral Interface)](http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%83% BB% E3% 83% 9A% E3% 83% AA% E3% 83% 95% E3% 82% A7% E3% 83% A9% E3% 83% AB% E3% 83% BB% E3% 82% A4% E3% 83% B3% E3% 82% BF% E3% 83% 95% E3% 82% A7% E3% 83% BC% E3% 82% B9) ist einer der seriellen Kommunikationsstandards. Es scheint, dass sich die Methode zum Aktivieren von SPI auf Raspberry Pi von 3.18 des Kernels geändert hat. Raspi-Konfiguration in Aktivieren der SPI-Schnittstelle auf dem Raspberry Pi Es wird beschrieben, wie Sie es verwenden und manuell aktivieren. Dieses Mal machen wir es manuell.

Firmware aktualisieren

Wenn der Kernel nicht 3.18.x ist, aktualisieren Sie die Firmware. Das Paket wurde ebenfalls aktualisiert.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update

Überprüfen Sie die Kernel-Version.

$ cat /proc/version
Linux version 3.18.11+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #777 PREEMPT Sat Apr 11 17:24:23 BST 2015

Bearbeiten Sie / boot / config.txt.

$ sudo vi /boot/config.txt
dtparam=spi=on

Neustart.

$ sudo reboot

SPI ist jetzt aktiviert.

$ lsmod | grep spi
spi_bcm2708             6018  0

Breadboard-Verkabelung

Verdrahten Sie den MCP3008, Raspberry Pi und FT232RL mit einem Steckbrett.

mcp3008-tmp36.png

Draht mit MCP3008 und Raspberry Pi.

Verdrahten Sie den TMP36.

Python-Installation

Installieren Sie die Python-Entwicklungsumgebung für Raspberry Pi.

$ sudo apt-get update
$ sudo apt-get install python-dev
$ python -V
Python 2.7.3

Installieren Sie ez_setup und pip.

$ curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python
$ curl https://bootstrap.pypa.io/get-pip.py -o - | sudo python
$ pip -V
pip 6.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

py-spidev

Installieren Sie py-spidev, um SPI-Geräte von Python aus zu betreiben.

$ cd
$ git clone git://github.com/doceme/py-spidev 
$ cd py-spidev
$ sudo python setup.py install
...
Writing /usr/local/lib/python2.7/dist-packages/spidev-3.0.egg-info

Beispielprojekt

Erstellen Sie ein Projekt.

$ mkdir -p ~/python_apps/spidev-spike
$ cd !$

Schreiben Sie ein Python-Beispielprogramm, indem Sie auf die folgende Site verweisen.

~/python_apps/spidev-spike/spi_tmp36.py


#!/usr/bin/env python

import time
import sys
import spidev

spi = spidev.SpiDev()
spi.open(0,0)

def readAdc(channel):
    adc = spi.xfer2([1,(8+channel)<<4,0])
    data = ((adc[1]&3) << 8) + adc[2]
    return data

def convertVolts(data):
    volts = (data * 3.3) / float(1023)
    volts = round(volts,4)
    return volts

def convertTemp(volts):
    temp = (100 * volts) - 50.0
    temp = round(temp,4)
    return temp

if __name__ == '__main__':
    try:
        while True:
            data = readAdc(0)
            print("adc  : {:8} ".format(data))
            volts = convertVolts(data)
            temp = convertTemp(volts)
            print("volts: {:8.2f}".format(volts))
            print("temp : {:8.2f}".format(temp))

            time.sleep(5)
    except KeyboardInterrupt:
        spi.close()
        sys.exit(0)

Programmausführung

Führen Sie ein Python-Programm aus. Die Temperatur wird in 5-Sekunden-Intervallen in Grad Celsius angezeigt.

$ python spi_tmp36.py
adc  :      232
volts:     0.75
temp :    24.84
adc  :      233
volts:     0.75
temp :    25.16
adc  :      233
volts:     0.75
temp :    25.16

Recommended Posts

Verwenden Sie den analogen Temperatursensor Raspberry Pi Python to TMP36 und den AD-Wandler MCP3008
Verwenden Sie den Temperatur- / Feuchtigkeits- / Drucksensor BME280 von Python mit Raspberry Pi 2
Verwendung von Raspeye Pie Camera Python
Verwendung von Raspeye Relay Module Python
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Verwenden Sie Python auf Raspberry Pi 3, um "Temperatur (mit A / D-Wandler)" zu erkennen!
Erstellen Sie Ihre eigene IoT-Plattform mit raspberrypi und ESP32 (Teil 3) ~ ESP32-Einstellungen Analoger Temperatursensor
Verwenden Sie vl53l0x mit RaspberryPi (Python)
[Raspberry Pi] Python wurde standardmäßig in Python3 geändert
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten (Hello World)
Raspberry Pi --1 - Zum ersten Mal (Schließen Sie einen Temperatursensor an, um die Temperatur anzuzeigen)
Erkennen Sie analoge Signale mit dem A / D-Wandler mithilfe von Python auf Raspberry Pi 3!
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Verwenden Sie den Grove-Sensor mit Raspberry Pi
Python: Verwendung von Einheimischen () und Globalen ()
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Verwendung von Python zip und Aufzählung
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Verwendung ist und == in Python
Erstellen eines Temperaturregelungssystems mit Himbeerkuchen und ESP32 (3) Empfangen einer Python-Datei
Verwendung des digitalen 1-Draht-Temperatursensors DS18B20 mit Raspberry Pi von Python
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten, wenn es dunkel wird!
Grove - Temperatur- und Feuchtigkeitssensor (DHT11) mit Raspberry Pi
[Python] Verwendung von Hash-Funktion und Taple.
Himbeere + am2302 Temperatur und Luftfeuchtigkeit mit Temperatur- und Feuchtigkeitssensor messen
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Messen Sie die CPU-Temperatur von Raspeye mit Python
Notieren Sie Temperatur und Luftfeuchtigkeit mit systemd auf Raspberry Pi
Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung
[Python] [Django] Verwendung des Auswahlfelds und Hinzufügen von Optionen
Erstellen Sie einen Farbsensor mit einem Raspeltorte und einer Kamera
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Messen Sie Temperatur und Luftfeuchtigkeit mit Raspberry Pi3 und visualisieren Sie mit Ambient
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Verwenden Sie raspberryPi und Julius (Spracherkennung). ③ Wörterbucherstellung
Raspberry Pi + Python + IoT-Gerät, Umgebungskonstruktionsverfahren zum Starten der Bildverarbeitung und des maschinellen Lernens
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Python-Anfänger öffnet und schließt die ineinandergreifende Kamera mit Raspberry Pi
Erstellen Sie LCD-Spiele (16x2) mit Raspberry Pi und Python
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Herstellung eines Temperaturregelungssystems mit Himbeerkuchen und ESP32 (1)
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Installieren Sie pyenv auf MacBookAir und wechseln Sie Python zur Verwendung
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Messen und vergleichen Sie Temperaturen mit Raspberry Pi und generieren Sie automatisch Diagramme
[Python] Verwenden Sie diese Option, um WAV-Dateien zu lesen und zu schreiben. [WAVIO]
So erhalten Sie die Temperatur vom SwitchBot-Thermo-Hygrometer mit Himbeer-Pi
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Senden Sie die mit SensorTag gemessene Temperatur, Luftfeuchtigkeit usw. über Raspberry Pi 3 an Ambient und zeichnen Sie sie grafisch auf.
Messen Sie Temperatur, Luftfeuchtigkeit usw. mit SensorTag und senden Sie es über Raspberry Pi 3 an Ambient, um es Teil 2 grafisch darzustellen
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe