This is an old revision of the document!
Table of Contents
Progression
Etape 01
Invalidable sans la clé 3G + carte sim. mais l'installation de l'Os et du serveur web (bien qu'inutile cfr plus bas) a déjà été fait.
[color=orange]La clé 3G arrive, elle vient de chine sur ses papattes, et j'ai 2 cartes SIM qui ne vont pas tarder (une déjà fonctionnelle et une à demander à Belgacom).[/color]
[color=green]elle est arrivée et j'ai retiré la demande de code PIN, pas encore eu le temps de la tester +[/color]
Etape 02&03
le software gpio (wiring Pi) fonctionne parfaitement en CLI sans avoir besoin d'utiliser des lignes de commandes complexes et ou de code en C. De plus webiopi fourni un service très similaire (mm plus évolué) via un protocole RESTfull. On peut donc l'attaquer avec des requetes curl/wget classiques. Pour simplifier la vie à l'utilisateur ils ont écrit une librairie JS qui a pour but de commander ces GPIO directement.
Pour l'installation d'un serveur web c'est à revoir car le serveur web fourni avec webiopi (python) pourrait largement suffire : En utilisant simplement une page statique en html/css/js et en faisant les calls via les fonctions js prévues à cet escient.
[color=orange]J'ai pas tout compris “CLI”, “RESTfull”. Par contre, je ne suis pas certain que du JS va suffire. Pour actionner le relais, ça ira si la librairie permet de laisser une pin GPIO sur high. Par contre pour lire une température, il faut envoyer un signal pendant 100ms, attendre la réponse 50ms, lire les 30 bits de réponse, vérifier le check-sum, calculer la température sur les 8 premiers bits, calculer l'humidité sur les 8 bits suivants et afficher. Tu penses qu'on peut faire tout ça en JS ? Pas de code = le raspberry donne des instructions et oublie, donc on travaille en stateless. Ou alors on enregistre les éventuelles infos à retenir dans des fichiers [/color]
[color=green]Vais pas faire mon wikipédia mais en gros :
- CLI ⇒ Command Line Interface > j'entend par là tout ce qui passe par une ligne de commande (bash script etc) et qui n'a pas d'interface graphique qu'elle soit web/gui sur un OS (cfr exemple)
- RESTFull ⇒ Le protocole HTTP permet de faire transiter des requêtes en GET/POST qui est connu de tous les développeurs web mais la norme définit aussi d'autres types comme par exemple :
DELETE ou HEAD et l'utilisation de la totalité de ces call permet de faire des applications stateless très légères.
//Je vois que de webiopi seul les calls get et post sont utilisés : // Quelques exemples: * To get GPIO 0 function : HTTP GET /GPIO/0/function * To set GPIO 0 as input : HTTP POST /GPIO/0/function/in * To get GPIO 0 value : HTTP GET /GPIO/0/value * To fall GPIO 1 : HTTP POST /GPIO/1/value/0 * To output a single pulse on GPIO 0 : HTTP POST /GPIO/0/pulse/
[/color]
Etape 01
Objectif
Le raspberry PI est connecté au net et reçoit des requêtes HTTP.
Matériel
- 1 raspberry PI
- 1 clé 3G + carte SIM
- 1 alimentation 5V externe
Configuration
- Installer un OS (raspbian ?)
- Installer un serveur web (lightppd ?)
- Configurer la clé 3G
Etape 02
Objectif
Appeler le code C via la ligne de commandes permet de contrôler les LED.
Matériel
- 1 carte d'expérimentation
- 1 Cobbler
- des câbles sans soudure
- des LED + résistances
Configuration
- Créer un code C qui exploite les librairies adéquates pour contrôler les pin du GPIO
Etape 03
Objectif
Le raspberry PI interprète les requêtes HTTP et leurs paramètres et contrôle les LED.
Matériel
Aucun
Configuration
- La page web appelle le code C pour exécuter les commandes appropriées.
Etape 04
Objectif
Contrôler l'allumage d'une prise de courant
Matériel
- 1 relais monostable
- 1 prise modifiée
Configuration
- Modifier la prise électrique pour que la terre et 1 phase aillent directement en sortie, et que la 2e phase soit reliée au relais. Le relais, lui, est relié à la sortie.
Parallèlement, le relais est relié à l'alimentation 5v externe (avec une résistance si il attend moins de 5v) et à une pin du port GPIO.
Etape 05
Objectif
Rendre le projet utilisable à distance.
Matériel
- 1 nom de domaine (fusse-t-il fictif mais gratuit (sous-domaine, domaine .ws, …) ou classe mais payant)
Configuration
- Utiliser un service (?) pour connaître en permanence l'IP du raspberry PI
Etape 06
Objectif
Rendre l'application user-friendly.
Matériel
Aucun
Configuration
- Remplacer les requêtes HTTP par une interface web avec des input d'action et des output de statut.
Etape 07
Objectif
Mesurer la température et le niveau d'humidité.
Matériel
- 1 sonde de température et d'humidité
Configuration
- Relier la sonde sur une pin du port GPIO
- Ecrire un code C capable de relever la température et l'humidité
- Automatiser ce relevé à une fréquence adaptée
- Afficher les relevés sur l'interface web
Etape 08
Objectif
Alerter qui de droit en cas d'événement notable comme un seuil de température dépassé. Par mail, SMS, …
Matériel
Aucun
Configuration
- Un serveur mail ou un webservice permettant l'envoi de messages.
- Un service SMS permettant l'envoi de messages.
Etape 09
Objectif
Automatiser l'allumage et l'extinction de la chaudière grâce à la sonde de température. Attention, éviter les ON - OFF intempestifs si la température est au seuil. Prévenir qui de droit à chaque action.
Matériel
Aucun
Configuration
- Créer une routine qui vérifie que la température relevée ne sort pas des seuils
- Appeler le code C en cas de température hors seuil.
Etape 10
Objectif
Relever la température et l'humidité d'une pièce éloignée.
Matériel
- 1 kit émetteur - récepteur radio 433Mhz
- 1 antenne RF pour booster le signal
- 1 micro-contrôleur type PIC10
Configuration
- Configurer le micro-contrôleur pour relever la température et l'humidité
- Configurer le micro-contrôleur pour envoyer un signal radio
- Configurer le raspberry PI pour recevoir et interpréter un signal radio
- Remplacer le relevé de température sur la pin du port GPIO par celui reçu par radio
Etape 11
Objectif
Installer un détecteur de fumée et y intégrer le relevé de température et d'humidité.
Matériel
- 1 détecteur de fumée
Configuration
- Brancher le circuit de la photo-diode sur une pin IO du micro-contrôleur
- Trouver le seuil d'alerte incendie
- Communiquer les valeurs par radio en même temps que la température (augmenter la fréquence de relevé si c'est fait une fois par heure, sinon tout aura déjà crâmé ^^)
- Configurer le raspberry PI pour interpréter cette nouvelle valeur et contrôler le seuil pour pouvoir envoyer une alerte
Etape 12
Objectif
Pouvoir placer le raspberry PI où l'on veut.
Matériel
- 1 kit émetteur - récepteur radio 433Mhz
- 1 antenne RF pour booster le signal
- 1 micro-contrôleur type PIC10
Configuration
- Déporter l'activation de la prise électrique du raspberry PI vers le micro-contrôleur, par onde radio
