Communication pi3 arduino bluetooth

Salut pierre,

Merci pour ta réponse,
Ca me rassure, je vois que le problème ne viens pas de mon programme Arduino.

Je te met mon programme en copie, il est nettement plus rustique!^^ Pour le moment je cherche juste à allumer et éteindre la LED 13 de l’Arduino en fonction de la consigne qu’il recevra en bluetooth du raspberry.

#include < Hm10.h > //transmetteur bluetooth
#include < Hm10Adapter.h> // Utile ou pas ?
#include < SoftwareSerial.h>

int ledPin = 13;

void setup() {
Serial.begin( 9600 );
}

void loop() {
// Attente recepetion données
if ( Serial.available() > 0 ) {
// Lire valeurs depuis recepteur bluetooth
int count = Serial.parseInt();

 // Afficher valeurs depuis recepteur bluetooth
if (count > 0) {
    Serial.print("Commande reçue: ");
    Serial.println(String(count));
    // blink LED
    blinkLED(count);
}

}
}

void blinkLED(int count) {
for (int i=0; i< count; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}

Est ce que tu peux m’envoyer le script du raspberry? Parce que c’est ca que je n’arrive pas à programmer.
Tu dois avoir un programme en python que tu exécute avec une ligne de commande non ? Avec la fameuse commande rfcomm ?

Merci d’avance
A+

voici déjà un exemple pour lire les données bluetooth sur l'arduino

#include <SoftwareSerial.h> //Serial library
SoftwareSerial bt (5, 6); //RX, TX (Switched on the Bluetooth – RX -> TX | TX -> RX)
String btdata;

void setup() {
  Serial.begin(115200);
  bt.begin(9600);//bluetooth
}

void Recevoir_BT() {
  if (bt.available() > 0) {
    btdata = char(bt.read());
    Serial.println(btdata);
    //    long int temp=btdata.length(); //tests
    //    Serial.println(temp);//tests
    if (btdata[0] == '0') {
      Serial.print("lampe on " + btdata);
   //faire quelque chos....
    }
    else if (btdata[0] == '1') {

      Serial.print("Lampe off " + btdata);
 //faire quelque chos....`Texte préformaté`
    }
}
Voici l'exemple en python c'est vraiment simple:

#!/usr/bin/env python3
# coding: utf-8
import socket
#=================BlueTooth===========
bd_addr ="AA:BB:CC:DD:EE:FF" * l'adresse de ta carte Bluetooth
port = 1
size = 1024
data =""
data_end = 0
Canal =""
sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
sock.connect((bd_addr,port))

#==============Ecrit BT===============
def Ecrit_BT(MaLampe):
	#print("LAMPE",MaLampe)
	
	if MaLampe:#si une une lampe est selectionnée
		#print("transBT")
		i=1 
		#print ("connecté: en attente de transfert")
		while i<=2:
			Envoi=MaLampe#+"\n"
			sock.send(Envoi.encode("Utf8"))
			i+=1
			print("lampe envoyée")
		#sock.close()
#==================================
def envoyer():
	#envoyer la valeur d'un bouton radio
	X=malampe
	Ecrit_BT(X)
#==================================

#dans le programme appeler envoyer()

Salut Flo je vais regarder un peu ce qu’il est dit ici plus précisément pour comprendre ton problème.
Car dans mon topic tu m’as parler de Arduino RPI3. Et donc c’est un peu plus complexe dans le sens ou Arduino = C
RPI = dépend de la LIB je dirais :smiley:

PS : le code sous BASH est encore plus simple mais python est plus rapide car il utilise des lib et non des binaire.

#par

J’ai vu que tu as mis en place deux code je vais les regarder mais Flo en tout cas à vu d’oeuil ils ont l’air bon leurs code.

#Flo.

A savoir aussi deux choses.
La connexion entre le RPI en BLE et L’arduino dit que Les deux Hardware sont relié.
Ensuite les carte BLE elle ne font que d’envoyé par un socket en général de 1024 bytes des données et rien d’autre.

Pour ses données il faut qu’un Serveur BLE sois créer et un Client sois aussi relié.

Je sais pas si cela va t’aider pour l’instant car tu le sais peut-être déjà mais.

1 - Connecter les deux carte BLE
2 - Lancer un Serveur qui attend une connexion d’un client.
3 - Lancer le Client et se connecter au Serveur.
4 - Une fois la connexion étalbie.
5 - Client envoi DATA à Serveur qui Serveur traîte l’information du client.

EX client envoi LED_ON au serveur.
Le serveur vois LED_ON et sais que LED_ON dois allumer une LED.

Je reviendrais ce soir vers toi.
Pour ma part sache que moi j’ai fait un application Android qui se connecte en BLE à un Arduino ou RPI ou autre.
Un BLE quoi et qui envoie des commandes que j’ai définie ex (LED_ON - LED_OFF - FUCK OFF - COFFEE).
Chacun de ses texte sont codé comme suis après dans mon script.

Si LED_ON alors
Ouvre le fichier python qui allume cette LED.
sinon si LED_OFF
Ouvre le fichier python qui éteint la LED.
sinon si …