Projet IMA3 P6, 2015/2016, TD2 : Différence entre versions

De Wiki de Projets IMA
(Projet IMA3-SC 2015/2016 : Titre)
(Partie informatique)
Ligne 58 : Ligne 58 :
 
La principale difficulté que nous avons rencontré à résidé dans le fait que la valeur envoyée de la liaison série vers le programme Arduino n'est pas réceptionnée de la même manière lorsqu'on utilise le moniteur série du programme Arduino, ou lorsqu'on utilise le WebSocket. Nous avons donc choisi dans un premier temps de coder une fonction lisant de manière convenable les informations venant du moniteur série, puis nous avons changé une petite partie du programme pour que celui-ci puisse recevoir les consignes de température de la part d'un utilisateur sur internet.
 
La principale difficulté que nous avons rencontré à résidé dans le fait que la valeur envoyée de la liaison série vers le programme Arduino n'est pas réceptionnée de la même manière lorsqu'on utilise le moniteur série du programme Arduino, ou lorsqu'on utilise le WebSocket. Nous avons donc choisi dans un premier temps de coder une fonction lisant de manière convenable les informations venant du moniteur série, puis nous avons changé une petite partie du programme pour que celui-ci puisse recevoir les consignes de température de la part d'un utilisateur sur internet.
 
Il est important de noter que le programme '''Actuellement implémenté''' dans la carte RedBoard est le programme permettant de converser avec un utilisateur via le '''WebSocket''' !
 
Il est important de noter que le programme '''Actuellement implémenté''' dans la carte RedBoard est le programme permettant de converser avec un utilisateur via le '''WebSocket''' !
 +
  
 
<gallery>
 
<gallery>
Ligne 64 : Ligne 65 :
 
Fichier:Arduinoaffichespi.png|Cette dernière fonction permet d'afficher la valeur désirée sur les quatre digits des afficheurs 7-Segments (''Cliquez pour agrandir'')
 
Fichier:Arduinoaffichespi.png|Cette dernière fonction permet d'afficher la valeur désirée sur les quatre digits des afficheurs 7-Segments (''Cliquez pour agrandir'')
 
</gallery>
 
</gallery>
 +
 +
 +
 +
Après la création du programme Arduino, l'étape suivante à consisté à initialiser la Raspberry Pi de manière à pouvoir l'utiliser en réseau depuis n'importe quel poste de la salle de projet.
 +
Nous avons tout d'abord connecté le Raspberry Pi à l'ordinateur fixe via un câble série afin de configurer sa carte Ethernet. On utilise le logiciel minicom pour accéder à la Raspberry et l'éditeur de texte nano pour copier les lignes de code suivantes dans le fichier /etc/network/interfaces :
 +
 +
auto eth0
 +
iface eth0 inet static
 +
  address 172.26.79.9
 +
  netmask 255.255.240.0
 +
  gateway 172.26.79.254
 +
 +
On indique aussi le serveur DNS dans le fichier /etc/resolv.conf :
 +
 +
nameserver 193.48.57.34
 +
 +
Nous pouvons maintenant accéder à notre Raspberry Pi via un câble ethernet branché sur le réseau de la salle de projet et la commande ssh pi@172.26.79.5 sur la console de l'ordinateur.
 +
On installe ensuite le package libwebsockets-dev qui contient une bibliothèque C de WebSocket qui sera utile par la suite pour la configuration du WebSocket ainsi que le package apache2 qui permet de créer un serveur HTTP sur Raspberry.Dans le répertoire /var/www, nous copions la fichier HTML de notre page web. Le fichier C du WebSocket se trouve /pi/home.  On télécharge aussi la bibliothèque Web 2.0 jquery.js sur le site http://jquery.com/ afin de faciliter l'écriture du programme WebSocket.c.
 +
On constate que le test effectué avec les fichier donnés en exemple dans le sujet fonctionnent bien. On compile et on exécute le fichier C et on tape l’adresse 172.26.79.5 dans un navigateur web pour accéder à l'interface web. Tout fonctionne correctement, nous pourrons utiliser la Raspberry avec notre WebSocket et notre interface web. La commande d'exécution du serveur WebSocket devra être écrite dans le fichier /etc/rc.local pour qu'il s'exécute automatiquement au démarrage du Raspberry.
  
 
== Séance 3 ==
 
== Séance 3 ==

Version du 15 juin 2016 à 10:31

Projet IMA3-SC 2015/2016 : Régulation de température

Cahier des charges

OBJECTIFS

Notre projet en système communicant va consister en la réalisation d'un objet connecté. Nous avons comme objectif au cours de ces séances de réaliser un système permettant de réguler à distance la température d'une pièce. Celui-ci permettrait de voir et régler la température sur un site WEB mais aussi d'afficher la température sur des afficheurs 7-segment. Pour simuler l'augmentation de température, on utilisera une résistance chauffante et ainsi pouvoir chauffer en cas de perte de température dans la "pièce". De plus, un ventilateur permettra de diminuer la température.


MATERIEL

Pour ce faire, nous avons besoin de :

  • une Raspberry PI
  • un capteur de température
  • 2 afficheurs 7-segments
  • une led pour faire le °
  • une Nanoboard
  • une résistance chauffante
  • ventialteur

Séance 1

Partie électronique

Nous avons dans un premier temps résolu le problème de régulation de température : nous utiliserons un ventilateur pour refroidir et une résistance chauffante pour chauffer.

Dans un second temps, nous avons effectué des schémas pour pouvoir répartir le travail. (photo à upload)

Ensuite, nous avons pris connaissance du FPGA et de son fonctionnement à travers le tutoriel fourni.

Nous avons décidé d'utiliser un CAN afin d'acquérir les données du capteur.

Pour pouvoir utiliser la résistance chauffante et le ventilateur, nous devrons utiliser des transistors.

Partie informatique

Du coté informatique, nous avons naturellement voulu commencer par s'imprégner du langage Arduino, afin de pouvoir créer une maquette de notre projet. Le langage Arduino étant assez proche du langage C, la tâche aura été assez rapide.

Dans un second temps,nous nous sommes attelés à la réalisation de la maquette. Pour ce faire, nous avons utilisé deux LEDs pour symboliser le ventilateur et la résistance, ainsi qu'une sonde de température DS18B20 et 4 afficheurs 7-Segments. Le montage aura été assez simple à réaliser, comme le montre la photographie suivante.

MontageArduinoExpérimental.jpg

Nous avons utilisé deux LEDs, la rouge, branchée sur le port 7 de la RedBoard, représente le ventilateur, la jaune, branchée sur le port 6 de la RedBoard, représente la résistance.

Afin de vérifier que la maquette fonctionne, nous avons aussi évidemment besoin d'un programme Arduino que nous écrirons à la prochaine séance.

Séance 2

Partie électronique

Partie informatique

Lors ce cette seconde séance, nous avons crée le programme Arduino permettant de régir notre maquette. La principale difficulté que nous avons rencontré à résidé dans le fait que la valeur envoyée de la liaison série vers le programme Arduino n'est pas réceptionnée de la même manière lorsqu'on utilise le moniteur série du programme Arduino, ou lorsqu'on utilise le WebSocket. Nous avons donc choisi dans un premier temps de coder une fonction lisant de manière convenable les informations venant du moniteur série, puis nous avons changé une petite partie du programme pour que celui-ci puisse recevoir les consignes de température de la part d'un utilisateur sur internet. Il est important de noter que le programme Actuellement implémenté dans la carte RedBoard est le programme permettant de converser avec un utilisateur via le WebSocket !



Après la création du programme Arduino, l'étape suivante à consisté à initialiser la Raspberry Pi de manière à pouvoir l'utiliser en réseau depuis n'importe quel poste de la salle de projet. Nous avons tout d'abord connecté le Raspberry Pi à l'ordinateur fixe via un câble série afin de configurer sa carte Ethernet. On utilise le logiciel minicom pour accéder à la Raspberry et l'éditeur de texte nano pour copier les lignes de code suivantes dans le fichier /etc/network/interfaces :

auto eth0 iface eth0 inet static

 address 172.26.79.9
 netmask 255.255.240.0
 gateway 172.26.79.254

On indique aussi le serveur DNS dans le fichier /etc/resolv.conf :

nameserver 193.48.57.34

Nous pouvons maintenant accéder à notre Raspberry Pi via un câble ethernet branché sur le réseau de la salle de projet et la commande ssh pi@172.26.79.5 sur la console de l'ordinateur. On installe ensuite le package libwebsockets-dev qui contient une bibliothèque C de WebSocket qui sera utile par la suite pour la configuration du WebSocket ainsi que le package apache2 qui permet de créer un serveur HTTP sur Raspberry.Dans le répertoire /var/www, nous copions la fichier HTML de notre page web. Le fichier C du WebSocket se trouve /pi/home. On télécharge aussi la bibliothèque Web 2.0 jquery.js sur le site http://jquery.com/ afin de faciliter l'écriture du programme WebSocket.c. On constate que le test effectué avec les fichier donnés en exemple dans le sujet fonctionnent bien. On compile et on exécute le fichier C et on tape l’adresse 172.26.79.5 dans un navigateur web pour accéder à l'interface web. Tout fonctionne correctement, nous pourrons utiliser la Raspberry avec notre WebSocket et notre interface web. La commande d'exécution du serveur WebSocket devra être écrite dans le fichier /etc/rc.local pour qu'il s'exécute automatiquement au démarrage du Raspberry.

Séance 3

Partie électronique

Partie informatique

Démonstration

Conclusion