Station météo connectée : Différence entre versions
(→Étapes du projet) |
(→Envoie de données) |
||
(9 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
==Cahier des charges== | ==Cahier des charges== | ||
− | |||
− | Notre projet consiste en la création d'une station météo nous donnant la température, éventuellement | + | ====Présentation générale du projet==== |
+ | |||
+ | Notre projet consiste en la création d'une station météo nous donnant la température, éventuellement l'humidité et la luminosité.<br> | ||
Nous devons avoir un système basse consommation, c'est pourquoi nous devons utiliser un système de mise en veille. | Nous devons avoir un système basse consommation, c'est pourquoi nous devons utiliser un système de mise en veille. | ||
− | ====Objectif du projet==== | + | =====Objectif du projet===== |
L'objectif sera de pouvoir offrir la possibilité à un utilisateur d'obtenir un certain nombre de données météorologiques en temps réel via une page web. | L'objectif sera de pouvoir offrir la possibilité à un utilisateur d'obtenir un certain nombre de données météorologiques en temps réel via une page web. | ||
− | ====Description du projet==== | + | =====Description du projet===== |
− | Nous | + | Nous devons avoir un système embarqué qui récupérera des informations météorologiques telles que la température, la pression, l'humidité, la luminosité.<br> |
Ces données seront envoyées en wifi à un serveur web qui affichera les informations météorologiques en temps réel.<br> | Ces données seront envoyées en wifi à un serveur web qui affichera les informations météorologiques en temps réel.<br> | ||
− | Nous nous intéresserons donc au côté Gestion d'énergie avec un mode veille/éveil de notre système embarqué | + | Nous nous intéresserons donc au côté Gestion d'énergie avec un mode veille/éveil de notre système embarqué, également au stockage des données, sûrement dans une base de données et leur affichage sur une page web. |
− | |||
<br>(Nous pourrons utiliser le serveur web créé en Projet de PRA). | <br>(Nous pourrons utiliser le serveur web créé en Projet de PRA). | ||
− | ====Choix techniques : matériel et logiciel==== | + | =====Choix techniques : matériel et logiciel===== |
*Nous utiliserons une carte équipée d'un microcontrôleur et d'un module Wifi à savoir : HUZZAH ESP8266 proposé par Adafruit Industries :<br> | *Nous utiliserons une carte équipée d'un microcontrôleur et d'un module Wifi à savoir : HUZZAH ESP8266 proposé par Adafruit Industries :<br> | ||
Ligne 27 : | Ligne 27 : | ||
==Étapes du projet== | ==Étapes du projet== | ||
− | <b>Partie 1 : Récupérer une donnée (température dans un premier temps) et la stocker sur notre machine virtuelle | + | <b>Partie 1 : </b>Récupérer une donnée (température dans un premier temps) et la stocker sur notre machine virtuelle |
− | <b>Partie 2 : Interface web et affichage des données | + | <b>Partie 2 : </b>Interface web et affichage des données |
− | <b>Partie 3 : Mode veille et activation du réveil | + | <b>Partie 3 : </b>Mode veille et activation du réveil |
− | <b>Partie 4 : | + | <b>Partie 4 : </b>Essais en extérieur |
==Suivi de l'avancement du Projet== | ==Suivi de l'avancement du Projet== | ||
− | |||
− | |||
=====Mise en jambe===== | =====Mise en jambe===== | ||
Nous nous sommes intéressés au choix du matériel et à la prise en main de celui-ci.<br> | Nous nous sommes intéressés au choix du matériel et à la prise en main de celui-ci.<br> | ||
Nous avons donc travaillé avec l'ESP8266 d'Adafruit Industries via l'IDE Arduino.<br> | Nous avons donc travaillé avec l'ESP8266 d'Adafruit Industries via l'IDE Arduino.<br> | ||
− | |||
− | === | + | =====Accès à une page web avec l'ESP8266===== |
− | === | + | |
− | === | + | Nous avons dans un premier temps cherché à savoir comment utiliser le module wifi et récupérer par exemple une page web. |
− | === | + | Nous avons utilisé un exemple contenu dans la bibliothèque Adafruit, permettant de réaliser une requête HTTP en se connectant à un réseau Wifi. |
+ | Le module se connecte donc à notre smartphone en Wifi et effectue une requête HTTP basique vers un site quelconque, puis nous renvoie le code html de la page. | ||
+ | |||
+ | =====Envoi de données===== | ||
+ | |||
+ | Avant de s'intéresser aux capteurs que nous intégrerons par la suite, nous avons regardé comment envoyer une donnée (rentrée en statique dans le code Arduino) et l'afficher sur une page web. Pour ce, nous avons simplement fait une requête http sur une page php comportant un script. Nous avons mis un script basique qui crée un fichier et écrit dedans la valeur de la donnée. Nous affichons le contenu du fichier sur notre page web d'application. | ||
+ | Cette page php sera donc uniquement appelée par notre ESP8266 et les valeurs seront affichées sur une page web. Les données sont contenues dans l'url et récupérées par le script php. | ||
+ | |||
+ | =====Stockage des données===== | ||
+ | |||
+ | Pour le stockage des données, nous avions dans un premier temps pensé à une base de données mais nous nous sommes plutôt tourné vers un stockage dans un fichier json pour l'affichage de celui-ci dynamiquement en javascript. | ||
+ | |||
+ | =====Interface Web===== | ||
+ | |||
+ | Nous avons pensé à une interface user-friendly dynamique grâce à AngularJS. Nous allons d'ailleurs y afficher, en plus des données météorologiques envoyées par notre station météo, les détails de notre système : Les technologies, le code, un lien vers le wiki... | ||
+ | Les données sont injectées dans la page web dynamiquement à partir du fichier json contenant les valeurs grâce à angular. | ||
+ | Le tableau de données pourra être trié par date, heure, température, humidité. | ||
+ | http://iot.thibautscholaert.com/ | ||
+ | |||
+ | =====Application Android===== | ||
+ | |||
+ | L'application Android affichera les données dans une ListView, du relevé le plus récent au plus ancien. Une requête vers le fichier JSON correspondant est exécutée, et chaque relevé (date-heure-température-humidité) est enregistré dans une base de données SQLite dans le téléphone. La liste est constituée à partir de cette base de données. Pour un relevé, la date, l'heure, la température et l'humidité sont affichés dans un même item. La liste sera actualisable via un bouton spécialement affecté. L'idée de l'application nous étant venue assez tard, l'affichage de cette liste reste (pour l'instant ?) basique, sans mise en forme particulière. | ||
+ | |||
+ | =====Mode Veille===== | ||
+ | |||
+ | Nous avons également pensé comme prévu à un mode veille question d'économie d'énergie. L'objet connecté sera en mode veille presque tout le temps et se réveillera toutes les 30 minutes pour envoyer les données instantanées : température, humidité, date et heure. Cette tâche prend très peu de temps, de l'ordre de quelques secondes, ce temps dépend beaucoup du temps de connection à la borne Wifi (notre téléphone). Nous avons donc un système basse consommation grâce à ce mode veille/réveil. | ||
+ | Aussi, le système embarquera une batterie d'une tension de 3V qui est capable d'alimenter le module ESP8266. |
Version actuelle datée du 20 janvier 2016 à 22:32
Cahier des charges
Présentation générale du projet
Notre projet consiste en la création d'une station météo nous donnant la température, éventuellement l'humidité et la luminosité.
Nous devons avoir un système basse consommation, c'est pourquoi nous devons utiliser un système de mise en veille.
Objectif du projet
L'objectif sera de pouvoir offrir la possibilité à un utilisateur d'obtenir un certain nombre de données météorologiques en temps réel via une page web.
Description du projet
Nous devons avoir un système embarqué qui récupérera des informations météorologiques telles que la température, la pression, l'humidité, la luminosité.
Ces données seront envoyées en wifi à un serveur web qui affichera les informations météorologiques en temps réel.
Nous nous intéresserons donc au côté Gestion d'énergie avec un mode veille/éveil de notre système embarqué, également au stockage des données, sûrement dans une base de données et leur affichage sur une page web.
(Nous pourrons utiliser le serveur web créé en Projet de PRA).
Choix techniques : matériel et logiciel
- Nous utiliserons une carte équipée d'un microcontrôleur et d'un module Wifi à savoir : HUZZAH ESP8266 proposé par Adafruit Industries :
https://www.adafruit.com/products/2471
- Nous coderons le tout via l'IDE Arduino.
- Nous utiliserons notre machine virtuelle pour stocker les données et les publier sur le site créé en Projet PRA.
- Nous n'avons pas encore réfléchi au sujet de l'alimentation (batterie, pile...)
Étapes du projet
Partie 1 : Récupérer une donnée (température dans un premier temps) et la stocker sur notre machine virtuelle
Partie 2 : Interface web et affichage des données
Partie 3 : Mode veille et activation du réveil
Partie 4 : Essais en extérieur
Suivi de l'avancement du Projet
Mise en jambe
Nous nous sommes intéressés au choix du matériel et à la prise en main de celui-ci.
Nous avons donc travaillé avec l'ESP8266 d'Adafruit Industries via l'IDE Arduino.
Accès à une page web avec l'ESP8266
Nous avons dans un premier temps cherché à savoir comment utiliser le module wifi et récupérer par exemple une page web. Nous avons utilisé un exemple contenu dans la bibliothèque Adafruit, permettant de réaliser une requête HTTP en se connectant à un réseau Wifi. Le module se connecte donc à notre smartphone en Wifi et effectue une requête HTTP basique vers un site quelconque, puis nous renvoie le code html de la page.
Envoi de données
Avant de s'intéresser aux capteurs que nous intégrerons par la suite, nous avons regardé comment envoyer une donnée (rentrée en statique dans le code Arduino) et l'afficher sur une page web. Pour ce, nous avons simplement fait une requête http sur une page php comportant un script. Nous avons mis un script basique qui crée un fichier et écrit dedans la valeur de la donnée. Nous affichons le contenu du fichier sur notre page web d'application. Cette page php sera donc uniquement appelée par notre ESP8266 et les valeurs seront affichées sur une page web. Les données sont contenues dans l'url et récupérées par le script php.
Stockage des données
Pour le stockage des données, nous avions dans un premier temps pensé à une base de données mais nous nous sommes plutôt tourné vers un stockage dans un fichier json pour l'affichage de celui-ci dynamiquement en javascript.
Interface Web
Nous avons pensé à une interface user-friendly dynamique grâce à AngularJS. Nous allons d'ailleurs y afficher, en plus des données météorologiques envoyées par notre station météo, les détails de notre système : Les technologies, le code, un lien vers le wiki... Les données sont injectées dans la page web dynamiquement à partir du fichier json contenant les valeurs grâce à angular. Le tableau de données pourra être trié par date, heure, température, humidité.
http://iot.thibautscholaert.com/
Application Android
L'application Android affichera les données dans une ListView, du relevé le plus récent au plus ancien. Une requête vers le fichier JSON correspondant est exécutée, et chaque relevé (date-heure-température-humidité) est enregistré dans une base de données SQLite dans le téléphone. La liste est constituée à partir de cette base de données. Pour un relevé, la date, l'heure, la température et l'humidité sont affichés dans un même item. La liste sera actualisable via un bouton spécialement affecté. L'idée de l'application nous étant venue assez tard, l'affichage de cette liste reste (pour l'instant ?) basique, sans mise en forme particulière.
Mode Veille
Nous avons également pensé comme prévu à un mode veille question d'économie d'énergie. L'objet connecté sera en mode veille presque tout le temps et se réveillera toutes les 30 minutes pour envoyer les données instantanées : température, humidité, date et heure. Cette tâche prend très peu de temps, de l'ordre de quelques secondes, ce temps dépend beaucoup du temps de connection à la borne Wifi (notre téléphone). Nous avons donc un système basse consommation grâce à ce mode veille/réveil. Aussi, le système embarquera une batterie d'une tension de 3V qui est capable d'alimenter le module ESP8266.