P3 IOT 2018 : Différence entre versions

De Wiki d'activités IMA
(Contexte)
(Document rendu)
 
(53 révisions intermédiaires par le même utilisateur non affichées)
Ligne 7 : Ligne 7 :
  
 
==Description du projet==
 
==Description du projet==
Notre projet veut réaliser deux façons pour contrôler le rideau, une façon est automatique et une façon est connecté.  
+
Notre projet veut réaliser deux modes pour contrôler le rideau, un mode est automatique et un autre mode est connecté.  
  
Pour la première façon, quand il y a de lumière extérieur, le rideau ouvre lui-même, et quand il n'y a pas de lumière extérieur mais il y a de lumière intérieur, ça veut dire qu'il y a de gens à la maison, le rideau ferme.
+
Pour le premier mode, quand il y a de lumière extérieur, le rideau ouvre lui-même, et quand il n'y a pas de lumière extérieur mais il y a de lumière intérieur, ça veut dire qu'il y a de gens à la maison, le rideau ferme.
  
Pour la deuxième façon, vous pouvez contrôler l'ouverture et la fermeture n'importe où et n'importe quand par votre téléphone, votre tablette ou votre ordinateur, comme vous voulez.
+
Pour le deuxième mode, vous pouvez contrôler l'ouverture et la fermeture n'importe où et n'importe quand par votre téléphone, votre tablette ou votre ordinateur, comme vous voulez.
  
 
=Réalisation=
 
=Réalisation=
  
 
==Matériel utilisé==
 
==Matériel utilisé==
 +
* 2*Résistance photosensible
 +
* 2*Moteur SM-S4303R
 +
* Arduino UNO
 +
* WIFI module RN-131G
  
 
==Suivi de réalisation==
 
==Suivi de réalisation==
 +
{| class="wikitable alternance centre"
 +
|-
 +
! scope="row" | Séance 1 (07/01)
 +
| Recherche du sujet et du matériel / Terminer la construction du cadre du projet
 +
|-
 +
! scope="row" | Séance 2 (08/01)
 +
| Déboguez le moteur / Réaliser d'ouvrir et de fermer automatiquement le rideau en fonction du sens de la lumière
 +
|-
 +
! scope="row" | Séance 3 (10/01)
 +
| Déboguer et configurer le Wifi
 +
|-
 +
! scope="row" | Séance 4 (14/01)
 +
| Configurer le serveur / Implémenter le site web
 +
|-
 +
! scope="row" | Séance 5 (17/01)
 +
| Configurer le serveur / Changer la modèle de Wifi
 +
|-
 +
! scope="row" | Séance 6 (21/01)
 +
| Configurer le TCP/IP
 +
|-
 +
|}
  
 
==Détail du travail==
 
==Détail du travail==
  
===Semaine 1===
+
===Séance 1===
 +
 
 +
[[Fichier:P3_1.png | 500px | center]]
 +
 
 +
Pendant les 4 premières heures, nous avons discuté de plusieurs idées, et à la fin nous avons choisi notre sujet - Rideau connecté.
 +
 
 +
Nous voulons réaliser notre projet comme ci-dessous:
 +
 
 +
Nous utilierons une carte Arduino UNO, comme une carte centrée, et puis, nous utiliserons deux moteurs pour contrôler le rideau, un pour ouverture et un autre pour fermerture.Pour protéger notre moteurs, il y aura aussi une module d'entraînement. Et il y aura deux capteurs, un capteur exterieur pour détecter la lumière dehors, et un autre interieur pour détecter la lumière dans la maison. Ce sont deux résistances photosensibles. Il y aura aussi une module de Wifi pour faire la communication entre l'Arduino et le serveur, c'est un serveur TCP/IP. La communication entre la téléphone et l'Arduino sera réaliser par ce serveur TCP/IP. Par ce méthode, nous pouvous réaliser la communication à distance. Et pour la partie sur téléphone, nous voulons utiliser un web pour prendre la place de l'application, parce que l'application est limitée par le type de système d'exploitatioin(Android, iOS, Windows,etc.), mais un web site peut être accédé par tous les équipements(portable, tablette, ordinateur, etc.), c'est plus pratique et simple.
 +
 
 +
===Séance 2===
 +
Pendant ces 4 heures, nous avons testé les deux moteurs SM-S4303R, ensuite, nous avons implémenté la rotation synchrone inverse des deux moteurs, pour réaliser la fonction d'ouvrir et de fermer le rideau par rouler. Comme ce type de moteur peut être implémenté directement par arduino IDE en utilisant une bibliothèque qui s'appelle Servo, nous n'avons plus besion de L298N.
 +
 
 +
Et puis, nous avons testé la partie de résistance photosensible, notre idée est comme ci-dessous :
 +
 
 +
[[Fichier:P3_2.png | 400px | center]]
 +
 
 +
Nous utilisons R1 comme résistance de division de tension, et R2 comme résistance photosensible. Plus forte la lumière, plus petite la résistantce, donc la tension de la résistance photosensible est plus petite aussi.
 +
 
 +
Nous avons fait une traitement la valeur de tension de la résistance photosensible, 0 présente la tension minimale et 1023 présente la tension maximale. Nous avons fait une expérience de la lumière: quand la lumière est très forte, la valeur de tension après traité est moins de 150; quand il n'y a pas de lumière, la valeur de tension après traité est superieure de 1000. Quand l'extérieur est dans la journée et que la pièce n'est pas allumée, la valeur de tension après traité est environ 700; quand l'extérieur est dans la journée mais que la pièce est allumé, la valeur de tension après traité est environ 500.
 +
 
 +
Notre programme est comme ci-dessous:
 +
 
 +
[[Fichier:P3_3.png | center ]]
 +
 
 +
Dans le cas de la journée, le rideau est toujours ouvert, sauf que quelqu'un le contrôle par téléphone. Dans le cas dont la soirée ou la lumière extérieure n'est pas suffisante, nous faisons la vérification de la lumière intérieure: s'il y a de la lumière dans la maison, le rideau ferme; s'il n'y a pas de lumière dans la maison, ça veut dire qu'il n'y a personne, le rideau reste ouvert.
 +
 
 +
===Séance 3===
 +
Pendant ces 4 heures, il y a deux partie de notre travail.
 +
 
 +
La première partie est continuer les travaux sur la fonction automatique, ça veut dire que nous avons changer les résistances pour augmenter la sensibilité du changement de la tension selon la lumière. Pour cette fois, nous avons utiliser deux résistances de 3.3 Kohm.
 +
 
 +
Et pour la deuxième partie, nous avons télécharger une bibliothèque qui s'appelle Wifly pour implémenter notre module de Wifi. Et puis nous avons configurer le Wifi. A la fin de cette séance, notre Arduino est déjà réussi de connecter avec Wifi.
 +
 
 +
Les codes pour configurer est comme ci-dessous :
 +
 
 +
[[Fichier:P3_4.png | center | 200px]]
 +
 
 +
===Séance 4===
 +
Pendant ces 4 heures, nous avons implémenté un site web qui peut accédé par le téléphone ou l'ordinatuer. Et puis nous avons continué configurer le serveur.
 +
 
 +
Il y a quatre boutons sur ce site web, un bouton pour fermer le rideau, un bouton pour l'ouvrir, un bouton pour le mode automatique, et un autre bouton pour le mode connecté. Tout d'abord, il faut choisir le mode connecté, si non, il ne peut pas contrôler par téléphone. Nous avons utilisé un flag dans les codes, pour identifier l'état de rideau, s'il est déjà fermé, rien changera après appuyant le bouton 'fermer', s'il est déjà ouvert, rien changera après appuyant le bouton 'ouvrir'. Et nous avons implémenté dans les codes, si le rideau est fermé (ouvert) par la méthode de connecté, mais il est encore dans la journée (soirée), ce rideau ne sera pas contrôlé par l'intensité lumineuse.
 +
 
 +
Le site web est comme ci-dessous :
 +
 
 +
[[Fichier:P3_5.jpg | center | 600px]]
 +
 
 +
 
 +
Pour le serveur, parfois notre arduino et WiFly peuvent connecter le wifi, mais parfois il ne marche pas du tout. Nous avons corrigé notre codes et réessayé, jusqu'à la fin de cette séance, ils peuvent connecter, mais sans stabilité.
 +
 
 +
===Séance 5===
 +
Pendant ces 4 heures, nous avons toujours essayé de réaliser la connexion de wifi avec stabilité. Tout d'abord, nous pensons que c'est parce qu'il y a beaucoup de signal et le wifi dans la salle, selon le principe de communication, tous les canaux sont occupés après la division de fréquence, ce qui empêche notre signal de capturer les ressources disponibles. Donc nous avons changé la salle à E301, mais il est encore de problème de la connexion. Comme nous toujours utilisons la connexion de téléphone, nous avons décidons de changer la resource de wifi, nous avons utilisé IoT2019, mais ça ne marche non plus. Et nous avons reçu aucun message par le terminal, nous n'aarivons pas à identifier c'est quelle étape se tromper.
 +
 
 +
Après des recherches de raisons, nous avons découvert qu'il y a un fiche Make été changé, c'est pourquoi WiFly ne peut pas connecter. Après avoir restauré la configuration aux paramètres d'usine, la connexion de wifi marche tout le temps.
 +
 
 +
[[Fichier:P3_6.png | center | 600px]]
 +
 
 +
Pendant notre test, après taper le IP dans le navigateur, nous peuvons voir que la connexion wifi entre l'arduino et l'ordinateur est bonne. Mais pour la partie TCP, l'ordinateur peut envoyer des messages à l'arduino, inverse, l'arduino ne peut pas l'envoyer à l'ordinateur, la raison est comme ci-dessoue :
 +
 
 +
[[Fichier:P3_7.png | center | 600px]]
 +
 
 +
Le TCP vers l'ordinateur de l'arduino ne construit pas.
 +
 
 +
===Séance 6===
 +
Pendant ces 4 heures, nous voulons résoudre le problème de la connexion de TCP/IP, nous peuvons voir sur le photo ci-dessous que "HTTP/1.1 200 OK", mais après, l'ordinateur a rien reçu.
 +
 
 +
Tout d'abord, nous avons fait la recherches de TCP/IP, pour essayer de corriger les codes. Par example:
 +
set ip protocol 18
 +
Et ensuite, nous avons renouvoullé le firmware de WiFly, mais il n'est pas mieux.
 +
 
 +
=Document rendu=
 +
[[Fichier:IoT_P3.zip]]

Version actuelle datée du 21 janvier 2019 à 17:49

Présentation du sujet

Contexte

Avez-vous souvent oublié de fermer les rideaux? Êtes-vous si pressé tôt le matin que vous n'avez pas le temps d'ouvrir les rideaux? Lorsque vous êtes en vacances, voulez-vous contrôler les rideaux chez vous à distance, en vous faisant passer pour quelqu'un comme à la maison, afin que le soleil puisse venir chez vous tous les jours? Pourquoi ne pas laisser les rideaux changer automatiquement en fonction de l'intensité de la lumière, pourquoi ne pas réaliser la commande à distance de vos rideaux? Notre projet peut vous aider, automatique, intellgent et connecté.

L'option Internet des Objets est un module qui se place dans le cadre de notre formation Ingénieur. Le but du projet est de réaliser un objet connecté en 24h.

Description du projet

Notre projet veut réaliser deux modes pour contrôler le rideau, un mode est automatique et un autre mode est connecté.

Pour le premier mode, quand il y a de lumière extérieur, le rideau ouvre lui-même, et quand il n'y a pas de lumière extérieur mais il y a de lumière intérieur, ça veut dire qu'il y a de gens à la maison, le rideau ferme.

Pour le deuxième mode, vous pouvez contrôler l'ouverture et la fermeture n'importe où et n'importe quand par votre téléphone, votre tablette ou votre ordinateur, comme vous voulez.

Réalisation

Matériel utilisé

  • 2*Résistance photosensible
  • 2*Moteur SM-S4303R
  • Arduino UNO
  • WIFI module RN-131G

Suivi de réalisation

Séance 1 (07/01) Recherche du sujet et du matériel / Terminer la construction du cadre du projet
Séance 2 (08/01) Déboguez le moteur / Réaliser d'ouvrir et de fermer automatiquement le rideau en fonction du sens de la lumière
Séance 3 (10/01) Déboguer et configurer le Wifi
Séance 4 (14/01) Configurer le serveur / Implémenter le site web
Séance 5 (17/01) Configurer le serveur / Changer la modèle de Wifi
Séance 6 (21/01) Configurer le TCP/IP

Détail du travail

Séance 1

P3 1.png

Pendant les 4 premières heures, nous avons discuté de plusieurs idées, et à la fin nous avons choisi notre sujet - Rideau connecté.

Nous voulons réaliser notre projet comme ci-dessous:

Nous utilierons une carte Arduino UNO, comme une carte centrée, et puis, nous utiliserons deux moteurs pour contrôler le rideau, un pour ouverture et un autre pour fermerture.Pour protéger notre moteurs, il y aura aussi une module d'entraînement. Et il y aura deux capteurs, un capteur exterieur pour détecter la lumière dehors, et un autre interieur pour détecter la lumière dans la maison. Ce sont deux résistances photosensibles. Il y aura aussi une module de Wifi pour faire la communication entre l'Arduino et le serveur, c'est un serveur TCP/IP. La communication entre la téléphone et l'Arduino sera réaliser par ce serveur TCP/IP. Par ce méthode, nous pouvous réaliser la communication à distance. Et pour la partie sur téléphone, nous voulons utiliser un web pour prendre la place de l'application, parce que l'application est limitée par le type de système d'exploitatioin(Android, iOS, Windows,etc.), mais un web site peut être accédé par tous les équipements(portable, tablette, ordinateur, etc.), c'est plus pratique et simple.

Séance 2

Pendant ces 4 heures, nous avons testé les deux moteurs SM-S4303R, ensuite, nous avons implémenté la rotation synchrone inverse des deux moteurs, pour réaliser la fonction d'ouvrir et de fermer le rideau par rouler. Comme ce type de moteur peut être implémenté directement par arduino IDE en utilisant une bibliothèque qui s'appelle Servo, nous n'avons plus besion de L298N.

Et puis, nous avons testé la partie de résistance photosensible, notre idée est comme ci-dessous :

P3 2.png

Nous utilisons R1 comme résistance de division de tension, et R2 comme résistance photosensible. Plus forte la lumière, plus petite la résistantce, donc la tension de la résistance photosensible est plus petite aussi.

Nous avons fait une traitement la valeur de tension de la résistance photosensible, 0 présente la tension minimale et 1023 présente la tension maximale. Nous avons fait une expérience de la lumière: quand la lumière est très forte, la valeur de tension après traité est moins de 150; quand il n'y a pas de lumière, la valeur de tension après traité est superieure de 1000. Quand l'extérieur est dans la journée et que la pièce n'est pas allumée, la valeur de tension après traité est environ 700; quand l'extérieur est dans la journée mais que la pièce est allumé, la valeur de tension après traité est environ 500.

Notre programme est comme ci-dessous:

P3 3.png

Dans le cas de la journée, le rideau est toujours ouvert, sauf que quelqu'un le contrôle par téléphone. Dans le cas dont la soirée ou la lumière extérieure n'est pas suffisante, nous faisons la vérification de la lumière intérieure: s'il y a de la lumière dans la maison, le rideau ferme; s'il n'y a pas de lumière dans la maison, ça veut dire qu'il n'y a personne, le rideau reste ouvert.

Séance 3

Pendant ces 4 heures, il y a deux partie de notre travail.

La première partie est continuer les travaux sur la fonction automatique, ça veut dire que nous avons changer les résistances pour augmenter la sensibilité du changement de la tension selon la lumière. Pour cette fois, nous avons utiliser deux résistances de 3.3 Kohm.

Et pour la deuxième partie, nous avons télécharger une bibliothèque qui s'appelle Wifly pour implémenter notre module de Wifi. Et puis nous avons configurer le Wifi. A la fin de cette séance, notre Arduino est déjà réussi de connecter avec Wifi.

Les codes pour configurer est comme ci-dessous :

P3 4.png

Séance 4

Pendant ces 4 heures, nous avons implémenté un site web qui peut accédé par le téléphone ou l'ordinatuer. Et puis nous avons continué configurer le serveur.

Il y a quatre boutons sur ce site web, un bouton pour fermer le rideau, un bouton pour l'ouvrir, un bouton pour le mode automatique, et un autre bouton pour le mode connecté. Tout d'abord, il faut choisir le mode connecté, si non, il ne peut pas contrôler par téléphone. Nous avons utilisé un flag dans les codes, pour identifier l'état de rideau, s'il est déjà fermé, rien changera après appuyant le bouton 'fermer', s'il est déjà ouvert, rien changera après appuyant le bouton 'ouvrir'. Et nous avons implémenté dans les codes, si le rideau est fermé (ouvert) par la méthode de connecté, mais il est encore dans la journée (soirée), ce rideau ne sera pas contrôlé par l'intensité lumineuse.

Le site web est comme ci-dessous :

P3 5.jpg


Pour le serveur, parfois notre arduino et WiFly peuvent connecter le wifi, mais parfois il ne marche pas du tout. Nous avons corrigé notre codes et réessayé, jusqu'à la fin de cette séance, ils peuvent connecter, mais sans stabilité.

Séance 5

Pendant ces 4 heures, nous avons toujours essayé de réaliser la connexion de wifi avec stabilité. Tout d'abord, nous pensons que c'est parce qu'il y a beaucoup de signal et le wifi dans la salle, selon le principe de communication, tous les canaux sont occupés après la division de fréquence, ce qui empêche notre signal de capturer les ressources disponibles. Donc nous avons changé la salle à E301, mais il est encore de problème de la connexion. Comme nous toujours utilisons la connexion de téléphone, nous avons décidons de changer la resource de wifi, nous avons utilisé IoT2019, mais ça ne marche non plus. Et nous avons reçu aucun message par le terminal, nous n'aarivons pas à identifier c'est quelle étape se tromper.

Après des recherches de raisons, nous avons découvert qu'il y a un fiche Make été changé, c'est pourquoi WiFly ne peut pas connecter. Après avoir restauré la configuration aux paramètres d'usine, la connexion de wifi marche tout le temps.

P3 6.png

Pendant notre test, après taper le IP dans le navigateur, nous peuvons voir que la connexion wifi entre l'arduino et l'ordinateur est bonne. Mais pour la partie TCP, l'ordinateur peut envoyer des messages à l'arduino, inverse, l'arduino ne peut pas l'envoyer à l'ordinateur, la raison est comme ci-dessoue :

P3 7.png

Le TCP vers l'ordinateur de l'arduino ne construit pas.

Séance 6

Pendant ces 4 heures, nous voulons résoudre le problème de la connexion de TCP/IP, nous peuvons voir sur le photo ci-dessous que "HTTP/1.1 200 OK", mais après, l'ordinateur a rien reçu.

Tout d'abord, nous avons fait la recherches de TCP/IP, pour essayer de corriger les codes. Par example:

set ip protocol 18

Et ensuite, nous avons renouvoullé le firmware de WiFly, mais il n'est pas mieux.

Document rendu

Fichier:IoT P3.zip