Conrad 10180 Operation Manual [fr]

Page 1
Avant de commencer...
… 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é.
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.
Page 2
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.
Page 3
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 :
Page 4
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. Assurez­vous 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é.
Page 5
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.
Page 6
Jour 8 : un navigateur
Au cours des derniers jours, nous avons principalement examiné le protocole UDP qui permet d’envoyer directement des données en toute simplicité. Au cours des jours à venir, nous nous intéresserons au protocole TCP (Transmission Control Protocol). Le protocole TCP n’autorise toujours qu’une seule connexion entre exactement deux ordinateurs. Il est principalement employé sur internet pour la navigation sur les sites web.
Une résistance avec 1 k (brun, noir, rouge) se cache derrière la porte d’aujourd’hui. Comme pour tous les autres composants : bien le conserver, même si vous n’en n’aurez pas encore besoin aujourd’hui.
Le programme
Du point de vue de son fonctionnement, le programme ressemble au programme SoftwareSerial du premier jour, il établit néanmoins entre autre la connexion Wi-Fi de manière autonome. Cela vous économise pas mal de saisies et vous pouvez démarrer plus rapidement. N’oubliez pas de compléter les informations de votre réseau domestique dans le programme. Saisissez ensuite la ligne d’instructions suivante dans le moniteur sériel :
AT+CIPSTART=“TCP“,“www.example.com“,80
Cette instruction vous permet d’établir une connexion TCP au site web www.example.com. Le port 80 est le port par défaut pour les requêtes HTTP. Après la validation de la connexion avec OK, vous pouvez saisir la prochaine instruction que vous connaissez déjà :
AT+CIPSEND=40
Vous souhaitez maintenant en effet envoyer un message par le biais de la connexion établie à l’instant. Dès vous que êtes invité à saisir un texte par le caractère >, saisissez d’abord GET / HTTP/1.1 puis appuyez sur la touche Entrée. L’instruction Entrée n’apparaît pas sur le moniteur sériel, mais le module l’a bien reçue. Saisissez la suite du message Host:www.example.com et appuyez deux fois sur Entrée. Un long texte est envoyé en retour. La première partie est la réponse du serveur qui contient quelques informations pour le navigateur. Le texte après <!document html> correspond au site web que vous voyez également lorsque vous ouvrez directement le site www.example.com, ici néanmoins sous forme de simple texte. Un navigateur convertirait maintenant ce texte dans un format qui nous est plus familier.
Extrait de la réponse du serveur web
Jour 9 : heure TCP
Le projet du jour utilise les fonctions du test précédent pour obtenir les informations d’un site web de manière autonome. Concrètement, le programme charge l’heure actuelle à partir d’un site spécialement prévu à cet effet et représente ainsi l’horloge interne du contrôleur qui repose sur la bibliothèque.
Une résistance avec 1 kΩ se cache derrière la porte d’aujourd’hui. L’expérience de demain nécessitera l’utilisation de toutes les trois résistances.
Le programme
Tandis que le programme d’hier nécessitait de nombreuses saisies manuelles, le programme d’aujourd’hui fonctionne de manière
Page 7
principalement autonome. Le contrôleur se connecte de manière entièrement automatiquement au site web :
http://chronic.herokuapp.com/
L’URL permet d’obtenir différents systèmes horaires et changements d’heure. L’heure d’hiver actuelle en Allemagne peut être interrogée par le biais de l’URL
http://chronic.herokuapp.com/utc/in-one-hour.
C’est la raison pour laquelle getTime est le second paramètre « utc/in-one-hour » dans l’intitulé de la fonction. Sur la base de l’UTC (temps universel coordonné), vous devriez modifier l’intitulé en « utc/in-two-hours » en été. Vous pouvez également choisir tous les autres fuseaux horaires en appliquant le même principe.
L’heure déterminée est maintenant transmise à la bibliothèque Time de Michael Margolis (source : http://www.pjrc.com/teensy/td_libs_Time.html). Pour des raisons d’ordre pratique, le dossier Sketch contient une copie de la version de la bibliothèque Time que j’utilise. Ce fichier doit être copié dans les dossiers de la bibliothèque de votre dossier Sketchbook. L’heure actuelle est constamment calculée en arrière-plan et chaque seconde affichée sur le terminal. Vous pourriez maintenant facilement programmer un réveil ou une autre application à minuterie.
Jour 10 : affichage de la température
Notre projet du jour vous propose un affichage intuitif de la température actuelle. Un coup d’œil suffit pour savoir si vous feriez mieux d’enfiler une veste chaude.
Une autre DEL, quelque peu insolite, se cache derrière la porte du jour. Il s’agit d’une DEL RVB. RVB signifie Red, Green, Blue ou Rouge, Vert, Bleu car la DEL se compose en réalité de plusieurs DEL qui se partagent une borne de cathode commune. La combinaison des différentes couleurs avec différentes luminosités permet de représenter la quasi-totalité des couleurs. Comme représenté sur la figure, la DEL peut être raccordée avec des résistances série aux sorties PWM D3, D5 et D6 du contrôleur.
Le programme
Notre scénario du jour s’intéresse encore une fois à l’interrogation d’un site web, mais cette fois-ci, d’un site dédié à la météo, à savoir :
www.openweathermap.org
Ce site permet, en modifiant l’URL, de recevoir des informations à propos de la météo dans votre ville. L’exemple se limite aux informations disponibles en direct au format XML avec le système métrique. Il vous suffit d’ajouter le nom de la ville que vous souhaitez consulter dans le code source, après l’instruction CITY. Comme exemple, j’utilise le nom de ma ville natale, Essen :
http://api.openweathermap.org/data/2.5/weather?q=Essen&units=metric&mode=xml
Le programme interroge maintenant la température à partir du site et représente le résultat en couleur à l’aide de la DEL RVB. La valeur est simultanément affichée sur le moniteur série. La plage de température employée dans l’exemple de programme pour la représentation par la DEL est comprise entre -20 et +40 °C.
Jour 11 : serveur web TCP
Au cours des expériences précédentes, nous avons étudié de plus près le protocole TCP et l’accès aux serveurs web. Aujourd’hui, nous allons, pour la première fois, utiliser le module comme serveur web.
Un câble spécial se cache derrière la onzième porte. Il nous sera encore très utile dans les jours à venir. Un montage spécial n’est aujourd’hui pas requis, le programme fonctionne de manière similaire au programme du moniteur sériel du premier jour.
Le programme
Modifiez les informations du Wi-Fi comme vous l’avez déjà fait à plusieurs reprises puis chargez le programme sur votre platine. Démarrez ensuite le moniteur. Quelques secondes peuvent à nouveau s’écouler jusqu’à ce que le message de confirmation de la connexion de la platine s’affiche. Dès que le message de connexion et l’adresse IP du module sont affichés, vous pouvez saisir la première instruction sur le moniteur série :
AT+CIPMUX=1
Cette instruction autorise plusieurs connexions au module. Plusieurs ordinateurs peuvent ainsi se connecter au serveur web. La prochaine instruction vous permet de démarrer le serveur web :
Page 8
AT+CIPSERVER=1,80
Le paramètre 1 démarre le serveur. La valeur 0 désactive à nouveau le serveur. La valeur 80 correspond au port par le biais duquel vous pouvez accéder au serveur. Les requêtes HTTP envoyées par le navigateur sont généralement envoyées par le biais du port 80.
Vous pouvez maintenant ouvrir un navigateur de votre choix puis saisir et ouvrir l’adresse IP du module dans la barre d’adresse. Un message de chargement s’affiche d’abord dans le navigateur, mais vous pouvez observer un changement sur le moniteur série. Vous voyez une demande Request similaire à celle que vous avez déjà envoyée manuellement.
La requête du navigateur
Le navigateur attend maintenant une réponse et affiche un symbole de chargement jusqu’à ce que la connexion soit désactivée en raison d’un timeout. Vous pouvez envoyer un message au navigateur avec une variante d’une instruction connue :
AT+CIPSEND=0,7
Le paramètre 0 correspond ici au client auquel le message doit être envoyé. Cette information est indispensable car plusieurs connexions sont autorisées et que plusieurs clients peuvent donc être connectés. Le deuxième paramètre, ici 7, indique à nouveau le nombre de caractères à envoyer. Le caractère > s’affiche et vous pouvez saisir un simple Hello puis l’envoyer en appuyant sur Entrée. Dans un premier temps, rien ne changera dans votre navigateur car vous devez d’abord désactiver la connexion. À cet effet, employez l’instruction :
AT+CIPCLOSE=0
Vous voyez maintenant un Hello dans le navigateur et vous venez de réaliser votre première application de serveur web.
Jour 12 : serveur web autonome
Les résultats de l’expérience d’hier doivent maintenant de nouveau être employés dans un programme autonome. Le programme du jour n’envoie cependant pas seulement un simple site web au navigateur, il permet également de piloter une DEL.
Un clip pour pile 9 V se cache derrière la porte d’aujourd’hui. Il permet une utilisation mobile de la platine. En alternative, vous pouvez également employer une batterie externe (un bloc-batterie, habituellement pour téléphones portables). Si vous souhaitez utiliser la pile 9 V, veillez à ce que le fil rouge soit relié à la borne Vin et le fil noir à la borne GND. La figure vous montre le montage de l’expérience du jour avec une alimentation électrique externe.
Le programme
Le programme du jour envoie une page un peu plus complexe qu’au cours de l’expérience précédente. De plus, vous pouvez coupler la DEL sur la broche D9 en saisissant l’instruction /LED après l’adresse IP du module. L’état actuel de la DEL est alors inversé, cela signifie qu’il est à chaque fois commuté (basculé).
Saisissez les informations de votre réseau Wi-Fi puis uploadez le programme. L’adresse IP de la platine est affichée sur le moniteur série. Vous pouvez ensuite ouvrir le navigateur puis contacter l’adresse IP de la platine. Le site a maintenant un titre et contient un peu plus de texte. Le texte vous indique également de quelle manière vous pouvez piloter la DEL. Il s’agit donc d’un premier serveur web entièrement autonome.
Jour 13 : site web avec boutons
Avec notre expérience du jour, l’affichage du site web est encore plus détaillé. De plus, nous disposons maintenant également d’éléments de commande qui permettent de piloter une DEL encore plus confortablement.
Page 9
Le montage de l’expérience du jour est identique au montage de celle d’hier : Une DEL qui peut être pilotée par le biais du module sur la broche D9. Comme composant additionnel, une autre résistance avec 1 k se cache derrière la porte du calendrier. Le cas échéant, vous pouvez maintenant réduire la luminosité d’une DEL en montant deux résistances en série.
Le programme
Le programme du jour enregistre le site web d’une manière légèrement différente que le programme précédent. Tandis que le site web plutôt simple d’hier était enregistré dans le code source, la page est aujourd’hui enregistrée dans des variables PROGMEM. Cela soulage la mémoire SRAM de la platine et permet une représentation plus complexe d’un site web. Vous ne disposez cependant plus d’une aussi bonne vue d’ensemble de la page.
Vous pouvez néanmoins afficher le fichier HTML dans le dossier Sketch et le modifier le cas échéant. Lorsque vous convertissez le site web sur le site web tools.thebuzzmedia.com/bytechar en octets et que vous l’enregistrez dans la variable du programme, vous avez généré un nouveau site web pour votre site web.
Jour 14 : serveur web pour la DEL RVB
Le projet du jour s’intéresse à la commande de la DEL RVB par le biais du serveur web. La couleur de la DEL peut être modifiée à partir d’une interface plus claire. Le site web a également été adapté et devrait également bien s’afficher sur les smartphones.
Une autre résistance, cette fois-ci avec 10 k (brun, noir, orange), se cache derrière la porte d’aujourd’hui du calendrier de l’Avent. Nous en aurons besoin pour l’expérience de demain.
Le montage de l’expérience du jour est identique à celui du montage du dixième jour. La DEL RVB se raccorde par le biais des résistances série aux broches D3, D5 et D6 compatibles PWM.
Le programme
Le site web transféré est à nouveau caché au format binaire dans les variables PROGMEM. Ici aussi, vous pouvez consulter la page HTML dans le dossier Sketch. Après la configuration des informations du réseau Wi-Fi et le téléchargement en amont du programme, le site web du serveur web est accessible par le biais de l’adresse IP du module. La couleur de fond et le titre de la page sont similaires à ceux de la page précédente. La page contient néanmoins un nouvel élément : l’élément HTML5 Color Picker. Cet élément permet de choisir la couleur pour la DEL. Dès que vous avez validé la couleur, elle est affichée par la DEL. La représentation de l’élément Color Picker peut fortement varier en fonction du navigateur employé.
Jour 15 : capteur de lumière
Le projet du jour n’utilise pas le site web du serveur web pas comme interface de commande, mais comme élément de sortie. La luminosité mesurée par un capteur de luminosité est représentée de manière claire sous forme de valeur relative.
Un phototransistor employé comme capteur de lumière se cache derrière la porte du jour. Bien qu’il ressemble à une DEL, le phototransistor ne devrait pas être confondu avec une DEL. Le montage de l’expérience du jour est représenté sur la figure. Le collecteur du phototransistor est le raccord de plus courte longueur et est raccordé à la tension +5 V.
Le programme
Jusqu’à maintenant, les sites web du serveur web se composaient toujours d’une page qui ne pouvait pas être modifiée et qui envoyait les données au contrôleur. Le site web d’aujourd’hui devra être modifié avant la transmission au navigateur afin d’afficher la luminosité mesurée du phototransistor. Cela fonctionne car une espèce de caractère de remplacement est cachée dans le code source du site web. Pendant le chargement des données à partir des variables PROGMEM, le programme remplace maintenant le caractère de remplacement *bright* par la valeur actuelle de la luminosité. Le texte affiché et la déviation du curseur de réglage s’en trouvent modifiés. Toutes les quelques secondes, une autre ligne du fichier HTML garantit un rafraîchissement automatique de la page. La luminosité actuelle s’affiche maintenant de manière claire dans le navigateur.
Page 10
Le site web du capteur de luminosité
Jour 16 : GPIO Control
Le projet du jour permet une commande simple des broches numériques D2 à D7 à partir du site web. Le statut de la broche correspondante est également affiché sur le site web de manière à ne jamais perdre la vue d’ensemble.
Afin de pouvoir facilement contrôler l’état des broches, un montage similaire à celui sur la figure ci-contre est recommandé. La DEL RVB et la DEL normale sont employées. Les cathodes des LED ne sont aujourd’hui pas raccordées au long câble de terre sur la face extérieure de la platine, elles sont également raccordées à une sortie numérique. Les DEL peuvent donc uniquement s’allumer à condition que ces broches soient commutées sur « low ».
Le composant du jour dans le calendrier est un nouveau câble. Cela permet d’installer la DEL à l’écart de la platine. Vous pouvez maintenant par exemple monter la platine dans un boîtier et installer la DEL à l’extérieur.
Attention ! Sans résistances série, il est interdit de raccorder les DEL. Qu’un tel raccordement soit autorisé dans le cas présent est lié aux résistances On d’env. 30 Ω des transistors FET internes du port. Comme les DEL sont installées entre deux ports, elles fonctionnent réellement avec une résistance série de 60 Ω. En fonction du type et de la couleur des DEL, un courant de DEL compris entre les limites admissibles de 15 et maximum 30 mA est disponible.
Le programme
Le site web du programme du jour emploie des cases à cocher comme élément HTML. Lorsque vous uploadez le programme et que vous ouvrez la page de la platine, toute une série de cases à cocher s’affiche. Lorsqu’une case est cochée, cela signifie que l’état de la broche est « high ». Une case décochée correspond à l’état « low ». Vous pouvez maintenant tester quelles broches doivent être « high » et quelles broches doivent être « low » afin que toutes les DEL s’allument.
Jour 17 : module infrarouge
Le projet du jour permet la commande du contrôleur à l’aide d’une télécommande. Les touches librement programmables d’une télécommande à infrarouge de votre choix vous permettent de modifier simultanément la couleur de la DEL RVB ainsi que la couleur de fond du site web.
Le composant essentiel pour le projet du jour, le mode de réception infrarouge, se trouve derrière la porte d’aujourd’hui. Vous pouvez entièrement raccorder le module sans câbles en procédant de la manière indiquée sur la figure du bas. Le programme définit les broches correspondantes de manière à garantir l’alimentation en courant du module.
Le programme
Le programme d’aujourd’hui utilise à nouveau une bibliothèque externe, la bibliothèque IRremote de Ken Shiriff. Une copie de la version que j’ai employée se trouve à nouveau dans le dossier Sketch et il suffit de la copier dans le dossier de la bibliothèque de votre Sketchbook.
Après le téléchargement en amont du programme, il est recommandé de démarrer le moniteur série. Cherchez une télécommande et orientez-la vers le module. Lorsque vous appuyez sur une touche, la valeur du signal devrait s’afficher sur le moniteur sous forme de code HEX et le type de protocole sous forme d’un nombre. Lorsque la valeur -1 s’affiche comme type, le protocole n’a pas été reconnu. Il est également possible que plusieurs tentatives échouent avant qu’une commande ne soit correctement décodée. Faites donc plusieurs tentatives ou essayez une autre télécommande. Après avoir trouvé une télécommande compatible, choisissez six touches (utilisez, de préférence, les touches Power, Volume +, Volume -, Canal +, Canal - et Mute). Vous devez maintenant copier les codes des six commandes derrière les #define irComX (sans oublier 0x avant le code HEX). Les commandes d’une télécommande LG y sont prédéfinies. Après avoir correctement saisi les codes, vous pouvez à nouveau uploader le programme. Les touches que vous avez configurées vous permettent maintenant de modifier la couleur de la DEL RVB. Si vous actualisez la page de la platine, vous constaterez que sa couleur a également été modifiée.
Page 11
Jour 18 : télécommande universelle
Hier, vous avez assemblé un récepteur pour télécommandes infrarouges. Aujourd’hui, vous allez assembler la télécommande en soi. Pour être plus précis, vous allez bricoler une télécommande universelle à commande par ordinateur ou smartphone qui vous permettra de contrôler votre téléviseur ou d’autres appareils, même si la télécommande originale est, une fois de plus, introuvable.
Afin de pouvoir démarrer le projet, vous avez encore besoin du composant qui se cache derrière la porte du jour, la diode infrarouge. Elle ressemble à une simple DEL, elle émet cependant de la lumière dans la plage infrarouge invisible à l’œil nu. Les signaux infrarouges sont néanmoins visibles pour une caméra numérique. Le montage du jour est indiqué sur la figure. Ne soyez donc pas étonné que la DEL infrarouge ne nécessite pas de résistance série. La seule résistance série efficace est la résistance On d’env. 30 Ω du port. Le courant qui traverse la diode est ainsi relativement élevé, les impulsions envoyées sont néanmoins si courtes que le courant n’endommage pas la diode.
Le programme
Avant que le projet puisse fonctionner, vous devez encore une fois modifier quelques réglages. Si vous avez hier lu et employé les codes Power, Volume +, Volume -, Canal +, Canal - et Mute, il vous suffit de saisir les codes dans l’ordre dans la gamme irCommand. Le cas contraire, nous vous recommandons de charger encore une fois le programme et de lire les codes assortis. Vous pouvez bien sûr également employer d’autres codes, les désignations sur le site web ne sont alors plus assorties. En plus des codes, vous devez également configurer le protocole employé dans la variable irProtocol à condition que votre télécommande la prenne en charge. Pour finir, vous devez encore configurer la longueur du signal à envoyer. Vous pouvez la définir en multipliant par quatre le nombre de caractères du code HEX. À titre d’exemple : Mon code pour Power était 0x20DF10EF. 0x est tout simplement la séquence de caractères pour un code HEX, seuls les caractères 20DF10EF doivent être pris en compte et équivalent ainsi à un code HEX à huit caractères. 8•4 = 32, vous devez donc ajouter la valeur 32 après la variable irLen dans l’exemple de programme. Vous devez effectuer un calcul similaire pour un code avec une autre longueur.
Après avoir configuré tous les codes et paramètres et bien sûr aussi les informations de votre réseau Wi-Fi, vous pouvez uploader le programme. Le site web de la platine comporte maintenant six boutons avec les inscriptions correspondantes. Si vous appuyez sur l’un des boutons, un message devrait s’afficher sur le moniteur série et votre téléviseur ou un autre appareil devraient réagir de manière adéquate. Le cas contraire, vous devrez éventuellement vous rapprocher ou vous assurer que la diode infrarouge envoie bien des signaux. Il est par ex. possible que la polarité de la DEL soit inversée. Cela expliquerait pourquoi le projet ne fonctionne pas comme prévu.
Jour 19 : ThingSpeak
Au cours des derniers jours de l’Avent, nous allons nous intéresser à un tout nouveau thème : le site web ThingSpeak. Ce site a spécialement été développé pour le thème de l’Internet des objets et vous propose différentes fonctions pratiques.
Avant de nous lancer dans la procédure habituelle, à savoir le montage et le téléchargement du programme, vous devez d’abord créer un compte sur le site www.ThingSpeak.com. Connectez-vous ensuite avec vos identifiants sous la rubrique Sign In. Une page avec vos « Channels » s’affiche sur l’écran. Comme vous n’avez pas encore de propres chaînes, cette page devrait plutôt être vide. Cliquez sur « New Channel » et attribuez un nom, par l’objectif de ce projet est la mesure de la luminosité. Sous le point « field1 », vous pouvez maintenant définir un nom pour le champ, par ex. « Brightness » (luminosité). Tous les autres champs peuvent ici rester libres.
Cliquez sur « Save Channel » pour enregistrer les réglages. Vous êtes redirigé vers la page de vos « Channel » qui ne contient cependant qu’un diagramme vide. Dans l’onglet situé au-dessus, cliquez sur « API Keys ». La séquence de chiffres et lettres dont vous aurez besoin tout à l’heure se trouve sous le point « Write API Key ».
ex. « Light », car
Un câble se cache à nouveau derrière la porte du jour. Vous pouvez maintenant également installer des composants à trois pattes, comme le module de réception infrarouge, à l’écart de la platine enfichable. Le montage de l’expérience du jour est identique à celui du montage du quinzième jour. Un diviseur de tension avec une résistance de 10 k et un phototransistor permet de mesurer la luminosité actuelle.
Page 12
Le montage avec phototransistor sur A0
Le programme
Comme le programme du quinzième jour, le programme du jour mesure la luminosité. Mais contrairement à la dernière expérience, les données sont directement envoyées au site ThingSpeak. Ce site n’enregistre pas seulement les données, il les affiche également de manière claire dans un diagramme. Une fonction très pratique pour une station de mesure avec une surveillance longue durée.
Afin que le programme puisse envoyer des données au site web, vous devez d’abord saisir la clé « API Key » susmentionnée sous le point ThingSpeakKEY du programme en plus des informations de votre réseau Wi-Fi. Après le téléchargement en amont, il est recommandé d’ouvrir le moniteur série. En général, le succès de la transmission est confirmé par un message Update Send. Sur le site ThingSpeak, vous pouvez maintenant encore une fois cliquer sur l’onglet « Private View » de votre chaîne. Cette rubrique contient le diagramme de votre « Channel », qui est actualisé toutes les 15 secondes avec les nouvelles données.
Jour 20 : Twitch
Le site web ThingSpeak propose bien plus que la simple surveillance longue durée de capteurs. L’idée de base du projet du jour est similaire à celle des projets des neuvième et dizième jours : des informations sont interrogées à partir d’un site web. Dans le cas présent, il s’agit de déterminer si un flux précis est actuellement disponible en ligne ou non.
En comparaison aux premières expériences, la variante ThingSpeak offre ici deux avantages majeurs. Le site ThingSpeak permet, d’une part, également de communiquer avec les sites web via HTTPS (HyperText Transfer Protocol Secure) tandis que le module prend uniquement en charge le protocole HTTP non sécurisé. Et le site web permet, d’autre part, déjà d’effectuer un filtrage préalable des informations et ainsi de considérablement réduire le volume de données à traiter par le contrôleur.
Au cours du projet du jour, vous réaliserez un affichage Twitch Streaming en guise d’exemple pour de nombreuses possibilités. Twitch est un site web qui permet le streaming de jeux en ligne ou d’informations dédiées aux jeux vidéo. L’une des plus célèbres chaînes de streaming s’appelle RocketBeansTV, de l’ancien créateur de GameOne, qui retransmet des émissions 24h/24 et se prête donc bien à un premier test. Par la suite, vous pourrez naturellement utiliser une chaîne de votre choix.
Le programme
En plus du montage du matériel, plusieurs manipulations sont également nécessaires sur le site ThingSpeak. Si vous cliquez sur « Apps » dans le menu du haut sur le site web, toute une série d’applications s’affichent sur l’écran. Nous nous intéresserons aujourd’hui à l’application ThingHTTP. Si vous cliquez sur le bouton correspondant, une interface plutôt vide s’affiche sur l’écran. Cliquez sur « New ThingHTTP ». Un formulaire s’affiche, saisissez-y les informations suivantes :
Name: Twitch
URL: https://api.twitch.tv/kraken/streams?channel=rocketbeanstv
Method: GET
HTTP Version: 1.1
Parse String: _total
Si vous préférez un autre flux, vous pouvez saisir une autre chaîne dans l’URL après « channel ». Cliquez sur « Save ThingHTTP » et copiez ensuite la clé « API Key » qui s’affiche dans la vue d’ensemble dans le presse-papier. Vous devez maintenant copier la clé dans le programme,
Page 13
après #define ThingHTTP. N’oubliez pas les informations du réseau Wi-Fi et vous pouvez uploader le programme. La disponibilité d’un flux est désormais contrôlée une fois par minute. Le cas échéant, la DEL s’allume.
Jour 21 : système d’alarme
Le projet du jour est un système d’alarme qui vous permet par exemple de contrôler si quelqu’un ouvre un tiroir sans autorisation. Le système contrôle en permanence la lumière qui tombe sur le capteur de lumière. Dès que la luminosité augmente, un signal d’alarme retentit et un message est envoyé via Twitter.
Un haut-parleur piézoélectrique se cache aujourd’hui derrière la porte et sera employé comme générateur de signal d’alarme. Le montage du jour est indiqué sur la figure.
Le programme
Le thème du jour est notamment l’application Twitter disponible sur le site ThingSpeak. Cliquez donc sur « Apps » puis sur « ThingTweet ». Un clic sur le lien « TwitterAccount » et la saisie de vos identifiants vous permettent d’établir une connexion entre les deux services. Si vous n’avez pas encore de compte Twitter, nous vous recommandons, à des fins de test, de créer un compte et de pouvoir réaliser cette expérience du calendrier de l’Avent. Après avoir correctement associé Twitter et ThingSpeak, vous pouvez saisir la clé « API Key » dans le programme du jour après la chaîne #define TwitterKEY. Le programme contrôle maintenant en permanence si la luminosité mesurée est supérieure à 500. Le cas échéant, un message est envoyé via Twitter et l’alarme retentit jusqu’à ce que la luminosité soit de nouveau inférieure à 500. Vous pouvez suivre les valeurs de luminosité actuellement mesurées sur le moniteur série. Pour les premières expériences, je vous recommande de recouvrir le capteur de lumière afin d’éviter un déclenchement prématuré de l’alarme.
Jour 22 : TalkBack
Notre projet du jour s’intéresse à une autre application disponible sur le site ThingSpeak, l’application TalkBack. Cette fonction permet de créer une commande qui est lue et exécutée par le contrôleur. Ce qui peut paraître absolument superflu avec un seul contrôleur s’avère utile lorsque l’on emploie deux contrôleurs, voire même tout un réseau de contrôleurs. Certaines platines peuvent alors fonctionner comme capteurs, par exemple en liaison avec des détecteurs de mouvements, et, en cas de détection d’un mouvement, envoyer une commande TalkBack. Un autre module lit la commande du site ThingSpeak et ouvre alors la porte ou déclenche une alarme.
Un autre bouton-poussoir se trouve derrière la porte du jour. Comme représenté sur la figure, le montage de l’expérience d’aujourd’hui se compose d’une DEL avec une résistance série et de deux boutons-poussoirs.
Le programme
Vous devez d’abord créer une nouvelle chaîne TalkBack sous « Apps », « TalkBack ». Si vous le souhaitez, vous pouvez également ajouter les commandes dans une chaîne. Il peut s’agir de la chaîne Light que vous avez déjà créée le dix-neuvième jour ou d’une chaîne spécialement créée à cet effet. Toutes les commandes sont alors consignées. Il est cependant absolument indispensable de copier la clé « API Key » après la chaîne #define TalkBackKEY. En plus de la clé « API Key », vous devez également ajouter un ID qui s’affiche dans la rubrique TalkBackID de la vue d’ensemble après avoir cliqué sur « Save TalkBack ». Saisissez ici #define TalkBackID dans le programme.
Si vous uploadez maintenant le programme et que vous ouvrez le moniteur série, vous verrez d’abord le message « No Command ». Appuyez maintenant sur l’un des deux boutons-poussoirs. Après un court instant, le message « OpenDoor » ou « CloseDoor » s’affiche en fonction du bouton sur lequel vous avez appuyé. Avec la commande « OpenDoor », la DEL s’allume également.
Jour 23 : Cheerlights
L’expérience du jour repose sur un projet de Hans Scharler, qui s’appelle Cheerlights. L’idée : des éclairages en réseau dans le monde entier qui peuvent simultanément être commutés par le biais de commandes Twitter. Un bon exemple de la manière dont l’internet solidarise toujours davantage le monde entier.
Une quatrième rallonge se trouve derrière la porte du jour en vue de l’installation de la DEL RVB à l’écart de la platine. Cela peut notamment s’avérer pratique si vous souhaitez cacher la platine dans le sapin de Noël et utiliser la DEL RVB comme étoile.
Le programme
Pour le programme du jour, vous ne devez exceptionnellement effectuer aucune modification sur ThingSpeak, une chaîne publique existe déjà
Page 14
pour ce projet à l’adresse
https://thingspeak.com/channels/1417.
La couleur actuelle ainsi que d’autres informations à propos du projet sont toujours également affichées sur cette page.
Pour le programme, vous devez télécharger la bibliothèque Crossfade de Radek Wierzbicki (source : https://github.com/radekw/Arduino/tree/5f24ce7c8db9dfbb5252b59824c3217d851b3a3c). Pour des raisons d’ordre pratique, le dossier Sketch contient une copie de la version de la bibliothèque employée. Ce fichier doit être copié dans les dossiers de la bibliothèque de votre dossier Sketchbook. La bibliothèque permet de rapidement définir des couleurs en toute simplicité et se charge également du fondu lent de la nouvelle couleur des DEL (appelé « fade »).
Si vous uploadez maintenant le programme, la couleur actuelle des DEL s’affiche au bout de quelques secondes. Vous pouvez maintenant rédiger un message Twitter et ainsi modifier votre couleur ainsi que celle de tous les autres utilisateurs de Cheerlights. Le message doit contenir, d’une part, #Cheerlights, @Cheerlights ou tout simplement le mot-clé Cheerlights et l’une des couleurs prédéfinies après le mot-clé. Parmi les couleurs prédéfinies, on recense :
red, green, blue, cyan, white, warmwhite, purple, magenta, yellow, orange, pink
Un Tweet possible serait donc :
Testing my #cheerlights project on my #NanoESP with the color blue #ThingSpeak #IoT
ou un message similaire. C’est tout, vous venez d’envoyer une nouvelle couleur dans le monde entier.
Jour 24 : détecteur d’incendie pour le sapin de Noël
Le projet final se compose de plusieurs éléments avec lesquels vous avez l’occasion de vous familiariser pendant le temps de l’Avent. L’une des fonctions est la fonction Cheerlights que je vous ai présentée hier. Vous pouvez toujours encore recevoir la couleur actuelle du projet Cheerlights et la représenter à l’aide de la DEL RVB. De plus, la platine est employée en vue de la surveillance longue durée de la température. La platine peut simultanément émettre une tonalité d’alarme lorsque la température dépasse une valeur définie, par ex. en cas de déclenchement d’un incendie. Et, pour finir, la platine peut être employée comme cloche de Noël au moyen d’une commande TalkBack associée à une minuterie qui lance la lecture de la mélodie « Jingle Bells ». En somme, le projet du jour est entièrement dédié au sapin de Noël.
Un capteur particulier se cache derrière la porte du jour, il s’agit d’une thermistance CTN (Coefficient de Température Négatif). La résistance de cette dernière varie en fonction de la température. Cela vaut donc la peine de réaliser à nouveau quelques-unes des anciennes expériences et d’employer, cette fois-ci, le capteur de température. Le montage du jour se compose d’un nombre relativement élevé d’éléments. Le potentiomètre est également à nouveau employé afin de pouvoir réaliser un ajustage précis de la thermistance CTN. En alternative, vous pouvez également employer la résistance 10 k, un ajustage précis n’est alors toutefois pas possible.
Le programme
Le programme final doit combiner tous les différents éléments. Le site ThingSpeak joue ici encore une fois un rôle central. Ici aussi, la surveillance de la valeur seuil de la thermistance CTN est notamment prise en charge par une application ThingSpeak. Les actions d’alarme seront également déclenchées à partir du site : un message Twitter sera envoyé et une commande TalkBack sera insérée en vue du déclenchement de l’alarme sur le contrôleur. L’application « Time Control » sur le site ThingSpeak vous permet également de définir l’heure à laquelle la mélodie « Jingle Bells » invitera votre famille sous le sapin ou à laquelle la musique vous réveillera le lendemain.
Au cours de la première étape, vous devez créer une nouvelle chaîne sur le site ThingSpeak. Vous pouvez par exemple l’appeler « FireAlarm » (alarme incendie). Le « field1 » devra alors être nommé « Temp ». La première clé à saisir pour sous « ThingSpeakKEY » est indiquée sous « API Keys ». La transmission de la température actuelle serait donc assurée.
La deuxième étape est la création d’un nouvel élément TalkBack. Vous pouvez par exemple l’appeler « Alarms ». Vous pouvez également consigner les commandes dans la chaîne « Channel FireAlarm ». La clé « API Key » doit être ajoutée après TalkBackKEY et l’ID après TalkBackID. Vous pouvez maintenant déjà envoyer des commandes à la platine. Vous pouvez également ajouter des commandes à la main en cliquant sur « Add a new Command » dans la vue d’ensemble TalkBack de la chaîne Alarm puis en saisissant « Alarm » ou « Jingle » sous « Command String ». Une indication de la position n’est pas requise car l’instruction est automatiquement enregistrée au premier emplacement. Vous pouvez maintenant déjà uploader et tester le programme afin de vous assurer que la transmission de la température actuelle fonctionne correctement et que la platine exécute les commandes. Vous pouvez ici également calibrer la thermistance CTN par le biais du potentiomètre à l’aide d’un thermomètre d’intérieur.
Page 15
En principe, il s’agirait ici déjà d’un projet à part entière, mais les fonctions supplémentaires ne sont pas encore disponibles. Il n’est cependant pas nécessaire de les configurer dans le programme, il suffit de vous rendre sur le site ThingSpeak. Pour ce faire, cliquez sur « Apps » puis sélectionnez « React ». L’application « React » peut réagir à des événements précis. Cliquez donc sur « New React » pour créer une nouvelle fonction React puis saisissez les valeurs suivantes :
Name: FireDetect1 Condition Type: Numeric Test Frequency : On Data Insertion Condition: If Channel FireAlarm field 1 (Temp) is great than 40 Action: ThingTweet then tweet: Fire Alarm on the #NanoESP ! Temp: %%trigger%%C #ThingSpeak #IoT Using Twitter Account [Twitter Account] Options: Run action only the first time the condition is met
Enregistrez les réglages en cliquant sur « Save React ». La première étape de la surveillance est déjà terminée. En cas de dépassement de la valeur, ThingSpeak envoie un message à partir de votre compte Twitter. Pour la deuxième étape, l’insertion de la commande Alarm, vous devez faire preuve de talent car la fonction n’est pas automatiquement prise en charge. L’application ThingHTTP est-elle cependant prise en charge. Cliquez donc sur « Apps » puis sur « ThingHTTP ». Créez-y un nouvel élément et configurez les éléments suivants :
Name: Alarm URL : https://api.thingspeak.com/talkbacks/[YOUR TALKBACK ID]/commands Method : POST HTTP Version : 1.1 Host : api.thingspeak.com Headers : Body : api_key=[YOUR TALKBACK KEY]&command_string=Alarm&position=1
N’oubliez pas de remplacer [YOUR TALKBACK ID] et [YOUR TALKBACK KEY] dans l’URL et le corps par votre ID TalkBack et votre KEY TalkBack. Vous pouvez maintenant créer un autre élément React avec les mêmes paramètres que le premier à la seule différence près que vous devez maintenant choisir ThingHTTP pour « Action » et y sélectionner le point « Alarm ». Cela vous permet de garantir qu’une alarme retentisse en cas de dépassement de la valeur critique.
Comme dernière fonction, vous pouvez configurer un Jingle Bells à l’aide de la minuterie. Pour ce faire, cliquez sur « TimeControl » sous « Apps » et créez un nouvel élément,
par ex
. avec le nom « Bell ». Définissez ici les réglages suivants :
Name: Presents Frequency: One Time Time Zone: Berlin Run At: 2015-24-12 7:00 pm Fuzzy Time: ± 0 minutes TalkBack: Alarms, add command: Jingle
Pour un premier test, il est recommandé de choisir une heure dans quelques minutes. Si le test fonctionne correctement, vous pouvez définir la bonne heure.
De plus, le projet peut devenir mobile à l’aide du clip pour pile 9 V ou d’une batterie externe. Si vous cachez la platine dans le sapin en veillant à ce que seule la DEL RVB dépasse à l’emplacement prévu, cela ne gâchera pas l’ambiance. Exactement à 19 h 00, la mélodie de « Jingle Bells » invitera tous les membres de la famille à se réunir sous le sapin. Je vous souhaite de joyeuses fêtes de Noël !
Loading...