Domotique – Commande d’une prise par ordinateur (Arduino Uno + relais)

Une des solutions pour commander du 220V est le relais (commutateur électrique). J’ai choisi d’utiliser le relais de tinkerkit car il est petit, pas trop cher et en plus il est conçu pour fonctionner avec un Arduino.

Je vais vous montrer dans ce petit tuto comment commander une prise électrique avec votre ordinateur à l’aide d’un relais et d’un Arduino Uno.

DANGER : ne jamais toucher le relais lorsque la prise est branchée (220V –> danger de mort)

Prérequis :

  • 1 Arduino

 Domotique – Commande d’une prise par ordinateur (arduino uno + relais)1

  • 1 relais (tinkerkit)

 Domotique – Commande d’une prise par ordinateur (arduino uno + relais)2

Le montage :

[Étape 1] – Prenez une rallonge électrique et dénudez la gaine de protection sur environ 3 cm. Il faut faire attention à ne pas couper dans l’isolant.

Ralange -  Domotique – Commande d’une prise par ordinateur (arduino uno + relais)4

Cliquez sur l’image pour l’agrandir

[Étape 2] – Coupez la phase (câble brun) et la dénuder sur environ 0,5cm puis la connecter au relais. Connecter l’un des côtés sur NO et l’autre sur COM.

Relais - Domotique – Commande d’une prise par ordinateur (arduino uno + relais)5

Cliquez sur l’image pour l’agrandir

[Étape 3] – Connectez le relais à votre arduino, pour cela il vous faut 3 fils :

  • Le rouge –> 5V
  • Le noire –> GND
  • L’orange –> Digital (Signal de commande)
Domotique – Commande d’une prise par ordinateur (arduino uno + relais)3

Cliquez sur l’image pour l’agrandir

Il suffit maintenant de connecter votre Arduino à l’ordinateur.

Domotique – Commande d’une prise par ordinateur (arduino uno + relais)6

Cliquez sur l’image pour l’agrandir

Code Arduino

J’ai utilisé le logiciel fourni avec mon Arduino et la bibliothèque tinkerkit (qu’il faut télécharger à part).

#include <TinkerKit.h>

TKRelay relay1(10);

char buffer[18];
int x;

void setup()
{
      Serial.begin(9600);
      relay1.off();
}

void loop()
{
      if (Serial.available() > 0)
      {
            serial_input();
            if(buffer[0]=='1')
            {
                  relay1.on();
            }
            else if(buffer[0]=='0')
            {
                  relay1.off();
            }
            else
            {

            }
            clear_buffer();
      }
}

void serial_input(void)
{
      int index=0;
      delay(100);
      int numChar = Serial.available();
      if (numChar>15)
      {
            numChar=15;
      }
      while (numChar--)
      {
            buffer[index++] = Serial.read();
      }
}

void clear_buffer(void)
{
      for (x=0; x<16; x++)
      {
            buffer[x]='\0';
      }
      Serial.flush();
}
Code Arduino

Code Arduino à télécharger ici

Code Visual studio express (C#)

J’ai utilisé le logiciel Visual Studio Express 2013 pour créer la partie commande par ordinateur.

Domotique – Commande d’une prise par ordinateur (arduino uno + relais)-c#

 

– indiquez le port sur lequel est branché l’Arduino

– appuyez sur « Connect »

– en appuyant sur ON le relais se ferme (le courant passe)

– en appuyant sur OFF le relais s’ouvre (le courant ne passe pas)

– quand vous avez fini appuyez sur « Disconnect »

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if(port.IsOpen == false)
                {
                    port.PortName = textBox1.Text;
                    port.Open();
                }
                else 
                {

                }
            }
            catch (IOException ex)
            {
                MessageBox.Show("Error Detected", "Error !!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                if (port.IsOpen == true)
                {
                    port.Close();
                }
                else { }
            }
            catch (IOException ex)
            {
                MessageBox.Show("Error Detected", "Error !!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                if (port.IsOpen == true)
                {
                    port.Write("1");
                }
                else { }
            }
            catch (IOException ex)
            {
                MessageBox.Show("Error Detected", "Error !!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                if (port.IsOpen == true)
                {
                    port.Write("0");
                }
                else { }
            }
            catch (IOException ex)
            {
                MessageBox.Show("Error Detected", "Error !!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
Code Visual Studio Express

Vous pouvez télécharger le code source, ou alors juste l’exécutable.

Vous pouvez utiliser les codes sources comme base pour créer votre propre programme. (Attention : je n’ai pas fait de traitement d’erreur dans les deux programmes).

Si vous avez aimé cet article, partagez-le avec vos amis en utilisant les boutons ci-dessous :
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInBuffer this pageFlattr the authorEmail this to someone

You may also like...

4 Responses

  1. Chasal dit :

    Si tu es en France, le circuit électrique est en 20 ampères habituellement. Ton relais est à 10 ampères.
    Ça risque de cramer, et évidemment, cela se produira au pire moment.
    Achète un relais adapté ou alors n’utilise celui là que pour l’éclairage, qui est habituellement à 10 ampères pour du 220v.
    J’espère avoir évité un sinistre.
    Cordialement.

  2. Jean dit :

    Odessa ile aynı iklime sahip olurduk tabi enlem farkından dolayı birkaç derece daha sıcak olurduk işin kötü tarafı DE;1e82&7Klerd#n mahrum kalırdık. Yorumum İstanbul için

  3. Nicolas dit :

    Je dois bosser la dessus pour mon projet de bac, pourrais-tu expliquer ton programme, enfin commenter les différentes parties de ton programme que je suis puisse comprendre ton programme. Merci d’avance !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *