The Things Network et Node Red
Dans le précédent article, nous avons mis en œuvre un objet connecté au travers du réseau IOT The Things Network. Nous avons utilisé Cayenne my devices pour la construction du Front End. Je vous propose dans cet article de le construire à l'aide de Node Red. L'objet connecté sera le capteur de température et d'humidité construit autours d'une carte THE THINGS UNO et d'un DHT11 vu dans le précédent article.
Réseau The Things Network
On parle partout de l'Internet des Objets. Mais qu'est-ce que c'est au juste ? On connait Internet, ce truc auquel on se connecte au moyen d'un câble réseau, de la fibre optique ou en wifi à partir d'une box, ou bien encore avec un téléphone portable 3G ou 4G. L'accès à ces réseaux n'est pas gratuit, on paye un abonnement, ou quelqu'un paye un abonnement ! Le volume de données qui transite sur ces réseaux est considérable, mais ce n'est rien en comparaison de ce qui nous attend si on fait communiquer tous les objets qui nous entoure, même s'ils devaient se limiter à quelques échanges quotidien et générer de faibles volumes de données chacun. De plus, lorsque notre principale préoccupation, c'est d'obtenir le contenu souhaité le plus rapidement possible, soit avoir le meilleur débit possible, les objets peuvent se contenter d'un réseau bas débit, voir très bas débit (quelques kb/s).
Géolocalisation avec Node Red
Certain projet peuvent nécessité la mise en œuvre d'une géolocalisation intégrant ou non un capteur GPS. Le but ici est de mettre en place une géolocalisation basée sur l'API de Google à l'aide de Node Red.
Tutoriel Node-Red
Dans de nombreux projets, l'IHM est constituée d'une application web accessible depuis un navigateur. Il n'est pas toujours aisé de programmer le lien entre le matériel (capteurs et/ou actionneurs) et la page web fournie à l'utilisateur. Une solution consiste à utiliser un script Python dont l'exécution peut être planifiée avec Cron, pour interagir avec le matériel, lire les données des capteurs et les stocker dans une base de données comme MySQL. Un serveur web comme Apache2, via une page web php, met à disposition des utilisateurs les informations. Cette solution décrite dans un précédant article nécessite la mobilisation de nombreuses technologies et plusieurs langages de programmation, contraignant les développeurs du projet à retarder la mise œuvre d'un prototype pour se former.
Combiné avec une solution matérielle constituée d'une Raspberry et éventuellement une carte Arduino, Node Red se révèle être une alternative très intéressante :
Node-RED est un outil puissant pour construire des applications de l'Internet des Objets (IoT) en mettant l'accent sur la simplification de la programmation qui se fait grâce à des blocs de code prédéfinis, appelés «nodes» pour effectuer des tâches. Il utilise une approche de programmation visuelle qui permet aux développeurs de connecter les blocs de code ensemble. Les nœuds connectés, généralement une combinaison de nœuds d'entrée, de nœuds de traitement et de nœuds de sortie, lorsqu'ils sont câblés ensemble, constituent un «flow».
Structure d’un premier objet communicant
Le but de ce tutoriel est de mettre en œuvre une structure type d'un objet communicant basé sur l'utilisation d'une carte Arduino pour la partie acquisition/actionneurs et d'une carte PC embarqué (pcDuino, Raspberry Pi, ...) pour la partie traitement (script Python, programme C/C++, ...), connexion au réseau (filaire ou wifi), stockage local des données (serveur de bases de données SQLigth, MySQL, ...), mise à disposition des données (serveur web Apache2, lighttpd, ginx, ...). La connexion entre ces deux carte se fait naturellement par une liaison série sur USB. Le synoptique ci-dessous représente par exemple un système de surveillance de la hauteur et de la qualité de l'eau d'un cours d'eau. La température, le Ph et la hauteur de l'eau sont mesurés sur demande par la carte Arduino. Le pcDuino via un scritp Python dont l'exécution peut être planifiée avec Cron, effectue la demande puis lit les réponses et les stockent dans la base de données MySQL. Apache2, via une page web php, met à disposition des utilisateurs les informations.
Connexion automatique d’une Arduino avec VisualStudio C#
Ce programme permet de piloter la LED connectée sur D13 sur une Arduino (uno, mega, ...). La connexion à la carte Arduino est automatique. Le système identifie le port sur lequel l'Arduino est connecté et tente d'ouvrir le port. L'utilisateur à la possibilité de modifier la connexion, dans le cas ou plusieurs cartes Arduino seraient reliées à l'ordinateur par exemple.
Les mots de commandes disponibles sont :
- ON : Allumer la LED
- OFF : Eteindre la LED
- STATUS : Demande le status de la LED
LEDs Reflex
Cet article présente le travail de deux élèves de terminal STI2D en spécialité SIN en mini projet. Leur but était de réaliser un jeu du type "Tape Taupes" autours d'une carte microcontrôleur Arduino Uno et d'une interface Homme-Machine conçue via Visual Studio. Vous trouverez ici leur diaporama de présentation, le diagramme de séquence (MagicDraw), le code Arduino et le projet Visual Studio développé en C#.
Serveur Web WiFi sur Arduino
L'utilisation de cartes Arduino dans les projets de terminales et de BTS est devenue monnaie courante. Si l'utilisation de la liaison série, des modules radios, Xbee ou bluetooth ne présentent pas de difficultés notamment dans la réalisation d'une application PC communicante, il n'en est pas forcément de même pour les shields WiFi ou Ethernet.
Ce petit projet montre comment utiliser le shield WiFi originale d'Arduino pour contrôler une LED et lire une chaine alphanumérique à partir d'une application Visual Studio C#.
Cette application s'appuie sur l'utilisation des classes TcpClient et Stream pour se connecter au réseau et lire et écrire des données.
Arduino héberge un petit serveur web qui surveille les connexions client et analyse les requêtes pour agir sur la led et renvoyer au client son état réel. Le client peut aussi demander une mesure, le serveur retourne une chaine alphanumérique.
Télécharger les fichiers du projet : https://github.com/msilanus/WifiArduino/
BTS SN
Le BTS Systèmes Numériques (SN) est né de la fusion des BTS Systèmes Electroniques (SE) et BTS Informatique et Réseau pour l'Industrie et les Services (IRIS).
Le lycée Alphonse Benoit propose les deux options du BTS Systèmes numériques :
• la spécialité Électronique et communications (EC) : composante voisine de la commande rapprochée, de l’usage des composants complexes, de la pré-industrialisation des dispositifs électroniques, de leur maintenance, et de la mobilisation des moyens de télécommunication dans les couches de bas niveau.
• la spécialité Informatique et réseaux (IR) : composante plus proche des réseaux et de leur sécurité, des systèmes embarqués, du cloud computing et de la programmation des systèmes.
Vous trouverez ici mes enseignements de cours (pour les deux options) et les activités pratiques et projets pour l'option EC.
ISN 1 – Pédagogie de projet
Ce module a été profondément remanié afin de proposer des activités pratiques basées sur l'utilisation de module Arduino.
Ces modules permettent de développer simplement une application de contrôle-commande, le matériel étant parfaitement adapté au prototypage rapide.