Table des matières:

Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ? : 11 étapes (avec photos)
Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ? : 11 étapes (avec photos)

Vidéo: Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ? : 11 étapes (avec photos)

Vidéo: Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ? : 11 étapes (avec photos)
Vidéo: 📡 CREEZ votre propre ROUTEUR WIFI (HOTSPOT) avec le RASPBERRY PI... très facilement ! 2024, Juillet
Anonim
Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ?
Comment créer votre propre passerelle WIFI pour connecter votre Arduino au réseau IP ?

Comme beaucoup de gens vous pensez qu'Arduino est une très bonne solution pour faire de la domotique et de la robotique

Mais en terme de communication, les Arduinos ne sont livrés qu'avec des liaisons série.

Je travaille sur un robot qui doit être connecté en permanence à un serveur qui exécute du code d'intelligence artificielle. J'ai essayé d'utiliser le réseau RF comme j'ai l'habitude de le faire pour la domotique mais ce n'est pas assez efficace. Comme le robot se déplace, je ne peux pas utiliser l'Ethernet Arduino Shield. Arduino Wifi Shield est cher et me semble être un ancien design.

J'avais besoin de quelque chose qui puisse échanger des données de manière très simple et efficace avec un serveur.

C'est pourquoi j'ai décidé de concevoir une passerelle basée sur le microcontrôleur ESP8266 très bon marché et économe en énergie

Vous trouverez ici comment construire le composant électronique et télécharger le logiciel.

J'ai utilisé cette passerelle pour la domotique et pour la robotique.

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

J'ai fait un autre instructable qui utilise un blindage ESP8266 et évite de souder

Fournitures

J'ai écrit un autre instructable sur ce sujet

É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.

Il est plus facile à utiliser avec Arduino Mega qui a plus d'un UART (Arduino Mega par exemple) mais peut également fonctionner avec un UNO.

Étape 2: Quelles sont les fonctions principales ?

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

Il dispose de 3 LED qui indiquent l'état et le trafic de la passerelle.

Il fournit un GPIO qui peut être utilisé par Arduino pour attendre que la passerelle soit connectée WIFI et IP.

Il fonctionne dans 3 modes différents qui sont réglés avec des commutateurs:

  • Mode passerelle qui est le mode normal
  • Mode de configuration utilisé pour définir les paramètres
  • Mode de débogage qui est pour le mode de débogage

La plupart des paramètres peuvent être modifiés pour s'adapter à vos besoins.

Étape 3: Construction du matériel

Construction de matériel
Construction de matériel

En plus de votre Arduino, vous aurez besoin

  • 1 x module ESP8266 - Je choisis le MOD-WIFI-ESP8266-DEV d'Olimex qui coûte environ 5 euros et qui est assez simple d'utilisation.
  • 1 source d'alimentation 5v
  • 1 x régulateur de puissance 3.3v - j'utilise LM1086
  • 1 condensateur de 100 microfarads
  • 1 x module APG ULN2803 (peut être remplacé par 3 x transistors)
  • 8 x résistances (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (rouge, vert, bleu)
  • 1 x PCB de planche à pain
  • quelques fils et connecteurs

Pendant les étapes de construction seulement, vous aurez besoin

  • 1 x FTDI 3.3v pour la configuration
  • Fer à souder et étain

Avant de souder, il est important de configurer tous les composants sur la maquette et de vérifier que tout va bien.

Étape 4: Commençons par l'électronique sur la planche à pain

Commençons par l'électronique sur la planche à pain !
Commençons par l'électronique sur la planche à pain !

La mise en page électronique est disponible au format Fritzing

Vous pouvez le télécharger ici l'étape 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Il suffit de faire comme schéma en faisant attention à la tension.

N'oubliez pas que l'ESP8266 ne prend pas en charge les tensions supérieures à 3,3 v. Le FTDI doit être réglé sur 3,3 v.

Étape 5: Passons au logiciel

Passons au logiciel !
Passons au logiciel !

Commençons par le côté Gateway

J'ai écrit le code avec Arduino IDE. Vous avez donc besoin que l'ESP8266 soit connu sous le nom de carte par l'IDE. Sélectionnez la carte appropriée avec le menu Outils / cartes.

Si vous ne voyez aucun ESP266 dans la liste, cela signifie que vous devrez peut-être installer ESP8266 Arduino Addon (vous pouvez trouver ici la procédure).

Tout le code dont vous avez besoin est disponible sur GitHub. Il est temps de le télécharger !

Le code principal de la passerelle est là:

En plus de l'Arduino standard et de l'ESP8266, le code principal a besoin de ces 2 éléments: LookFoString qui est utilisé pour manipuler les chaînes et qui est là:

ManageParamEeprom qui est utilisé pour lire et stocker les paramètres dans Eeprom et est là:

Une fois que vous avez obtenu tout le code, il est temps de le télécharger dans l'ESP8266. Connectez d'abord le FTDI à un port USB de votre ordinateur.

Je vous suggère de vérifier la connexion avant d'essayer de télécharger.

  • Réglez le moniteur série Arduino sur le nouveau port USB.
  • Réglez la vitesse sur 115200 les deux cr nl (vitesse par défaut pour Olimex)
  • Allumez la maquette (ESP8266 est livré avec un logiciel qui gère les commandes AT)
  • Envoyez "AT" avec l'outil série.
  • Vous devez obtenir « OK » en retour.

Sinon, vérifiez votre connexion et regardez les spécifications de votre ESP8266.

Si vous avez "OK", vous êtes prêt à télécharger le code

  • Éteignez la planche à pain, attendez quelques secondes,
  • appuyez sur le micro-swith noir de l'ESP8266. Il est normal d'avoir des déchets sur le moniteur série.
  • Appuyez sur l'IDE de téléchargement comme pour un Arduino.
  • Une fois le téléchargement terminé, définissez la vitesse série sur 38400.

Vous verrez quelque chose comme sur la photo.

Félicitations, vous avez téléchargé le code avec succès !

Étape 6: Faisons la configuration

Faisons la configuration !
Faisons la configuration !

Le configGPIO doit être mis à 1 pour entrer en mode de configuration

Dans un premier temps scannez le WIFI en entrant la commande: ScanWifi. Vous verrez une liste du réseau détecté.

  • Ensuite, définissez votre SSID en entrant "SSID1=votre réseau"
  • Ensuite, définissez votre mot de passe en entrant "PSW1=votre mot de passe"
  • Entrez ensuite "SSID=1" pour définir le réseau actuel
  • Entrez "Redémarrer" pour connecter la passerelle à votre WIFI.
  • Vous pouvez vérifier que vous avez une adresse IP en entrant "ShowWifi".
  • La LED bleue s'allumera et la LED rouge clignotera.

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"

La dernière étape requise consiste à définir le port d'écoute du serveur UDP en entrant "listenPort=xxxx".

Entrez "ShowEeprom" pour vérifier ce que vous venez de stocker dans Eeprom

Branchez maintenant le GPIO2 à la masse pour quitter le mode de configuration

Votre passerelle est prête à fonctionner

Il existe d'autres commandes que vous pouvez trouver dans la documentation.

Étape 7: Passons au côté Arduino

Faisons le côté Arduino !
Faisons le côté Arduino !
Faisons le côté Arduino !
Faisons le côté Arduino !

Connectez d'abord l'Arduino

Si vous avez un Mega, ce sera plus facile pour commencer. Néanmoins, vous pouvez utiliser un Uno.

Pour vérifier votre travail, le mieux est d'utiliser l'exemple.

Vous pouvez le télécharger ici:

Il comprend le code SerialNetwork qui se trouve ici:

Téléchargez simplement le code dans votre Arduino.

La LED verte clignote à chaque fois qu'Arduino envoie des données.

Étape 8: Passons au côté serveur

Faisons le côté serveur !
Faisons le côté serveur !
Faisons le côté serveur !
Faisons le côté serveur !

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

Exécutez-le simplement

Regardez la console Java.

Regardez le moniteur Arduino.

Arduino envoie 2 paquets différents.

  • Le premier contient l'état des broches numériques 2 à 6.
  • Le second contient 2 valeurs aléatoires, le niveau de tension de A0 en mV et le nombre incrémental.

Le programme Java

  • imprimer les données reçues au format hexadécimal
  • répondre au premier type de données avec une valeur marche/arrêt aléatoire pour activer/désactiver la LED Arduino
  • répondre au deuxième type de données avec le compte reçu et une valeur aléatoire.

Étape 9: Il est temps de faire de la soudure

Il est temps de faire de la soudure !
Il est temps de faire de la soudure !
Il est temps de faire de la soudure !
Il est temps de faire de la soudure !
Il est temps de faire de la soudure !
Il est temps de faire de la soudure !

Cela fonctionne sur la planche à pain !

Il est temps de le rendre plus robuste en soudant des pièces sur un PCB

En plus de ce que vous avez fait avec la maquette, vous devez ajouter 3 connecteurs.

  • C1 1 x broche 1 qui sera utilisée pour entrer en mode trace réseau.
  • C2 3 x broches une qui sera utilisée pour basculer entre le mode d'exécution et de configuration.
  • C3 6 x broches celui qui sera utilisé pour connecter la passerelle soit à un Arduino soit à un FTDI.

C1 connecté à GPIO2 doit être mis à la terre manuellement si vous souhaitez activer les traces réseau.

C2 connecté au GPIO 4 peut être réglé dans 2 positions différentes. L'un réglé à la terre pour le mode de fonctionnement normal et l'autre réglé sur 3,3 v pour entrer en mode de configuration.

Placez tous les composants sur le PCB selon le schéma et ensuite commencez à souder pour obtenir le produit final !

Étape 10: Faisons le test final

Image
Image

Démarrez le programme de test Java.

Connectez l'Arduino.

Mettez la passerelle sous tension.

Et regardez la console Java, le moniteur Arduino, la LED Arduino et les LED Gateway.

Étape 11: Vous pouvez adapter cette conception à vos propres besoins

Concernant le matériel

  • Si vous choisissez un autre ESP8266, vous devrez vous adapter aux spécifications.
  • Si vous choisissez un autre régulateur 3.3v il doit délivrer plus de 500mA et vous devrez adapter le condensateur.
  • Vous pouvez modifier les résistances LED pour ajuster la luminosité.
  • Vous pouvez supprimer toutes les LED mais je recommande de garder au moins le rouge allumé.
  • Vous pouvez remplacer l'ULN2803 par 3 transistors (ou moins si vous choisissez de ne pas garder les 3 LED).
  • J'ai fait des tests mais là ça doit fonctionner avec des cartes Arduino 3.3v. Connectez simplement Tx Rx au connecteur 3.3v.

Concernant la configuration

  • Vous pouvez stocker 2 SSID différents et basculer
  • Vous pouvez modifier le GPIO utilisé

Concernant le logiciel

Conseillé: