Bonjour tout le monde.
Je voulais ( et je veux toujours en fait) me lancer dans l'utilisation des module ArduinoBLE.
Le but, communiquer entre mon Arduino recevant des data en analogique et un Raspberry collectant et archivant des données.
La collecte d'info entre arduino et raspi fonctionne via I2C.
Mas je voulais ,m'affranchir des fils entre les deux ensemble (isolation galvanique plus efficace....)
Donc soit le bluetooth, soit le wifi....
Comme j'avais des arduinoBLE, j'ai essayé le bluetooth.
Ma configuration :
Arduino 33 BLE, avec l'IDE 1.18.16 et mise a jour des bibliothèque, ArduinoBLE, ......
Linux Debian10
Il existe quelque tuto sur internet, mais j'ai rencontré plusieurs problèmes;.
Mon ArduinoBLE se connecte sur un port ttyACM0.
De ce fait il semble que lorsque j'upload un sketche, le moniteur serie n'est pas disponible en reception pendant+/- 30 sec après la fin de l'upload.( mais en emission, il fonctionne.......!)
Je n'arrive pas a faire fonctionner la bibliothèque <ArduinoBLE.h>.
Dès que je désire initialiser le Bluetooth avec BLE.begin(); l'initialisation semble bloquer l'Arduino
Voici le code (sans le loop{}) que j'utilise
Code:
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 #include <ArduinoBLE.h> #define SERVICE_UUID "19B10000-E8F2-537E-4F6C-D104768A1214" #define ANALOG_CHARACT_UUID "19B10001-E8F2-537E-4F6C-D104768A1214" #define CHANNEL_CHARACT_UUID "19B10002-E8F2-537E-4F6C-D104768A1214" BLEService AnalogService(SERVICE_UUID); BLECharacteristic AnalogChar(ANALOG_CHARACT_UUID, BLERead | BLENotify,2); BLEByteCharacteristic ChannelChar(CHANNEL_CHARACT_UUID, BLEWrite | BLERead); BLEDescriptor AnalogDescriptor("2901","analog"); BLEDescriptor ChannelDescriptor("2901","channel"); uint8_t channel; boolean write_adr; int led1 = LEDR; int led2 = LEDG; int led3 = LEDB; void setup() { Serial.begin(115200); analogReadResolution(12); channel = A0; if (!BLE.begin()) { Serial.println("échec du démarrage de BLE"); digitalWrite (led1,HIGH); while (1); } AnalogChar.addDescriptor(AnalogDescriptor); ChannelChar.addDescriptor(ChannelDescriptor); BLE.setLocalName("ADC"); BLE.setAdvertisedService(AnalogService); AnalogService.addCharacteristic(AnalogChar); AnalogService.addCharacteristic(ChannelChar); BLE.addService(AnalogService); BLE.advertise(); digitalWrite (led1,LOW); }
J'ai allumé une led rouge durant la boucle BLE.begin(), et elle devrait s'éteindre dès que BLE.begin() est initialise.
Et là elle ne s'éteint jamais (sauf en deconnectant l'arduino :)
Si quelqu'un à une idée ou des exemples ou m'explique ou est mon erreur,...je suis preneur
Un grand Merci
Michel