… quelques annonces et remarques importantes afin de garantir un travail efficient et sans stress avec le calendrier.
L’utilisation du présent manuel représente seulement une de deux méthodes pour le travail avec le calendrier. La deuxième méthode consiste à
consulter la page
www.conrad.de/iot-adventskalender
comme source d’information. Du point de vue de leur contenu, les deux manuels sont quasiment identiques, le site web propose néanmoins
encore davantage d’informations qui permettent de parvenir à l’objectif fixé.
Le site web comporte par exemple quelques illustrations de plus que le présent manuel. Un site web ne fait pas l’objet de restrictions en ce qui
concerne les coûts d’impression ou le nombre de pages et permet un agencement mieux structuré et plus coloré. L’un ou l’autre article
supplémentaire peut également s’avérer utile pour le développement et la conception de projets personnels.
Une autre fonction utile est la possibilité d’ajouter des commentaires. L’Internet des objets est un thème aussi complexe que passionnant. Pour
garantir le succès d’un projet, de nombreux pièges doivent être évités. La discussion d’un problème au sein d’une grande communauté offre
toujours des avantages. C’est la raison pour laquelle vous avez toujours la possibilité d’ajouter un commentaire au-dessous de chaque article
pour poser des questions, suggérer des améliorations ou aider les autres participants du projet à résoudre leurs problèmes. J’espère qu’il sera
ainsi possible de réduire au minimum la frustration des participants et de garantir durablement une grande motivation, même en présence d’un
problème.
Un troisième avantage du site web est son effet de surprise : vous ne savez jamais ce qui se cache derrière la prochaine porte du calendrier de
l’Avent. Avec un manuel, vous apercevez déjà la prochaine expérience sur la page suivante et l’effet de surprise est « ruiné ». Sur le site web,
vous pouvez uniquement consulter le chapitre du jour correspondant. Mon conseil : après ce chapitre, mettez le manuel de côté et ne l’ouvrez
plus. Allez plutôt sur le site www.conrad.de/iot-adventskalender et ajoutez cette page à vos favoris sur votre ordinateur, téléphone portable ou
tablette. Vous pourrez ainsi partout lire le chapitre du jour, par ex. dans le train lorsque vous vous rendez au travail, et, de retour à votre
domicile, expérimenter avec la partie pratique du projet du jour.
Mais si vous préférez travailler avec les outils classiques, n’hésitez pas à ouvrir le manuel. Un périphérique numérique n’est pas forcément la
solution la plus confortable pour se faire un aperçu de l’expérience du jour. Mais vous devrez néanmoins aller sur le site web pour télécharger
le programme du jour. Vous le trouverez dans la rubrique « Le programme » sur la page de l’article correspondant.
Quelle que soit la méthode retenue pour étudier le calendrier, je vous souhaite beaucoup de plaisir ainsi qu’un très bon temps de l’Avent.
Fabian Kainka
Jour 1 : les premiers pas
C’est le premier jour du mois de décembre et il est grand temps d’ouvrir la première porte. Le composant le plus important de ce calendrier, la
platine NanoESP compatible Arduino™ avec module Wi-Fi intégré, sur laquelle repose ce calendrier se cache derrière la porte.
On le voit bien sur l’illustration de droite : la platine est divisée en deux parties. La partie gauche est un système de microcontrôleur compatible
Arduino™, comparable à la platine Arduino™ Nano. La partie droite se compose du module Wi-Fi avec la désignation ESP8266. Ces deux
composants communiquent entre eux par le biais d’une interface série générée par un logiciel. La partie Arduino™ fonctionne ici plutôt comme
le chef qui transmet les instructions au module Wi-Fi. Nous testerons aujourd’hui déjà certaines de ces instructions.
Le programme
Vous pouvez télécharger le programme du jour en allant sur le site
www.conrad.de/iot-adventskalender
en choisissant votre langue puis en ouvrant l’article dédié au projet du jour. Le téléchargement est disponible dans la rubrique « Le
programme ». Le logiciel Arduino™ est employé comme plate-forme de développement. La version actuelle est disponible sur le site web :
arduino.cc
J’ai travaillé avec les versions Arduino™ 1.6.4 à 1.6.5. Les versions antérieures peuvent générer des problèmes. À l’heure actuelle, la version
disponible pour certaines distributions Linux est néanmoins déjà très ancienne. Pour savoir comment remédier à ce problème et à d’autres
problèmes, consultez les astuces disponibles sur le site web. Dans le logiciel Arduino™, sélectionnez Arduino™ Nano comme platine et le port
série. Vous pourrez ensuite uploader le programme.
Le téléchargement du jour est un programme très simple, qui se limite à retransmettre toutes les données reçues par l’interface série matérielle
du microcontrôleur au contrôleur ESP par le biais de l’interface logicielle définie par nos soins. Le tout fonctionne également en sens inverse.
Comme on le voit dans le code source, les broches 11 et 12 représentent les deux ports de l’interface logicielle. Pour les projets personnels, il est
déconseillé d’employer ces derniers comme broches GPIO. Vous avez également besoin de la bibliothèque SoftwareSerial. Avec la plupart des
versions Arduino™, cette bibliothèque est déjà préinstallée. Le cas contraire, il est recommandé de la télécharger par le biais du Manager.
Après le téléchargement en amont du programme, vous pouvez démarrer le moniteur série de l’environnement Arduino™. Avant de commencer,
vous devez encore définir deux réglages importants sur le moniteur série : sélectionner « 19200 » en bas à droite pour la vitesse en bauds et
sélectionner « CR et NL » dans la boîte à gauche de la vitesse.
Après le réglage, un message s’affiche immédiatement, à savoir une instruction AT suivi d’un OK quelques lignes plus bas. L’instruction AT a été
envoyée par le microcontrôleur au module ESP et le module a répondu avec OK. Cela vous permet de vous assurer que le module fonctionne et
qu’il est bien opérationnel.
Vous pouvez tester cet état en tapant vous-même l’instruction
AT
dans le moniteur série. Le programme uploadé retransmet encore une fois l’instruction au module ESP, qui répond à nouveau avec OK. La
prochaine instruction que vous pouvez tester est la suivante :
AT+GMR
Cette instruction permet d’afficher le firmware et le numéro de la version actuels. L’instruction
AT+RST
vous permet de réinitialiser le module. Quelques caractères incompréhensibles s’affichent d’abord dans le terminal et sont suivis d’un
« ready », qui signale que le module est maintenant opérationnel. L’instruction
AT+CWMODE
vous permet de définir le mode Wi-Fi. Trois options sont disponibles : Le mode 1 est le mode Station. Cela signifie que vous pouvez vous
connecter à un réseau Wi-Fi existant avec le module. Le mode 2 est le mode Point d’accès. Cela signifie que vous pouvez vous connecter à un
réseau Wi-Fi déployé par le module avec un périphérique compatible Wi-Fi. Le mode 3 est le mode Double accès. Vous pouvez donc, avec le
module, aussi bien vous connecter à un réseau Wi-Fi existant qu’établir une connexion directe avec un autre périphérique. Testez le mode Point
d’accès en activant le mode 2 à l’aide de l’instruction
AT+CWMODE = 2
puis en définissant, avec l’instruction
AT+CWSAP=”MyNanoESP”,”MyPassword”,5,3,
les paramètres spécifiques au point d’accès. À partir d’un ordinateur compatible Wi-Fi, recherchez ensuite le réseau « MyNanoESP » puis
connectez-vous à ce réseau avec le mot de passe « MyPassword ». Si la connexion a été établie avec succès, l’instruction
AT+CWLIF
vous permet d’afficher l’adresse IP et l’adresse MAC du périphérique connecté.
Les instructions AT sur le moniteur série
Vous pouvez maintenant également tester le mode Station en sélectionnant ce mode en saisissant l’instruction
AT+CWMODE=1.
L’instruction
AT+CWLAP
vous permet d’afficher une liste de tous les réseaux Wi-Fi disponibles dans la zone de réception. Établissez finalement, à l’aide de l’instruction
AT+CWJAP=“MySSID“,“MyPassword“,
une connexion avec votre réseau en remplaçant MySSID et MyPassword par le nom de votre réseau et votre mot de passe. L’établissement de la
connexion peut durer un certain temps, le succès de l’opération est néanmoins confirmé par un OK. La première tentative de connexion a donc
été couronnée de succès.
Jour 2 : Google Ping
Le projet du jour va vous permettre de tester si vous réussissez à envoyer une requête aux serveurs Google. Cela permet de tester si une
connexion à internet est théoriquement possible ou si par exemple un pare-feu bloque la platine NanoESP.
Une platine enfichable se cache derrière la porte du jour. La platine enfichable servira par la suite comme plate-forme de test en vue du
raccordement de capteurs et d’autres éléments. Emboîtez de préférence le contrôleur sur la platine enfichable de la manière indiquée sur la
figure. Vous disposez ainsi d’un espace maximal pour les tests tandis que le module Wi-Fi dépasse à l’arrière au-dessus de la platine enfichable.
Le câble micro USB pend alors entre les faces de contact et gêne le moins.
La NanoESP sur la platine enfichable
Le programme
Dans l’exemple de programme disponible sur le site web, la plupart des opérations que vous avez saisies à la main dans le premier exemple
ont été automatisées. Le contrôleur envoie successivement les instructions au module ESP et établit ainsi notamment la connexion au réseau
Wi-Fi. Les Timeout de différentes durées laissent suffisamment de temps au module pour répondre.
Afin que le programme fonctionne néanmoins correctement, vous devez saisir les identifiants de votre réseau Wi-Fi après les deux #defines SSID
et PASSWORD tout au début du code source du programme. Afin qu’il puisse exécuter sa dernière instruction, le module doit impérativement
pouvoir accéder à internet. L’instruction
AT+PING
permet d’envoyer une requête Ping à d’autres périphériques du réseau. L’envoi d’une requête Ping permet de contrôler si une adresse est
théoriquement accessible. Dans le cas présent, une requête Ping est envoyée au serveur Google par le biais de l’instruction
AT+PING=“www.google.de“ et, lorsque le serveur répond à cette requête, un message de réussite s’affiche sur le moniteur série et la DEL, qui
comporte l’inscription D3 et est raccordée à la broche D13 de la platine, s’allume. La première communication avec internet a été couronnée de
succès.
Jour 3 : UDP Send
L’objectif du projet du jour est le premier envoi de données entre la platine et l’ordinateur par le biais du réseau Wi-Fi. Votre ordinateur doit
néanmoins être équipé d’un adaptateur Wi-Fi. À cet effet, on emploie le protocole UDP (User Datagram Protocol). Un autre programme installé
sur l’ordinateur se charge de la bonne réception des messages envoyés.
Derrière la troisième porte du calendrier, vous trouverez un câble isolé qui est absolument indispensable pour le montage des circuits. En guise
de préparatifs pour les expériences ultérieures, vous pouvez installer les câbles d’alimentation Terre et VCC sur les bandes complètement à
l’extérieur.
Le programme
Lorsque vous chargez le programme sur le contrôleur, le contrôleur est configuré comme point d’accès et vous devriez voir un réseau ouvert
avec le nom NanoESP. Avant de connecter au réseau, vous devriez d’abord télécharger un autre programme sur internet. Durant mes expériences, j’ai employé le programme Packet Sender de Dan Nagle, que vous pouvez télécharger en cliquant sur le lien suivant :
https://packetsender.com/
Après le chargement et l’installation du programme, vous pouvez connecter votre ordinateur au réseau ouvert de la platine NanoESP. Assurezvous que le pare-feu reconnaisse le réseau comme réseau domestique afin d’éviter que les données ne soient bloquées. L’adresse IP 192.168.4.2
devrait maintenant avoir été attribuée à votre ordinateur. Vous pouvez la contrôler en envoyant l’instruction AT
AT+CWLIF
au module à partir du moniteur sériel. Cette instruction affiche tous les ordinateurs connectés au point d’accès avec leurs adresses IP et MAC
respectives.
Démarrez le programme Packet Sender, configurez le port du serveur UDP à la valeur 90 sous Settings->Network puis cochez la case « Enable
UDP Server ». En général, UDP:90 s’affiche ensuite en bas à gauche. Le cas contraire, vous devez redémarrer le logiciel.
Le programme sur l’ordinateur fait maintenant office de serveur UDP tandis que le contrôleur est employé comme client UDP. Le protocole UDP
ne fait pas une distinction claire entre le client et le serveur mais, dans le cas présent, cela signifie que vous envoyez des données à votre
ordinateur à l’aide du contrôleur.
Pour envoyer des données, employez l’instruction suivante :
AT+CIPSEND=7
La chiffre 7 correspond au nombre de caractères à envoyer. Le caractère > s’affiche en retour. Cela signifie que vous pouvez maintenant envoyer
votre message. Tapez Hello puis validez à nouveau en appuyant sur Entrée. Bien que vous n’ayez saisi que cinq caractères, le module envoie en
retour le message SEND OK. Cela s’explique par le fait que les commandes « Carriage Return » et « New Line » sont également envoyées avec
vos instructions, c.-à-d. deux caractères supplémentaires. Vous devez tenir compte de ce point lorsque vous définissez la longueur de votre
message.
Si vous retournez au programme Packet Sender et que vous ouvrez la fonction Log Traffic, vous pourrez y contrôler la bonne réception du
message. Dans la vue au format ASCII, vous voyez également les deux caractères envoyés, respectivement représentés par \r et \n. La première
communication entre la platine et l’ordinateur par le biais du réseau Wi-Fi a donc été couronnée de succès.
Jour 4 : UDP bidirectionnel
Notre projet d’hier nous a permis de tester la communication UDP dans un sens, c.-à-d. entre la platine et l’ordinateur. Ce programme permet
de configurer le module de manière à également garantir une communication en sens inverse, presque comme avec une messagerie
instantanée.
Une résistance avec 1 kΩ (brun, noir, rouge) se cache derrière la quatrième porte du calendrier de l’Avent. Ce composant ne sera pas encore
utilisé au cours de l’expérience du jour, il doit cependant être conservé en vue d’une utilisation future.
Le programme
En principe, le programme du jour ne contient qu’une modification mineure, qui a cependant une grande influence sur la communication par le
biais du protocole UDP. Lorsque vous téléchargez le programme en amont, un nouveau point d’accès est créé et vous permet de vous connecter
avec l’ordinateur. Cette fois aussi, vous aurez besoin du programme Packet Sender ou d’un programme comparable. Démarrez le programme et
définissez les mêmes réglages qu’hier (File-> Settings->Network: Enable UDP Server, Port 90). Vous devez ensuite saisir l’adresse du module
(192.168.4.1) dans le champ de l’adresse IP sur la fenêtre principale, définir le port 91 puis sélectionner l’option UDP dans le menu déroulant à
droite. Après avoir défini ces paramètres et ouvert le moniteur série, vous pouvez envoyer le premier message au module en saisissant par ex.
« Hi » dans le champ avec la mention ASCII.
Si vous cliquez maintenant sur « Send », les indications suivantes s’affichent sur le moniteur série :
+IPD,2:Hi
OK
Le message a donc bien été reçu. Vous pouvez maintenant également répondre en employant à nouveau l’instruction CIPSEND, c.-à-d. par ex.
AT+CIPSEND=7
>Hello
Il est donc possible de communiquer entre deux périphériques, même si cela s’avère assez compliqué.
Jour 5 : commuter une DEL
Le programme du jour va enfin nous permettre de piloter le matériel par le biais du protocole UDP. Dans le cas présent, nous allons allumer et
éteindre une DEL au moyen d’instructions basiques.
Une DEL se cache derrière la cinquième porte. La résistance série assortie a déjà été fournie hier. Montez le circuit en procédant de la manière
indiquée sur la figure.
Le programme
Les derniers exemples de programme nécessitaient de nombreuses saisies de l’utilisateur, le programme du jour fonctionne cette fois-ci de
manière autonome. Des informations sont toujours encore affichées sur le moniteur série aux fins de débogage.
Le contrôleur attend maintenant les données reçues par le module annoncées par le message +IPD. Les instructions légitimes que vous pouvez
envoyez par le biais du Packet Sender sont led1 et led0. Le contrôleur les interprète et allume ou éteint la DEL en conséquence. Un message en
retour est également envoyé à l’expéditeur. En cas d’envoi d’une autre instruction, le message « Wrong UDP Command » s’affiche sur le
moniteur série. Le même message est également envoyé à l’expéditeur par le biais du réseau.
Jour 6 : bouton UDP
Le programme d’hier nous a permis d’exploiter les premières instructions du contrôleur. Le programme de jour conserve cette fonction, mais
peut en plus envoyer une instruction au réseau de manière autonome.
Un bouton-poussoir se cache derrière la porte du jour. Il est ici employé comme simple capteur. Raccordez-le au contrôleur de la manière
indiquée sur le schéma de montage.
Le programme
Le programme évalue également les signaux entrants. L’état du bouton est également interrogé en permanence. En cas d’actionnement par
l’utilisateur, le contrôleur envoie le texte
Button=1
au réseau. Tous les périphériques connectés au module avec un serveur UDP sur le port 90 peuvent recevoir l’instruction. Dans le cas d’un
projet de domotique, un serveur recevrait par exemple le message d’état d’un détecteur de mouvements puis enverrait l’instruction led=1 en
retour pour activer le voyant.
Jour 7 : capteur analogique
Au cours du dernier projet avec le bouton-poussoir, nous avons étudié la forme la plus simple d’un capteur. Nous allons aujourd’hui employé
un potentiomètre en tant que capteur analogique pour envoyer en permanence les valeurs mesurées au réseau.
Une résistance avec 10 kΩ se cache derrière la septième porte du calendrier de l’Avent. Le montage est représenté sur la figure du bas.
Le programme
Exception faite du capteur analogique, le programme comporte une modification additionnelle. Nous n’allons, aujourd’hui, pas exploiter le
contrôleur en mode Point d’accès, mais le connecter à votre réseau domestique. Cette fois aussi, vous pouvez tout simplement saisir les
données de votre station tout en haut du programme.
Après le téléchargement en amont, l’établissement de la connexion au réseau peut durer un certain temps. Dès que la connexion est établie, la
DEL D3, montée à demeure sur la platine, s’allume. Cela signifie que le contrôleur est maintenant opérationnel. Tant que le moniteur série est
activé, vous verrez certes un message correspondant mais, dans le cadre des expériences ultérieures, vous souhaiterez peut-être employer la
platine de manière autonome et ce retour d’information sera alors très utile. Le moniteur série vous indique également l’adresse IP attribuée par
le routeur à la platine. Cette adresse IP est importante si vous souhaitez par la suite vous connecter à la platine.
La connexion à la platine fonctionne de la manière préalablement indiquée. Seules les adresses IP du module et de votre ordinateur auront été
modifiées. Le programme ne reçoit, dans un premier temps, pas encore de résultats de mesure. Vous devez d’abord envoyer un message, par
l’instruction led=1, avant que les nouvelles valeurs mesurées ne soient reçues env. une fois par seconde.
ex.
Loading...
+ 10 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.