User Tools

Site Tools


electronique:projet_domotique

This is an old revision of the document!


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 (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
electronique/projet_domotique.1425167631.txt.gz · Last modified: 2020/04/14 19:21 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki