Station Météo connectée

Création d’une Station météo :

Le projet :

Lire la température, l’humidité, la pluviométrie, la luminosité et la qualité de l’air.

L’idée est  que ces  mesures soient accessible aux élèves en les publiant sur une page WEB.

Le matériel :

Carte ESP32 dev Voici le drivers pour MACOS compatible Catalina !!!

Mac_OSX_VCP_Driver

Capteur DTH22, LDR, pluie et Capteur MQ135 pour la qualité de l’air.

Un Mini servo moteur pour vider le bac du capteur de pluie.

Logiciel :

2 librairies

MQ135-master

ESP32-Arduino-Servo-Library-master

Pour le réglage Wifi je me suis basé sur un des exemples fournit dans « Exemple Wifi ».

Le serveur WEB crée une adresse Ip et publie les mesures des capteurs sur une page WEB.

Il est possible de piloter le servo Moteur à distance depuis la page WEB.

 

 

Arduino Uno Wifi Developper Edition

Arduino Uno Wifi Developper Edition

Superbe carte, facile a prendre en main mais il faut faire les choses dans l’ordre.

Elle permet de créer un serveur web en ligne par wifi, sympa ! Ou de téléverser le code en OTA(en wifi), pratique lorsque le projet n’est pas a proximité. Site Officiel.

Dans l’ordre :

1 : Télécharger la librairie (et donc les exemples)

UnoWiFi-Developer-Edition-Lib-master

2 : Se connecter sur le wifi de la carte( la reset si le wifi n’est pas visible)

3 : Dans un navigateur saisir L’ip : http://192.168.240.1 ou http://arduino.local

4 : Configurer la carte

Il faut configurer la carte de telle façon quelle se connecte sur votre réseau wifi, la carte une fois connecter sera de nouveau accessible sur l’adresse ip quelle aura obtenue :

Ecran :

Donc on se connecte sur le wifi, la carte donne sa nouvelle adresse sur le réseau ici 10.0.12.204. Il faut ensuite passe en mode STA (Switch to mode STA).

On se trouve du coup déconnecté du wifi de la carte arduino, elle est maintenant accessible par sa nouvelle adresse IP.

 

5 : Dans Arduino le port wifi va apparaitre :

6 :  Dans le menu Fichier-Exemples

 

Pilotage par Bluetooth Hc-06

Pilotage par Bluetooth Hc-06

Je pensais l’opération compliquée et pénible mais il très facile de rajouter un module bluetooth à un projet. 

Le modèle HC-06 permet de recevoir des ordres par bluetooth depuis un téléphone portable par exemple.

Problème le  HC-06 n’est pas compatible avec les iPhones. le HC-10 lui par contre fonctionne avec iPhone.

La connexion :

Simple +/- ensuite il faut connecter RX et TX par exemple aux broches 2 et 3. (surtout pas 0/1).

Petit problème la broche Rx ne supporte pas 5v(pas longtemps) il faut mieux utiliser un pont diviseur pour éviter de l’endommager.

1K/2K cela permet de baisser d’un tier la tension en entrée. (le HC-10 n’a pas ce problème).

Fonctionnement :

Dès que le module est branché, la led rouge clignote cela signifie que la liaison bluetooth n’est pas établie.

Depuis un téléphone, trouver dans le menu bluetooth le module HC-06, il faut ensuite se connecter avec le code 1234.

Le mieux est de télécharger une application afin de simplifier le pilote. facile a trouver sur google play ou app Store.

Le code : (pas de moi)

// Création d’une liaison série
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2,3);
word octet_recu;
#define led 13
void setup()
{
Serial.begin(9600); // initialisation liaison série à 9600 bauds
bluetooth.begin(9600); // initialisation connexion série Bluetooth à 9600 bauds
pinMode(led,OUTPUT) ; // la broche led est en sortie
}

void loop() {
recevoir(); // appel de la procédure recevoir
if (octet_recu==49) // si octet reçu est 1 (49=code ASCII de 1)
{
Serial.println(« Led allumee »);
digitalWrite(led,HIGH);
}
if (octet_recu==48) // si octet reçu est 0 (48=code ASCII de 0)
{
Serial.println(« Led eteinte »);
digitalWrite(led,LOW);
}
delay(200);
}
//procédure qui lit les trames de la tablette
void recevoir()
{
if (bluetooth.available())
{
octet_recu=bluetooth.read();
}
}

Simple a transformer et il devient possible à l’aide de relais de piloter n’importe quel appareil.

Maquette maison domotisée.

Je me lance dans la production de 6 maquettes.

L’idée de séparer les pièces permet de simplifier l’approche et de plus facilement répartir le travail dans les ilots.

Les 6 pièces

  • Cuisine
  • Salon
  • Salle de bain/Wc
  • Terrasse
  • Chambre
  • Garage

Les maquettes seront pilotées par une carte Arduino et programmée par les élèves a l’aide de Mblock.

6 maquettes en forme de L qui assemblée reconstitue une maison.

L’idée est de faire rechercher par les élèves en groupes quelles sont les fonctions qui pourraient être automatisées ou domotisées puis scénarisés.

On touche les domaines du confort de la sécurité mais aussi du développement durable (économie d’énergie énergie renouvelable).

Les élèves passent ensuite à la phase programmation.

 

Une évolution serait de relier tous les Arduino et de piloter la maison en entier. (Si quelqu’un veut bien se pencher sur l’idée….)

DynDNS sans DynDNS

DynDNS sans DynDNS

L’idée : Utiliser l’arduino pour connaitre en permanence sont Ip externe.

L’arduino appel à intervalle fixe (60s) une page web sur un serveur. Le serveur mémorise l’ip.

capture-decran-2016-12-12-a-10-20-56

Voila votre ip externe est connue. Une page web affiche un lien vers votre serveur.

Si comme moi vous avez  plusieurs caméra plus un serveurWeb plus un thermomètre il faudra dans la page web modifier les ports.

 

Matériel :
Arduino Uno + Shield Ethernet.

Logiciel :
2 pages php hébergées sur un serveur (ovh chez moi).

Les fichiers à placer sur le  serveur : fichiersserveurweb

Le code arduino : dyndnssansdyndns

 

Arduino Pull-up

Arduino Pull-up

A quoi ça sert ! Comme son nom l’indique : A tirer vers le haut.

Une entrée si elle n’est reliée a rien peut prendre l’état 1 ou 0 aléatoirement c’est embêtant…

Le Pull consiste à relier l’entrée au +5 par défaut. Quand le Bp est actionné l’entrée passe à 0. Plus de problèmes ….

C’est bien mais cela oblige a ajouter une résistance….

Heureusement cette fonction est intégrée dans arduino.

pinMode(pin, INPUT_PULLUP);   (marche pas sur le pin 13)

pull-up

Si le PULL_DOWN existe en électronique il n’est a ma connaissance pas intégré dans Arduino.