Table des matières:

Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : 8 étapes
Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : 8 étapes

Vidéo: Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : 8 étapes

Vidéo: Passerelle série UDP/IP pour Arduino basée sur ESP8266 Shield : 8 étapes
Vidéo: #LoRaWAN #5: Config Gateway RAK833 Drivers USB/SPI + Semtech UDP Packet Forwarder + RPI : PDAControl 2024, Juillet
Anonim
Passerelle série UDP/IP pour Arduino basée sur le bouclier ESP8266
Passerelle série UDP/IP pour Arduino basée sur le bouclier ESP8266

J'ai déjà publié en 2016 cette instructable "Comment créer votre propre passerelle Wifi pour connecter votre Arduino au réseau IP". Depuis que j'ai fait quelques améliorations de code et j'utilise toujours cette solution.

Néanmoins il existe maintenant des shields ESP8266 qui permettent de faire tout à fait la même chose sans soudure tant que vous n'utilisez pas de cartes Micro ou Nano.

Cette instructable vous expliquera comment utiliser ces boucliers ESP82 comme passerelle série UDP/IP.

Cela fait partie d'une infrastructure domotique globale que vous pouvez consulter ici

Plus d'informations sur le bouclier avec cette instructable

Fournitures

1 Arduino Mega (le mieux est d'avoir au moins 1 Mega pour le développement et 1 Uno pour la phase d'exécution)

1 Convertisseur WIFI Rokoo ESP8266 ESP-12E UART

1 FTDI 3.3v

2 fils de planche à pain

Étape 1: Comment ça marche ?

Comment ça marche ?
Comment ça marche ?

La passerelle est basée sur un module ESP8266

Ce module est connecté d'un côté avec la liaison série de l'autre côté au réseau IP avec le Wifi.

Il agit comme une boîte noire. Les paquets de données provenant de la liaison série sont envoyés sur un port IP/Udp et vis et versa.

Il vous suffit de paramétrer votre propre configuration (IP, WIFI…) une fois la première mise sous tension de la Gateway.

Il peut transférer soit des données brutes ASCII et binaires (pas de HTTP, JSON…)

Il est conçu pour connecter des objets avec des logiciels de serveur faits maison qui nécessitent des transferts rapides et fréquents de courts paquets de données.

Étape 2: Quelles sont les fonctions principales ?

Il s'agit principalement d'une boîte noire qui convertit les données série en paquet UDP dans les deux sens.

Mais la passerelle peut aussi agir par elle-même en envoyant des informations internes au serveur et en recevant certaines commandes du serveur.

Arduino peut envoyer et recevoir des messages vers / depuis un serveur connecté via Internet simplement en imprimant / lisant une liaison série. Le développeur Arduino n'a pas besoin de se soucier du protocole IP.

En plus de cela, il fournit un GPIO qui peut être utilisé par Arduino pour vérifier que la passerelle est correctement connectée au WIFI et que la passerelle peut automatiquement basculer entre 2 SSID différents en cas de panne

La passerelle a 2 modes de fonctionnement différents qui sont sélectionnés en définissant un GPIO

Mettre GPIO à la terre et la passerelle entre en mode de configuration.

La configuration GPIO libre et la passerelle entre en mode d'exécution de passerelle.

De plus, la configuration de la passerelle UDP/IP peut être modifiée à distance

Étape 3: Construction du matériel

Construction de matériel
Construction de matériel

Très peu de choses sont nécessaires

1 ESP8266 Shield - J'ai trouvé ce module de carte d'extension UNO R3 ESP8266 Serial WiFi Shield à moins de 9€

1 UNO qui est la cible Arduino cible

1 Mega c'est l'outil de développement arduino (on peut s'en passer mais c'est assez difficile à déboguer)

1 FTDI 3.3/5v pour le développement

Quelques fils

Étape 4: Téléchargez le code de la passerelle

Téléchargez le code de la passerelle
Téléchargez le code de la passerelle

Au cours de cette étape, l'Arduino est uniquement utilisé pour alimenter (avec USB ou une autre source d'alimentation) sur le blindage ESP8266

Connectez l'ESP8266 GPIO4 à la masse (pour entrer en mode configuration)

Prenez soin de régler le FTDI sur 3.3v comme requis par le shield

Connectez le FTDI au blindage (RX à TX)

Réglez le commutateur de blindage sur 1:off 2:off 3:on 4:on

Connectez le côté USB du FTDI à votre ordinateur

Réinitialiser le blindage avec le bouton poussoir ESP-RST

Téléchargez le code de la passerelle sur GitHub

Ouvrir l'IDE Arduino

  • Sélectionnez le port du moniteur FTDI
  • Ouvrez le moniteur série IDE - Réglez la vitesse sur 38400
  • Sélectionnez la carte de module générique ES8266
  • Mettre à niveau le firmware du shield avec le code de la passerelle

Réglez l'interrupteur 3:off 4:off

Ouvrez le moniteur série IDE

Réinitialiser le blindage avec le bouton poussoir ESP-RST

Vous devez voir des messages sur le moniteur commençant par « initialisation EEPROM » « Initialisation terminée »….

Il est temps de faire la configuration

Étape 5: Faisons la configuration de la passerelle

Lors du premier téléchargement du code de la passerelle, l'Eeprom ESP8266 sera initialisé avec les valeurs par défaut. Vous verrez ce genre de messages "set parameter: x size: yy"

Vous pouvez trouver ces valeurs dans la définition de code de paramValue. Vous pouvez bien entendu modifier ces valeurs par défaut avant de télécharger le code mais vous pouvez également définir votre configuration par commande ultérieurement. C'est mieux si vous prévoyez d'avoir plusieurs passerelles et de ne garder qu'une seule version de code.

Utilisez le port série du moniteur pour envoyer la commande (défini sur NL et CR).

Comme le SSID n'est pas défini actuellement, attendez « Impossible de se connecter à votre seconde tentative d'identification: 5 »

Ensuite, une analyse du WIFI démarrera automatiquement

Il est temps de définir vos SSID avec les commandes suivantes:

  • SSID1=votrechoix1
  • PSW1=votre mot de passe1
  • SSID2=votrechoix2
  • PSW2=yourpsw2
  • SSID=1 (pour choisir par quel SSID commencer)
  • RedémarrerWifi

Après quelques secondes, vous pouvez vérifier la connexion avec la commande "ShowWifi". Vous devez voir l'adresse IP que la passerelle a obtenue de votre serveur DNS. Si c'est le cas il est temps d'aller plus loin

Il est temps de définir l'adresse de votre serveur IP en saisissant les 4 sous-adresses (serveur qui exécutera le code de test Java). Par exemple:

  • "IP1=192"
  • "IP2=168"
  • "IP3=1"
  • "IP4=10"

En envoyant une commande vide, vous verrez toutes les commandes prises en charge que vous pourrez utiliser plus tard pour répondre à vos besoins. Toutes les valeurs des paramètres sont stockées dans l'Eeprom et nécessitent un redémarrage pour être prises en compte.

Retirer le fil de configuration

Le bouclier fonctionne maintenant comme une passerelle

Étape 6: Téléchargez l'exemple de code Arduino

Téléchargez l'exemple de code Arduino
Téléchargez l'exemple de code Arduino

Téléchargez d'abord le code principal Arduino sur GitHub

Téléchargez ensuite le code Arduino, cette définition de commandes et ce code de liaison série dans vos librairies

Ensuite, ouvrez le code principal avec un nouvel IDE Arduino

Désactivez les commutateurs de blindage 1 et 2 pour libérer la liaison série Arduino 0 pour la connexion USB

Réinitialiser le bouclier

Connectez les fils FTDI au Mega Serial 2 (TX FTDI à RX Mega et ainsi de suite)

Démarrez un nouvel IDE Arduino (ou un outil TTY), connectez l'Usb FTDI et commencez à surveiller la liaison série

Téléchargez le code Arduino à l'intérieur du Mega

Mettez le shield Switch 1 et 2 sur on pour connecter la liaison série Arduino 0

Réinitialiser le bouclier

Vous devez voir ce message "start usb print" sur le moniteur

Étape 7: Passons au côté serveur

L'exemple de serveur est un programme Java que vous pouvez télécharger ici sur GitHub

Il suffit de l'exécuter et de regarder la console Java et de regarder le moniteur FTDI

Vous verrez des échanges de données entre le serveur et Arduino

Étape 8: Pour aller plus loin

Pour aller plus loin
Pour aller plus loin
Pour aller plus loin
Pour aller plus loin

Cet exemple de code Arduino est basé sur un framework faisant partie de mon infrastructure domotique.

Si cette infrastructure vous intéresse, faites le moi savoir. Je publierai des sources.

Si vous souhaitez simplement utiliser la passerelle, vous pouvez simplifier le code Arduino.

Après avoir développé et testé votre code sur un Arduino Mega, vous pouvez facilement le remplacer par un Uno !

En plus de cela, vous pouvez connecter un fil entre Arduino GPIO 7 et ESP8266 GPIO 5 si vous voulez que votre Arduino vérifie la connexion Wifi

Conseillé: