Étape 8: Communication série entre Arduino et ESP-12
Nous avons déjà le Aruino et ESP-12 communiquer (les données que vous voyez dans le terminal sont la retransmission de l’Arduino). Maintenant, nous voulons l’Arduino pour effectuer une action après avoir reçu des commandes prédéfinies de l’ESP-12.
Transférer les données de l’ESP8266 à l’Arduino
La première chose que nous voulons faire est de passer certains entiers de 2 octets de l’ESP-12 à l’Arduino. J’ai le démontrer avec des entiers de 2 octets, mais il peut être entiers longs de 4 octets ou même des flotteurs de 4 octets, la procédure est la même.
Commencer à octet, | Octet 0, | ..., | N-1 octets |
---|
Nous envoyer un octet de départ tout d’abord, puis nous envoyer N octets de données. N est prédéfini. Lorsque l’Arduino reçoit l’octet de départ il arrête les données au port série d’impression et au lieu de cela, il met l’octet reçu à l’intérieur d’une zone tampon. Après cela, il assemble les données : toutes les 2 octets sont un nombre entier. Notez que l’octet de départ ne devrait pas être un octet imprimable, parce que le mode de réception peut être accidentellement invoqué. Pour le rendre meilleur pour des données fiables, vous pouvez ajouter un champ de total de contrôle sur les données. J’ai défini les commandes suivantes :
Nom de la commande | Code |
---|---|
FETCH_DATA_COMMAND | 0 x 80 |
PRINT_DATA_COMMAND | 0 x 81 |
PRINT_DATA_LCD | 0 x 82 |
Lorsque le code 0 x 80 est reçu, les données suivantes sont envoyées par le ESP8266 :
UART.Write(0,bit.arshift(bit.Band(x,0xFF00),8), bit.band(x,0x00ff))
L’Arduino assemble les deux octets à nouveau :
get_X = (data_arr [0] << 8) + data_arr [1] ;
Imprimer les données depuis le ESP8266 à l’Arduino
J’ai défini une autre commande qui imprime directement les données de l’ESP8266 à l’écran LCD. Je peux ajouter plus d’options comme la sélection d’une police ou imprimé lignes etc.. Mais j’ai l’intention que l’Arduino fera la plupart du travail d’impression et le ESP8266 remplira uniquement en nombre et texte à partir d’internet.