Bonjour à tous,
Je maîtrise encore pas trop python et j'ai repris un code que je dois adapter selon mon besoin.
Je mesure les poussières fines, l'heure, la latitude et longitude et éventuellement deux autres valeurs.
L'exemple qui m'a été donné est celui-ci
Code python3 : 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 # 2b array to store sensor data data_pkt = bytearray(2) # time to delay periodic packet sends (in seconds) data_pkt_delay = 5.0 send_pi_data(CPU) def send_pi_data(data): # Encode float as int data = int(data * 100) # Encode payload as bytes data_pkt[0] = (data >> 8) & 0xff data_pkt[1] = data & 0xff # Send data packet lora.send_data(data_pkt, len(data_pkt), lora.frame_counter) lora.frame_counter += 1 display.fill(0) display.text('Sent Data to TTN!',0 , 50, 1) print('Data sent to TTN!') display.show() time.sleep(0.5)
D'après ce que je comprends CPU est un float et en première ligne, il est converti en int, puis sous #encode, je me perds.
je dois envoyer ces valeurs
pmt_2_5 = 80.4
pmt_10 = 7.6
lat = 46.34567
long = 6.35478
date_time = time.strftime("%Y-%m-%d %H:%M:%S")
Les 4 premières sont des floats.
Le truc, c'est que le serveur qui va recevoir ce code, va devoir décoder ceci et il faut que les valeurs soient envoyées sous cette forme
ce qui ressemble plus tôt à une chaîne de caractèrea:80.4,b:7.6,c:46.34567,d:6.35478,e:2020-04-18 19:38:55
Je suis donc emprunté quant à passer tout cela dans send_pi_data(data) et ceci me questionne # 2b array to store sensor data
data_pkt = bytearray(2) quant à la longueur acceptable.
Est-ce que ceci va aussi me convertir une chaîne (de 100 caractères max) de caractère en int?
![]()
Partager