Catégorie : Électronique
Affichages : 12571

Cet article est la combinaison de 2 articles précédents : Piloter une prise via bluetooth et Arduino et Programmer un ATtiny85 avec l'arduino MEGA 2560 . Je vous renvoie aussi à l'article traitant du ATtiny 85 pour mieux connaître ce composant.

Avec ce montage, vous pourrez piloter une prise commandée par bluetooth et un simple ATtiny85.

Schéma de montage ATtiny85 Bluetooth Relais

 

Source : http://arduinofy.blogspot.fr/2013/05/attiny-bluetooth.html

Remarque : l'alimentation du montage est prévue pour fonctionner avec du 5V, cependant le tout marche aussi avec du 3,3V.

Code à charger dans l'ATtiny 85 à l'aide de l'Arduino Mega :

/* Ce programme permet à partir d'un appareil bluetooth (comme une tablette tactile,
un smartphone,etc.) de commander par exemple une prise électrique (prise commandée).
Pour cela, un module bluetooth connecté à un ATtiny85 reçoit l'ordre et ce dernier
commande un relais qui permettra d'alimenter une prise électrique.

ATTENTION : RESPECTER LES CONSIGNES DE SÉCURITÉ ÉLECTRIQUE LORSQUE L'ON TRAVAILLE
AVEC DU 220 Volts !!! DANGER DE MORT !!!

Par défaut, le module bluetooth communique à 9600 baud, sur 8 data bits et 1 stop bit.
Cependant, il est possible de modifier ces réglages (notamment le mot de passe)
en utilisant les commandes AT via l'interface série.
N'oubliez pas d'apparier votre appareil bluetooth pour ce module avec le code : 1234 */

/*
Source dont je me suis inspiré : http://arduinofy.blogspot.fr/2013/05/attiny-bluetooth.html

Relais utilisé : carte Funduino Keyes avec 2 relais en 5V (j'utilise le relais 2 via la broche in2).
Laisser le cavalier sur les 2 derniers PIN du relais (COM et GND) si l'alimentation
est la même que l'ATtiny (enlever le cavalier si le relais est alimenté par une source
indépendante de l'ATTiny).

ATTiny 85 : commande le relais via le pin 3 (correspond à 4 en mode digital), communique avec 
le module bluetooth via le pin 5 (correspond à 0) en TXD et via le pin 6 (correspond à 1) en RXD.
Schéma de branchement (hors VCC en 5V et GND) :

   Relais 2   |       ATtiny85       |   Module Bluetooth
              |                      |
              |      -1°  8-(Vcc)    |
              |      -2   7-         |
    in2 <-----|--(D4)-3   6-(D1) RXD-|----> TXD(pin4)
              | (GND)-4   5-(D0) TXD-|----> RXD(pin5)

Le module bluetooth fonctionne en tant qu'esclave.
Taper 1 pour fermer le relais (prise allumée).
Taper 0 pour ouvrir le relais (prise coupée).
*/
 
#include <SoftwareSerial.h>    //Software Serial Port
#define TxD 0  //pin 5 de l'ATtiny à relier au pin RXD du module bluetooth (pin5)
#define RxD 1  //pin 6 de l'ATtiny à relier au pin TXD du module bluetooth (pin4)
 
SoftwareSerial blueToothSerial(RxD,TxD);

int relais = 4; // pin 3 de l'ATtiny qui commande le relais
 
void setup() 
{ 
  pinMode(RxD, INPUT);
  pinMode(TxD, OUTPUT);
  blueToothSerial.begin(9600);
  //delay(2000); // délai nécessaire
  blueToothSerial.print("Bluetooth connecté !\n");
  delay(4000); //Vérifie que tous les relais sont bien inactifs après un reset

  pinMode(relais,OUTPUT);
  digitalWrite(relais,LOW); // ouvre le relais
} 
 
void loop() 
{ 
  char recvChar;
  while(1) {
    //vérifie s'il y a des données envoyées à partir du module bluetooth
    if(blueToothSerial.available()){
      recvChar = blueToothSerial.read();
      
        if(recvChar == '1')
          digitalWrite(relais,HIGH);  
       
        else
          digitalWrite(relais,LOW); 
    }
  }
}