Étape 5: Relevé des données depuis la framboise
Il faudra scanner les différents dispositif BLE à porté de la framboise via la commande ci-après. Cette commande renverra le nom ainsi que la mac adresse de chaque appareil à porté. Il faudra copier coller l’adresse mac du RedBearLab.
Copier coller le script python ci dessous,
http://www.doritique.fr/Articles/View_Article.php?...
Modifier la variable ble_addr du script python par la mac adresse du RedBearLab in précédemment.
Il faudra aussi modifier le script python comme ci-dessous afin qu’il envoi le tampon de requête attendu normale la ReadBearLab et correspondant au capteur ne le veut récupérer les données.
import os import sys import pexpect import time import urllib2 import urllib ble_addr="E5:AE:C1:71:96:E4" class Sensortag: def __init__(self,ble_addr): self.ble_addr=ble_addr self.child = pexpect.spawn('gatttool -t random -b ' + ble_addr + ' -I') self.child.expect('\[LE\]>') print("Try to connect to the board") self.child.sendline('connect') self.child.expect('Connection successful') print("Connected") return def getTemperature(self): print("try to update the temperature") self.child.sendline('char-write-req 0x0011 0100 -listen') self.child.expect('Characteristic value was written successfully') self.child.sendline('char-write-cmd 0x000e A00100') self.child.expect('Notification handle = 0x0010 value: 0b .*') rval = self.child.after.split() print("temperature: " + str(int(rval[7], 16))) return int(rval[7], 16) def getPressure(self): print("try to update the pressure") self.child.sendline('char-write-req 0x0011 0100 -listen') self.child.expect('Characteristic value was written successfully') self.child.sendline('char-write-cmd 0x000e A00300') self.child.expect('Notification handle = 0x0010 value: 0b .*') rval = self.child.after.split() pressure = "" + rval[6] + rval[7] print("pressure: " + str(int(pressure, 16))) return int(pressure, 16) def exit(self): self.child.sendline('exit'); return def main(): sensortag=Sensortag(ble_addr) while True: tmpIR=sensortag.getTemperature() prsIR=sensortag.getPressure() time.sleep(3) sensortag.exit(); #time.sleep(10) if __name__ == "__main__": main()