Pages: [1]   Go Down
Author Topic: Domotique : mon premier projet... Vive arduino !  (Read 2872 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous !

 Je voulais partager avec vous mon tout premier projet Arduino smiley
 C'est une approche de domotique contrôlable par internet...



 Je trouve ce matériel complétement incroyable. Je rêve de pouvoir faire ce que permet de faire un Arduino depuis tout gamin smiley-wink
 Je n'ai pas de connaissances poussées en électronique, je suis plus banché programmation.

 Pas beaucoup d’intérêt, juste une envie de partager mon enthousiasme !

A très bientôt,

Zewho
« Last Edit: February 02, 2011, 03:06:42 am by zewho » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Ca a l'air intéressant.

Est ce que tu peux nous en dire plus sur ce que tu as utilisé ?
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Paris
Offline Offline
Full Member
***
Karma: 2
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut

Beau projet.

J'aimerais savoir ce que tu as utilisé pour faire ton interface ?  smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci à vous pour vos retours,

J'ai utilisé un arduino avec 5 LED et 5 résistances 330ohms pour le hardware.

Pour le soft, le principe est simple : La page php publie la demande de l'utilisateur dans 5 fichiers txt sur le serveur, un script python lit ces valeurs dans les 5 fichiers et commande l'arduino par le biais d'un lien serial. L'arduino reçoit en fait des valeurs qu'il interprète en "allumage / extinction".
« Last Edit: January 28, 2011, 09:23:44 am by zewho » Logged

Paris
Offline Offline
Full Member
***
Karma: 2
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci à vous pour vos retours,

J'ai utilisé un arduino avec 5 LED et 5 résistances 330ohms pour le hardware.

Pour le soft, le principe est simple : La page php publie la demande de l'utilisateur dans 5 fichiers txt sur le serveur, un script python lit ces valeurs dans les 5 fichiers et commande l'arduino par le biais d'un lien serial. L'arduino reçoit en fait des valeurs qu'il interprète en "allumage / extinction".

Salut,

Merci pour la réponse.

C'est du bon boulot.  smiley-grin

C'est pour cela qu'il y a un petit délai entre l'envoi de l'instruction et l'exécution dans ce cas. Genre 1 ou 2 secondes ..?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Concernant la latence, elle est prévue en fait, j'ai rajouté des time sleep pour éviter un erreur qui survenait et qui annonçait que l'hôte avait fermé la connexion !
Sans ces time sleep (5 sec, 1 sec par lecture de fichier), le temps de latence est inférieur à 1 seconde, mais le script plant dans les 25 min.
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 30
Noobz
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

Pour un premier projet c'est époustouflant !!!

Serait il possible de nous poster les pages de code pour esseyer d'en apprendre un peu plus si cela ne derrange pas ?

Ca pourrait etre utile dans l'elaboration de mon projet d'hexapode pour le faire fonctionner a  distance smiley

Merci de ton aide et bonne continuation

(je n'ai pas encore reçu mon arduino qui est ENFIN en livraison ^^
Logged

Interressant l'Arduino smiley Il y a largement matiere a faire hehe

Paris
Offline Offline
Full Member
***
Karma: 2
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Concernant la latence, elle est prévue en fait, j'ai rajouté des time sleep pour éviter un erreur qui survenait et qui annonçait que l'hôte avait fermé la connexion !
Sans ces time sleep (5 sec, 1 sec par lecture de fichier), le temps de latence est inférieur à 1 seconde, mais le script plant dans les 25 min.

Bonjour,

AH ok , merci pour l'info. smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut !
Alors concernant le code, je suis auto-didacte, et il est sale de chez sale, en fait je me contente d'un résultat qui fonctionne et avec mes études dans un tout autre domaine, je n'ai pas le temps que je voudrais pour pouvoir me perfectionner... Merci donc d'être indulgent smiley-wink

@mcvovol54 : J'ai tenté un autre projet, mais à base de legos mindstorm nxt. C'est un robot pilotable depuis une appli facebook... Le téléphone reçoit les instructions par le biais de la 3G, et pilote le robot par bluetooth, peut-être que cela peut te donner des idées pour ton hexapode (J'ai vu le projet, ambitieux, et très intéressant smiley-wink tu peux trouver une vidéo à cette adresse :



Concernant ma gare pilotée par le net

Le script python (qui tourne sur le PC, connecté à l'Arduino en USB par le biais du port com9)
Code:
#-*- coding: cp1252 -*-
import urllib
cmd = []
print "connecté"
print "Le programme tourne"
import serial


a = 0
b = 0
c = 0
d = 0
e = 0
f = 0

def recup():
        
                


  
                a1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum1.txt") ## Récup des valables; 1 fichier par led
                
                b1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum2.txt")
                
                c1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum3.txt")
                
                d1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum4.txt")

                e1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum5.txt")

                f1 = urllib.urlopen("http://www.lucboutier.com/arduino/stop.txt")## Cette variable permet de couper le script, sinon, tuer le script sur le PC laisse le port com9 oqp
                time.sleep(1)
                if f1.readline == "STOP\r\n":
                        print 'killed !'
                        ser.close()
                if a1.readline != "":
                        a = a1.readline()
                        if a == "1a\r\n":
                                ser.write("a")

                        if a == "1e\r\n":
                                ser.write("b")
                if b1.readline != "":            
                        b = b1.readline()
                        if b == "2a\r\n":
                                ser.write("c")

                        if b == "2e\r\n":
                                ser.write("d")
                if c1.readline != "":            
                        c = c1.readline()
                        if c == "3a\r\n":
                                ser.write("e")

                        if c == "3e\r\n":
                                ser.write("f")
                if d1.readline != "":              
                        d = d1.readline()
                        if d == "4a\r\n":
                                ser.write("g")
                        if d == "4e\r\n":
                                ser.write("h")

                if e1.readline != '':
                        e = e1.readline()
                        if e == "5a\r\n":
                                ser.write("i")
                        if e == "5e\r\n":
                                ser.write("j")

                recup()
print "ouverture du port"
ser = serial.Serial()
ser.setPort("COM9")
ser.baudrate = 57600
ser.close()
ser.open()
print "port ouvert"
recup()
if (ser.isOpen()):
        recup()

Et le code qui tourne sur le arduino, non commenté

Code:

void setup() {                
  Serial.begin(57600);
  pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
      pinMode(11, OUTPUT);
        pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
      pinMode(7, OUTPUT);
        pinMode(6, OUTPUT);
                pinMode(2, OUTPUT);
  
}

void loop() {
  if(Serial.available() >= 0){
    switch( byte( Serial.read() )) {
      case 'a':
          digitalWrite(13, HIGH);  
          break;
      case 'b':
          digitalWrite(13, LOW);   // set the LED on
          break;  
      case 'c':
          digitalWrite(12, HIGH);  
          break;
      case 'd':
          digitalWrite(12, LOW);   // set the LED on
          break;  
      case 'e':
          digitalWrite(11, HIGH);  
          break;
      case 'f':
          digitalWrite(11, LOW);   // set the LED on
          break;  
      case 'g':
          digitalWrite(10, HIGH);  
          break;
      case 'h':
          digitalWrite(10, LOW);   // set the LED on
          break;  
          
      case 'i':
          digitalWrite(9, HIGH);  
          break;

      case 'j':
          digitalWrite(9, LOW);   // set the LED on
          break;  
      case 'k':
          digitalWrite(8, HIGH);  
          break;
      case 'l':
          digitalWrite(8, LOW);   // set the LED on
          break;  
      case 'm':
          digitalWrite(7, HIGH);  
          break;
      case 'n':
          digitalWrite(7, LOW);   // set the LED on
          break;  
      case 'o':
          digitalWrite(6, HIGH);
          break;
      case 'p':
          digitalWrite(6, LOW);   // set the LED on
          break;  
          
      case 'q':
          digitalWrite(2, HIGH);  
          break;
      case 'r':
          digitalWrite(2, LOW);   // set the LED on
          break;  
    }


  }
}

« Last Edit: January 29, 2011, 03:35:14 am by zewho » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je ne sais pas quelle est ton aisance avec Python, car autrement il existe Processing, qui utilise une IDE dont l'interface est quasi la même que pour Arduino et les références sont presque similaires.(avec plein de librairies dispos)
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour le tuyau, je regarde ça ASAP !
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous !

 Je vais prendre le temps de compléter ce projet. J'ai découvert un outil génial (Et oui, les bleu-bites s’étonnent de tout smiley) : les relais !
 Donc je vais conserver la partie gare du projet, remettre la page de contrôle en ligne, et ajouter la possibilité de piloter un train électrique (Sur du 12 volts) toujours depuis mon site. J'espère mener à bien cet ajout d'ici dimanche, et vous serez les premiers informés de la disponibilité de la page web smiley

A bientôt !

Zewho
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 30
Noobz
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est sympa de nous tenir informé de ce qui arrive dans ton projet et je te remerci de m'avoir donné des information.

Pour ma pars je me suis renseigné pour mon appli iphone mais visiblement ca sera mieu que je passe par un ordi pour le faire en ayant programmé la chose en C++ smiley et en plus je pourrai afficher plus d'info a l'ecran hihi ^^

En tout cas félicitation pour ton projet
Logged

Interressant l'Arduino smiley Il y a largement matiere a faire hehe

Pages: [1]   Go Up
Jump to: