===== 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 :-P 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 ([[exemples_de_code|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