Accueil

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

tests du module :

ENC28J60 Ethernet LAN Network Module

Petit module Ethernet pour Arduino environ 3 ou 4€ sur Ebay

ENC28J60 Ethernet LAN Network Module

Ce module fonctionne en 3.3v le Pro mini 328 5v 16m  n'a pas de sortie 3.3v

j'utilise donc un régulateur entrée 12v/ sortie 3.3v

Regulateur 3.3v

et  une fumée blanche sort du Ci...

Après vérification le régulateur est défectueux ! la sortie est en 12v

Donc la suite plus tard... je commande un nouveau régulateur 3.3v, et un nouveau module Ethernet...

De retour avec un  Pro mini 328 3.3v 8m car les sorties CS, CLK, MOSI et MISO sont aussi en 3.3v.

ENC28j60 Arduino
VCC  3.3V
GND GND
SCK Pin 13
SO Pin 12
SI Pin 11
CS Pin 8

Je teste une démo pour allumer 2 led : arduino-enc28j60-ethernet-module

 

 

 

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Pro Mini atmega328 5V 16MTests du :

Pro Mini atmega328 5V 16M

Clone chinois de l'Arduino disponible sur Ebay à partir de 2.90€ 2.10€ les prix fluctuent !

  • bootloader write inside
  • ATmega328 running at 16MHz with external resonator (0.5% tolerance)
  • USB connection off board
  • Supports auto-reset
  • Max 150mA output
  • Over current protected
  • Reverse polarity protected
  • DC input 5V up to 12V
  • On board Power and Status LEDs
  • Size:(Long)33mm *(wide1)18 mm *(high)6mm

 

mini light v5Version officielle : Arduino Mini Light V5 chez Snootlab 16.50€

L'Arduino Mini est une carte microcontrôleur basés sur le ATmega328, destiné à être utilisé sur des plaques d'essais (breadboard) et lorsque l'espace est compté.

Il dispose de :

  • 14 entrées/sorties numériques (dont 6 peuvent être utilisées comme sorties PWM),
  • 8 entrées analogiques,
  • un oscillateur cristal 16 MHz

 

Utilisation avec le "usb serial light" de l'Arduino Ethernet officiel.

Usb serial light

Connectez les pins USB serial / Pro Mini:

  • +5v / +5v (l'Usb alimente le Pro mini)
  • GND / GND
  • TX / RX (croisez entrées et sorties)
  • RX / TX (croisez entrées et sorties)
  • Ext Reset / RST (avec un condo 0.1µf (100nf), je n'avais qu'un 10nf ça marche)

ArduinoVoir le site http://arduino.cc/en/Guide/ArduinoMini

 

Je charge le code exemple  "Blink" et ça fonctionne bien !!! la led 13 clignote.

à suivre...

 

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Le capteur de pluie :

  • Une sortie numérique 1/0
  • Une sortie analogique 0 à 1023

Capteur de pluie

Features:
  • Voltage: 5V
  • Power indicator light, the output signal LED indicating lamp.
  • TTL level output, TTL output signal for low level drive capacity of around 100MA, can directly drive the relay, a buzzer, a small fan, etc..
  • Sensitivity adjustment via potentiometer
  • No rain when the LED light output is high, the output level, go up, LED bright.
  • The board and the control board is separate, convenient wire.
  • A large area of the board, more conducive to detect the rain.
  • The board is equipped with a positioning hole to facilitate installation
  • Control panel board size: 3*1.6 MM
  • A large area of raindrop detection board 5.4*4.0 MM
  • Connect cable: 200MM

 

Code test pour l'entrée analogique :

int sensorPin = A0;    // select the input pin for the potentiometer 0/1023
int sensorValue = 0;  // variable to store the value coming from the sensor
int oldValue = 0;
int sensorDelay=100;

// Seuil en dessous duquel regarder l'évolution
int seuil = 1000;

void setup() {
  Serial.begin( 115200 );
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);

  if ( sensorValue < seuil )
  {
    // si la valeur a changé de 1 on n'en tient pas compte, il y a trop de fluctuation sur la ligne pour que ce soit important
    if ( abs(  oldValue - sensorValue ) > 1 )
    {
      Serial.print("D");
      Serial.println(sensorValue);
    }
  }

  delay(sensorDelay);
  oldValue = sensorValue;
}

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Le capteur de pression barométrique et de température BMP085:

(Barometric Pressure + Temp sensor):

Capteur BMP085

Caractéristiques :
• Interface numérique à 2 fils (I2C)
• Large échelle de pression barométrique (échelle de mesure de 300 à 1 100 hPa)
• Gamme de tension d'alimentation flexible (entre 1,8 et 3,6 Vcc)
• Consommation d'énergie ultra-faible
• Mesure de bruits faibles
• Totalement calibré
• Mesure de la température comprise
• Ultra-plat, faible encombrement

Vendeurs chinois sur Ebay  5 à 20€ : tx-hang

testé avec l'alimentation  en 3.3v et 5v, ça fonctionne bien.


BMP085

Exemple d'utilisation avec la librairie Adafruit

#include <Wire.h>
#include <Adafruit_BMP085.h>

/***************************************************
  This is an example for the BMP085 Barometric Pressure & Temp Sensor

  Designed specifically to work with the Adafruit BMP085 Breakout
  ----> https://www.adafruit.com/products/391

  These displays use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here

Adafruit_BMP085 bmp;
 
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}
 
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

résultat obtenu :

Temperature = 30.76 *C
Pressure = 98245 Pa
Altitude = 259.56 meters
Real altitude = 274.03 meters

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
AH3503 Hall effect sensor (capteur à effet hall)

Capteur effet hall

Aimant neodymeUn senseur à effet Hall est sensible au champ magnétique, il  agit comme un interrupteur suivant la présence ou l'absence d'un champs magnétique à proximité.

  • Détection d'ouverture,
  • fin de course,
  • compteur de passage...

Nombreux modèles disponible sur Ebay (environ 15€ les 50pcs)

Petits disques ronds d'aimant de néodyme.

Disponible en chine et sur Ebay. (environ 2€ les 50pcs)

 

Programme test pour Arduino : sur Seedstudio

#define HALL_SENSOR 2
#define LED    4//the Grove - LED is connected to D4 of Arduino

void setup()
{
     pinsInit();
}
 
void loop()
{
    if(isNearMagnet())//if the hall sensor is near the magnet?
    {
        turnOnLED();
    }
    else
    {
        turnOffLED();
    }
}
void pinsInit()
{
    pinMode(HALL_SENSOR, INPUT);
    pinMode(LED,OUTPUT);
}

/*If the hall sensor is near the magnet whose south pole is facing up, */
/*it will return ture, otherwise it will return false.                */
boolean isNearMagnet()
{
    int sensorValue = digitalRead(HALL_SENSOR);
    if(sensorValue == LOW)//if the sensor value is LOW?
    {
        return true;//yes,return ture
    }
    else
    {
        return false;//no,return false
    }
}
void turnOnLED()
{
    digitalWrite(LED,HIGH);
}
void turnOffLED()
{
    digitalWrite(LED,LOW);
}

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Cartes relais 5 volts / 220 volts :

Carte 8 relaisCarte 2 relais 5vCarte relais 5v

5V 8 Channel Relay Module for Arduino.

Description :

  • Facile à contrôler par un micro-contrôleurs comme l'Arduino
  • Avec relais à forte intensité, AC250V 10A, (10A DC30V)
  • Chaque canal a besoin de 15-20mA
  • Dimension carte 8 relais : env. 13.8x5.7x2cm

Nombreux sites chinois de 1.25/5€ (pour 1 relais)  à 6/20€ (8 relais) un exemple ici / et ici

Utilisation : Pour commander les télérupteurs, les brises-soleil orientables, volets roulants...

code test :

int relais1 =5;// relais connected to digital pin 5

voidsetup()
{
pinMode(relais1,OUTPUT);// sets the digital pin as output
}

voidloop()
{
digitalWrite(relais1,HIGH);// sets the relais on
}

Pour un relai "LOW level trigger"

SSR


digitalWrite(relais1,LOW);// sets the relais on

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Mini ordinateur  sous Linux (Raspberry Pi Type B 512MB)

mini ordinateur Raspberry Pi

Découvrez Le Raspberry-Pi, Made in the UK, un ordinateur à peine plus grand qu’une carte de crédit, pouvant se connecter à un écran ou a un clavier.


  • Il peut être utilisé comme serveur internet ou un PC de bureau grâce à un processeur ARM, lancer des applications de types : tableur, traitement de texte, jeux... mais aussi pour diffuser des vidéos en haute définition.
  • Le Raspberry Pi est livré nu, sans mémoire, alimentation, clavier, boîtier ni câbles.
  • Environ 35€ (hors frais de port)

Un site : http://www.kubii.fr/fr/

Le Raspberry-pi va être utilisé comme serveur PHP pour la gestion de la domotique de la maison.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Non-invasive AC Current Sensor (TA17-03/04)

Sonde TA17-03

  • Transformateur de courant non-invasif,
  • utilisez ce capteur pour construire votre propre moniteur d'énergie.
  • Il est adapté à la surveillance de mesures du courant et à la protection de matériels d'éclairage.
  • disponible en chine ici ou sur Ebay

prochainement test de contrôle de la présence de 220v par un Arduino.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Le télérupteur : FINDER série 20.

Télérupteur Finder

  • Un télérupteur est module souvent présent dans vos tableaux électriques pour commander un ensemble de lampes avec plus de 2 interrupteurs (c’est à dire quand un simple va et vient ne suffit plus).
  • Le télérupteur se caractérise souvent par son « clac » lorsqu’il change d’état.
  • D’un point de vu pratique c’est un relais commandé à mémoire d’état.

A venir : utilisation d'un télérupteur commandé par l'Arduino depuis une interface web.

Achat sur internet sur un site en Pologne :  ici      télérupteurs FINDER à des  prix très intéressants !

Caractéristiques :

1 ou 2 contacts 16 A - Télérupteur modulaire pour montage directement sur rail 35 mm (EN 60715)

 Largeur un module 17.4 mmTélérupteur Finder
 Bouton test et indicateur mécanique
 6 séquences disponibles (voir tableau)
 Bobine AC 230v (ou autre)
 Plaque d’identification
 Montage sur rail 35 mm (EN 60715)
 Contacts sans Cadmium
 Brevet italien, fabriqué en Europe.

Tout les éclairages seront commandés par télérupteur et pilotés par la domotique.

modèle 20.21  11.65€ ttc : usage poussoirs  simples (on/off) 

modèle 20.24  15.87€ ttc  :usage salon 2 circuits, 4 séquences : off, A+B, A seul , B  seul, commande par un poussoir.

modèle 20.26 15.87€ ttc : usage pour la cuisine, 3 séquences : off, A (plan de travail), A+B (plan + plafond) commande par un  poussoir.

modèle 20.28 13,87€ ttc pour la commande des volets et des brises-soleil, 4 séquences : off / descente / off / montée avec un seul poussoir.

 

Pour contrôler l'état des télérupteurs avec l'Arduino j'utilise un relais (MY2NJ 220VAC 1.50€ par 15 pièces) Relais Omron

relais dinavec un support DIN (PYF08A-E 1.73€ par 10 pcs)

disponible sur Ebay :  Omron PYF08A-E* Relay Socket for MY2NJ

*le -E dans la référence est important c'est le marquage CE, le même sans le -E est moins chère (1.28€ par 10pcs) mais pas aux normes européennes !

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Module détecteur de mouvement PIR (IR Detector Module)

Détecteurs PIR

  • Ce module permet de détecter les mouvements des humains et animaux par le changement de chaleur. (Infra Rouges Passifs).
  • Après la mise sous tension, il faut le laisser 2 secondes pour se stabiliser, ensuite tout changement met la broche alarme à l'état bas.
  • environ 8€ en France ici, 10€ les 5 en chine ici,  10.93 les 10 ici sur Ebay soit 1.10€ pièces !

Un exemple d'utilisation : http://www.wikidebrouillard.org/index.php/Capteur_de_pr%C3%A9sence_pilot%C3%A9_par_Arduino

/*
Détecteur de présence - capteur PIR + LED
Arduino IDE 1.0.3
*/

#define PIR 2
#define LED 8
#define LEDB 9
int val = 0;            // état du capteur
int pirState = LOW;     // précédent état du capteur

void setup()
{
  pinMode(PIR, INPUT);
  pinMode(LED, OUTPUT);
  pinMode(LEDB, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  Serial.println(digitalRead(PIR));
  val = digitalRead(PIR);
  
  if(val == HIGH)            // si on détecte un mouvement
  {
    if(pirState == LOW)      // on regarde s'il y a eu changement d'état
    {
      //delay(10000);               // on fait clignoter la led
      digitalWrite(LED, HIGH);
      digitalWrite(LEDB, LOW);
      delay(5000);  
      pirState = HIGH;       // on stocke l'état
    }
  }
  else                       // si on ne détecte pas de mouvement
  {
    if(pirState == HIGH)
    {
      digitalWrite(LED, LOW);
      digitalWrite(LEDB, HIGH);
      pirState = LOW;
    }
  }
}

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
LDR photorésistance  (Photoresistor)

Photoresitances

  • Les photorésistances sont des composants photosensibles dont la valeur ohmique varie en fonction de l'intensité de lumière qu'ils reçoivent.
  • Pour allumer les ampoules d’un lampadaire quand la nuit tombe, on utilise une photorésistance reliée à un circuit commandant un relais.
  • Environ 2.5€  en France ici,  le lot de 10 en chine 1.53€ ici, 1.51€ les 20 pièces  ici

Un exemple d'utilisation : http://www.wikidebrouillard.org/index.php/Bande_d%27illumin%C3%A9s

 

 
/*
 
 Code Arduino qui permet de réaliser un luxmètre. Trois LED s'allument alternativement en fonction de l'intensité lumineuse ambiante.
 

*/


int capteur1 = 0; // variable identifiant un port ana. 0 de la carte
int LED1 = 13; // variable identifiant le port num. 13 de la carte
int LED2 = 12;// variable identifiant le port num. 13 de la carte
int LED3 = 11;// variable identifiant le port num. 13 de la carte
int LED4 = 10;// variable identifiant le port num. 13 de la carte

int lum1 = 0; // variable identifiant la valeur de la luminosité du capteur 1


void setup()
{
  pinMode(LED1, OUTPUT); //  initialise la broche 13 comme une sortie
  pinMode(LED2, OUTPUT); //  initialise la broche 12 comme une sortie
  pinMode(LED3, OUTPUT); //  initialise la broche 11 comme une sortie
  pinMode(LED4, OUTPUT); //  initialise la broche 11 comme une sortie


}


void loop() // debut de la boucle
{
  lum1 = analogRead( capteur1); // lire la donnée de la cellule dans lum1

  if (lum1 < 25 ) // si la luminosité est faible,
 
  {
    int n =50;
    while ( n > 0.00) {
      
       
    digitalWrite(LED1, LOW);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, HIGH);  // eteindre la LED3
    
    delay (n);
    
     digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, HIGH);  // eteindre la LED3
    
    delay (n);
    
    digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3
    
    delay (n);
    
     digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, LOW);  // eteindre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3
    
    delay (n);
    
    
    
     digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, LOW);  // eteindre la LED2
    digitalWrite(LED3, LOW);  // eteindre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3
    
    delay (n);
    
    
    digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, LOW);  // eteindre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3
    
    delay (n);
    
    
     digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3
    
    delay (n);
    
    
    
     digitalWrite(LED1, HIGH);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, HIGH);  // eteindre la LED3
    
    delay (n);
    
    
    
     digitalWrite(LED1, LOW);  // allumer la LED 1
    digitalWrite(LED2, HIGH);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, HIGH);  // eteindre la LED3
    
    delay (n);
    
    
     digitalWrite(LED1, LOW);  // allumer la LED 1
    digitalWrite(LED2, LOW);  // eteindre la LED2
    digitalWrite(LED3, HIGH);  // eteindre la LED3
    digitalWrite(LED4, HIGH);  // eteindre la LED3
    
    delay (n);
   
    n--;
    }
  }
 
 
   else if (lum1 > 25 && lum1 < 50) // si la luminosité est moyenne
  {
    digitalWrite(LED2, HIGH);  // allumer la LED 2
    digitalWrite(LED1, LOW);  // eteindre la LED1
    digitalWrite(LED3, LOW); // etiendre la LED3
    digitalWrite(LED4, LOW);  // eteindre la LED3

  }
 
 
   else if (lum1 > 50 && lum1 < 75) {  // si la luminosité est élevée
 
    digitalWrite(LED3, HIGH);  // allumer la LED 3
    digitalWrite(LED1, LOW);  // eteindre la LED 1
    digitalWrite(LED2, LOW);  // eteindre la LED 2
    digitalWrite(LED4, LOW);  // eteindre la LED3

   }
   
   
   
   
      else if (lum1 > 75) {  // si la luminosité est élevée
 
    digitalWrite(LED3, LOW);  // allumer la LED 3
    digitalWrite(LED1, LOW);  // eteindre la LED 1
    digitalWrite(LED2, LOW);  // eteindre la LED 2
    digitalWrite(LED4, HIGH);  // eteindre la LED3

   }
 
} // Fin de la boucle



Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Sonde de température numérique DS18B20 :

Sonde de température DS18B20

  • Le thermomètre numérique DS18B20 offre une mesure de température sur 9 à 12 bits et possède une fonction d'alarme avec des points de déclenchement supérieurs et inférieurs non volatiles et programmables par l'utilisateur.
  • Le DS18B20 communique via un bus 1-Wire qui, par définition ne nécessite qu'une seule ligne de données (et la masse) pour la communication avec un micro-contrôleur.
  • Il a une plage de température de fonctionnement de -55°C à +125°C et est précis à ± 0,5°C sur la plage de -10°C à +85°C.
  • En outre, le DS18B20 peut dériver la puissance directement à partir de la ligne de données ("puissance parasite"), éliminant le besoin d'une alimentation externe.
  • Chaque DS18B20 a un unique code sur 64 bits en série, qui permet à de multiples DS18B20 de fonctionner sur le même bus one-Wire.
  • Ainsi, un seul micro-contrôleur peut contrôler plusieurs DS18B20 répartis sur une grande surface.

Faible coût : 

Un tutoriel pour le Ds18b20 : http://skyduino.wordpress.com/2012/04/26/arduino-capteur-de-temperature-ds18b20/

Ds18b20 étancheIl existe une version étanche de ce capteur :

 

  • environ 11€ l'unité en France ici
  • 4,18€ avec un câble de 3 mètres vendeurs chinois ici
  • 10PCS Waterproof Digital Thermal Probe or Sensor DS18B20 pour 14.02 € super prix sur Ebay ! http://stores.ebay.fr/czbelectronic

 

 

Utilise la bibliothèque OneWire.h

Code de test :

 #include <OneWire.h> // Inclusion de la librairie OneWire

 
#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire
 
OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds
 
// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté
 
  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
   
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur
 
  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur
 
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
   
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure
   
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad
 
  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
   
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
   
  // Pas d'erreur
  return true;
}
 
// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
}
 
// loop()
void loop() {
  float temp;
   
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
     
    // Affiche la température
    Serial.print("Temperature : ");
    Serial.print(temp);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
  }
}

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
Capteur de température et d'humidité AM2302 (DHT22)

capteur DHT22Am2302

DHT22                           AM2302

  • "Bon marche" (10/15€ en Europe, 5€69 vendeurs chinois ici, 3.38http://stores.ebay.fr/txhangelectronic)
  • Alimentation et I/O: 3 à 5V
  • Max 2.5mA utilisé durant la conversion (au moment de l'acquisition de données)
  • Convient pour une lecture d'humidité entre 0-100% avec une précision de 2-5%.
  • Convient pour une lecture de température de -40 à +125°C avec une précision de ±0.5°C
  • Pas plus de 2 échantillonnages par seconde (0.5 Hz sampling rate)
  • Boitier: 15.1mm x 25mm x 7.7mm

Utilisation de ce capteur : http://mchobby.be/wiki/index.php?title=DHTxx

Il existe le DTH11 moins cher mais  moins précis. (précision de 5% et ±2°C)

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2     // what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");
 
  dht.begin();
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
  }
}

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

L'Arduino est un micro-contrôleur

il existe différentes versions : http://arduino.cc/en/Main/Products

arduino-uno-rev3arduino-uno-eth-usb2

Versions officielles : Arduino UNO 19.50€  et Arduino Ethernet+Usb2 58€ chez http://snootlab.com

Elle dispose :

  • de 14 broches numériques d'entrées/sorties (dont 6 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
  • de 6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
  • d'un quartz 16Mhz,
  • d'une connexion USB,
  • d'un connecteur d'alimentation jack,
  • d'un connecteur ICSP (programmation "in-circuit"),
  • et d'un bouton de réinitialisation (reset).

Pro Mini atmega328 5V 16MEnc28j60

Le moins chère : Version chinoise (Pro Mini atmega328 5V 16M) 2.90 € sur Ebay + carte Ethernet ENC28J60 2.82€ sur Ebay

L'Arduino Mini est une carte microcontrôleur basés sur le ATmega328, destiné à être utilisé sur des plaques d'essais (breadboard) et lorsque l'espace est compté. Il dispose de 14 entrées/sorties numériques (dont 6 peuvent être utilisées comme sorties PWM), 8 entrées analogiques, et un oscillateur cristal 16 MHz.

 

Mega2560 w5100

Ensemble Mega2560 (Funduino, clone chinois d'Arduino) + carte Ethernet W5100 pour environ 23€ sur Ebay

Cette carte dispose :

  • de 54 (!) broches numériques d'entrées/sorties (dont 14 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
  • de 16 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
  • de 4 UART (port série matériel),
  • d'un quartz 16Mhz,
  • d'une connexion USB,
  • d'un connecteur d'alimentation jack,
  • d'un connecteur ICSP (programmation "in-circuit"),
  • et d'un bouton de réinitialisation (reset).

 

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Sous-catégories

Toutes les infos sur le projet éco3x

L'histoire d'un chantier de construction d'une maison passive en Haute Saône...

Vous pouvez laisser des commentaires en cliquant sur Commentaire (0) en bas à droite des articles.

(les commentaires n'apparaissent qu'après validation pour éviter les spams)

Pour créer un compte ou vous identifier utilisez l'onglet "Contact"