ich versuche mit einem Raspberry Pi und dem AD Wandler MCP3008 die erfassten Werte in eine Mysql Datenbank mit Python zu schreiben.
Hier ein paar Fakten:
Ich habe den Quellcode von Erik Bartmann verwendet und bereits eine Anbindung zum Mysql Server hergesetllt.
Ich würde gerne den Wert aus dieser Zeile
Code: Alles auswählen
print readAnalogData(adcChannel, SCLK, MOSI, MISO, CS)
Über eure Tipps bin ich sehr dankbar!
Code: Alles auswählen
import time
import RPi.GPIO as GPIO
import MySQLdb
mysql_opts = {
'host': "localhost",
'user': "***",
'pass': "***",
'db': "widerstand"
}
mysql = MySQLdb.connect(mysql_opts['host'], mysql_opts['user'], mysql_opts['pass'], mysql_opts['db'])
GPIO.setmode(GPIO.BCM)
HIGH = True # HIGH-Pegel
LOW = False # LOW-Pegel
# Funktionsdefinition
def readAnalogData(adcChannel, SCLKPin, MOSIPin, MISOPin, CSPin):
# Pegel vorbereiten
GPIO.output(CSPin, HIGH)
GPIO.output(CSPin, LOW)
GPIO.output(SCLKPin, LOW)
sendcmd = adcChannel
sendcmd |= 0b00011000 # Entspricht 0x18 (1:Startbit, 1:Single/ended)
# Senden der Bitkombination (Es finden nur 5 Bits Beruecksichtigung)
for i in range(5):
if (sendcmd & 0x10): # (Bit an Position 4 pruefen. Zaehlung beginnt bei 0)
GPIO.output(MOSIPin, HIGH)
else:
GPIO.output(MOSIPin, LOW)
# Negative Flanke des Clocksignals generieren
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
sendcmd <<= 1 # Bitfolge eine Position nach links schieben
# Empfangen der Daten des ADC
adcvalue = 0 # Ruecksetzen des gelesenen Wertes
for i in range(11):
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
# print GPIO.input(MISOPin)
adcvalue <<= 1 # 1 Postition nach links schieben
if(GPIO.input(MISOPin)):
adcvalue |= 0x01
time.sleep(0.5)
return adcvalue
# Variablendefinition
adcChannel = 0 # Analog/Digital-Channel
SCLK = 18 # Serial-Clock
MOSI = 24 # Master-Out-Slave-In
MISO = 23 # Master-In-Slave-Out
CS = 25 # Chip-Select
# Pin-Programmierung
GPIO.setup(SCLK, GPIO.OUT)
GPIO.setup(MOSI, GPIO.OUT)
GPIO.setup(MISO, GPIO.IN)
GPIO.setup(CS, GPIO.OUT)
while True:
print readAnalogData(adcChannel, SCLK, MOSI, MISO, CS)