Bonjour tout le monde,
J'ai acheté un aquarium il y a quelques semaines et j'aimerai automatiser l'éclairage de celui-ci.
Pour cela j'utilise un relais contrôlé par un Arduino qui lui-même est relié à une Raspberry Pi.
J'ai donc créé un programme python (qui utilise la bibliothèque Serial) qui sera activé par une tâche planifiée :
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 import serial port = "/dev/ttyUSB0" output= 9600 ser = serial.Serial(port, output) nb ="1" #nb = raw_input("nb: ") ser.write(nb) #print(ser.name) print(nb)
le code est simple et pourtant il ne se passe rien à l'exécution.
Ce qui est bizarre c'est que si je remplace le nb=1 par le raw_input() qui est en commentaire et que l'utilisateur rentre bien "1", le relais se déclenche...
Voici le code de la Arduino :
Code Arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 int byte_read = 0; //<= the current byte int recieved_integer = 0; //<= the current recieved integer void setup() { pinMode(2, OUTPUT); digitalWrite(2, HIGH); Serial.begin(9600); } boolean is_a_number(int n){ return n>=48 && n <=57; } int ascii2int(int n, int byte_read) { return n*10 + (byte_read - 48); } void loop() { recieved_integer =0; Serial.write("coucou"); if (Serial.available()) { int byte_read = Serial.read(); if (is_a_number(byte_read)) { recieved_integer = ascii2int(recieved_integer, byte_read); } switch (recieved_integer ) { case 1: digitalWrite(2, LOW); break; case 2: digitalWrite(2, HIGH); break; } } delay(2000); }
Si vous avez une solution à mon problème je suis preneur...
Partager