Bonjour a tous,
voila j'aurais besoin d'un coup de main. Je réalise une station météo avec un Arduino qui envoie ses données sur le port série @9600.
j'arrive à lire les valeurs sur le port série de l'Arduino IDE. Jusque la, pas de problème.
Maintenant j'utilise deux modules Dorji,un du coté de l'Arduino, un autre sur un serveur Debian avec adaptateur usb visible en /var/ttyUSB0 reglé en 9600 lié entre eux.
Coté arduino, la led rouge du module dorji s'allume lorsque le port série envoie quelque chose.
Coté serveur, la led bleu du module dorji s'allume signifiant qu'il à recu des données du module dorji de l'arduino
Mon problème est que je n'arrive pas ,du coté du serveur avec python, à lire le port /var/ttyUSB0.
Je vous met le code python(2.7) ainsi que le code Arduino.
#!/usr/bin/python
import serial
import MySQLdb
import sys
#establish connection to MySQL.
dbConn = MySQLdb.connect("adress","login","pass","bdd_name") or die ("could not connect to database")
#open a cursor to the database
cursor = dbConn.cursor()
device = '/dev/ttyUSB0' # usually ttyUSB0 or ttyUSB1 for linux, or COM port number for windows
baudrate = 9600
def getSerialData():
try:
print "Trying...",device
arduino = serial.Serial(device, baudrate)
except:
print "Failed to connect on",device
try:
print "Trying to get data"
next(arduino)
data = arduino.readline() #read the data from the arduino
pieces = data.split("\t") #split the data by the tab
print "Data: %s" % data
print "Piece 1: %s" % pieces[0]
print "Piece 2: %s" % pieces[1]
#Here we are going to insert the data into the Database
try:
print "Trying insertion..."
cursor.execute("INSERT INTO data (temp,humidity) VALUES (%s,%s)", (pieces[0],pieces[1]))
dbConn.commit() #commit the insert
except MySQLdb.IntegrityError:
print "failed to insert data"
finally:
print "closing cursor"
del pieces[:]
except:
print "Failed to get data from Arduino!"
sys.exit(1)
val = 0
while val == 0 :
getSerialData()
#include <Wire.h>
#include "SparkFunHTU21D.h"
//Create an instance of the object
HTU21D myHumidity;
void setup()
{
Serial.begin(9600);
myHumidity.begin();
}
void loop()
{
float humd = myHumidity.readHumidity();
float temp = myHumidity.readTemperature();
Serial.print(temp, 1); //HTU21D temperature (°C)
Serial.print("\t");
Serial.print(humd, 1); //HTU21D humidite (%)
Serial.print("\t");
delay(1000);
}
Merci pour l'aide que vous pourrez m'apporter.













