Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« on: March 18, 2011, 02:40:08 pm » |
Bonjours a tous, Et bien voila après moulte question posé sur le forum, je vient vous présenter mon premier projet a peut prêt bien ficelé  Il s'agit donc de gérer l’allumage et l'extinction de 2 LED a partir d'une interface web. L'arduino est relier en USB au PC ou tourne un script python. Le principe est assez "basique" ! quand j'appuis sur un bouton de mon interface web ça écrit une variable dans un fichier .txt Egalement sur mon FTP. Le script python "observe" en permanence ce fichier.txt et envoi les variables a l'arduino qui les transforme en "allumer éteindre led rouge led bleu" ! C'est pas grand chose pour le moment mais comme je découvre tout juste python ( je doit être a 4H de programmation la dessus a tout casser ), l'arduino ( 2 semaines ), le php (depuis cette après midi que je connais ^^) et compagnie c'est pas facile  Prochaine étape je vais essayer de récupérer les infos d'un capteur de température sur ma page "FTP" ou alors je commence a faire joujou avec des relais et du 220V  Vidéo (iphone+lampe allumé = pas top dsl ^^ ) :
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #1 on: March 19, 2011, 12:29:16 pm » |
bravo chicotore J'aurai sans doute besoin de tes conseils plus tard ,car pour le moment je ne possede pas d'internet shield ni de wifi shield . j'espere que tu pourras me venir en aide si besoin est  car ton projet est interressant . @+ William P.S: en esperant que tu nous fasse un truc géant dans le meme genre .
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #2 on: March 19, 2011, 05:46:40 pm » |
car pour le moment je ne possede pas d'internet shield ni de wifi shield je n'en est pas non plus d'ou l'utilisation d'un PC "serveur" ou est relier l'arduino ^^
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #3 on: March 20, 2011, 05:31:27 am » |
Code python: import feedparser import serial import time import urllib
b = 0 r = 0
def recup():
b1 = urllib.urlopen("http://modelismebychico.free.fr/bleu.txt") ## Récup des valables; 1 fichier par led r1 = urllib.urlopen("http://modelismebychico.free.fr/rouge.txt") ## Récup des valables; 1 fichier par led
if b1.readline != "": b = b1.readline() if b == "a": ser.write("a") print b
if b == "b": ser.write("b") print b
r = r1.readline() if r == "c": ser.write("c") print b
if r == "d": ser.write("d") print b
recup() print "ouverture du port" ser = serial.Serial() ser.setPort("COM3") ser.baudrate = 57600 ser.close() ser.open() print "port ouvert" recup() if (ser.isOpen()): recup()
Code Arduino: // led wired + to pin 12, resistor to positive +5v
int rouge = 13; // Output connected to digital pin 12 int bleu = 6; // Output connected to digital pin 12 int val; // Value read from the serial port void setup() { pinMode(rouge, OUTPUT); pinMode(bleu, OUTPUT); Serial.begin(9600); Serial.flush();
}
void loop() { // Read from serial port if (Serial.available()) { val = Serial.read(); Serial.println(val, BYTE); digitalWrite(rouge, LOW); digitalWrite(bleu, LOW); if (val == 97) // { digitalWrite(rouge, HIGH); } if (val == 98) // { digitalWrite(rouge, LOW); } if (val == 99) // { digitalWrite(bleu, HIGH); } else if (val == 100) // { digitalWrite(bleu, LOW); } } }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #4 on: March 20, 2011, 12:21:51 pm » |
Salut j'ai quelques questions (certainement idiotes ) mais je les pose , quels sont les avantages (hors mis le non investissement d'une carte ethernet shield) et les inconvenients de ton systeme ?? Le pilotage (des leds pour le moment) peut-il etre fait à distance (NO AT HOME  d'un PC ou Mac ) ?? et une petite derniere , comment doit-on procéder pour effectuer une page ( ton exemple ) , faut-il des logiciels spécifiques ,un ébergement spéciale par un fournisseur d'accès ?? car PYTHON hors mis le nom ,je ne connais pas du tout , mais je suis curieux . pourquoi ne pas avoir pris Processing ou autre . @+ et merci William
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #5 on: March 20, 2011, 01:34:25 pm » |
Salut, quels sont les avantages (hors mis le non investissement d'une carte ethernet shield) et les inconvenients de ton systeme ?? Bah en fait j'ai fait ça car pour le moment je n'est pas vraiment envie d’investir dans un ethernet shield. Mais il faut savoir que même avec un ethernet shield j'ai lu qu'il fallait un PC comme serveur pour stocker les "images" et autres si on fait une interface web un peu poussé car la mémoire de l'ethernet shield est limité  Le pilotage (des leds pour le moment) peut-il etre fait à distance (NO AT HOME d'un PC ou Mac ) ?? Oui c'est bien ça le but ^^ mon interface web est accessible partout dans le monde (waouhh c'est fort internet quand même ^^ ) donc tant que le PC ou est relier l'arduino est allumé je peut gérer mon allumage de partout par le biais de mon netbook, de mon pc fixe, de mon iphone, ipod touch, android mobile .... Tous ce qui se connecte au NET peut gérer les LED a distance ! et une petite derniere , comment doit-on procéder pour effectuer une page ( ton exemple ) , faut-il des logiciels spécifiques ,un ébergement spéciale par un fournisseur d'accès ?? car PYTHON hors mis le nom ,je ne connais pas du tout , mais je suis curieux . pourquoi ne pas avoir pris Processing ou autre . Ma page en fait c'est un truc tout moche en HTML et PHP fait a la va vite pour tester le système. Tu peut utiliser Dreamweaver pour créer des pages si tu ne connais pas le HTML, PHP et compagnie ... mais sinon on trouve des exemples un peu partout sur le net. J'ai fait ma page en récupérant des morceaux de code un peu partout, surtout pour la partie PHP pour écrire une variable dans mon fichier.txt Pour l’hébergement pour le moment j'ai un FTP free. C'est gratuit et ça marche relativement bien mais une fois que j'aurais vraiment commencer le projet je pense heberger mon FTP directement sur le PC serveur ou est relié l'arduino et ou tourne le code PYTHON ! Ça évite d'avoir le .free.fr comme adresse et c'est beaucoup plus flexible pour transférer les fichiers. A vrai dire PYTHON je vient de découvrir ça il y a même pas 2 semaines. J'avais essayer PROCESSING mais en fait j'ai trouver plus de tuto pour PYTHON sur internet donc je suis resté la dessus mais pour être franc en PYTHON j'y connais quedal ^^ merci +++
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #6 on: March 20, 2011, 02:18:07 pm » |
re-salut C'est moi qui te remercie  Car quand j'ai vu ton 1er post (domotique ,Python ) j'ai tilté ,mais j'avoue , quand j'ai vu toutes les lignes de code ,j'ai décroché. ( ce n'est pas un reproche ,mais je me suis dit ,un peu trop complexe pour ma petite tete  ) Pardonne moi ,mais encore quelques questions ( curiosité oblige ) , Qu'entends-tu par PC serveur ?? Peut-on faire une petite interface sous Flash (j'ai un peu bossé avec il y a un moment) ,et ensuite prendre la meme procedure ( c'est à dire suivre le cheminement de création de page Web sur le fournisseur d'accès ) ?? Procedure d'ailleur ,que j'ai déjà fait il y a 7-8 ans ,je ne sais meme plus comment faire ,mais pas grave  .je dis ça car à l'époque c'etait club-internet (très facile ) NOW SFR ,leur interface est trop bordelique (excuse) . je suppose que la phase la plus délicate est d'envoyer les valeurs et de déclarer les bonnes variables ?? P.S: en tout cas ton projet est génial ,pouvoir déclencher des éléments de chez-soi à distance (internet) c'est géant ,avec quelques CAM en plus  , etonnant qu'il n'y ai pas eu plus de personne sur ce post ?? @+ William
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #7 on: March 20, 2011, 02:39:18 pm » |
Re, Tient voila mon code PHP+HTML pour l'interface Web si tu veut  Elle parait complexe mais en fait si tu regarde bien il y a 4 fois la même chose car il y a 4 bouton ! j'ai mis en rose la partie PHP qui fait que quand tu appuis sur le bouton ça ecrit une variable dans un fichier texte. Ici la variable est "a" dans le fichier "bleu.txt". <html> <body> <H1 ALIGN=CENTER> Domotique by Chico's </H1> <br/><H3 ALIGN=CENTER> LED rouge </H3> [color=pink]<?php $fichier="bleu.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton1'])) { //if(is_file($fichier)) unlink($fichier); //si le fichier existe : suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments $ouverture=fopen("$fichier","w"); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu'en écriture et unlink devient inutile car le fichier est vidé automatiquement fwrite($ouverture,"a"); // ecriture fclose($ouverture); // fermeture du fichier echo ' '; // Affichage validation } ?>
<form method="post" action=""> <!-- j'ai modifié action pour qu'il soit compatible peut importe le nom de la page-->
<center><br/><input type="submit" name="boutton1" value="Allumer"><input type="submit" name="boutton2" value="eteindre"></center> </form> <!-- retour au code HTML --> </body> </html>[/color] <html> <body> <center><?php $fichier="bleu.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton2'])) { //if(is_file($fichier)) unlink($fichier); //si le fichier existe : suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments $ouverture=fopen("$fichier","w"); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu'en écriture et unlink devient inutile car le fichier est vidé automatiquement fwrite($ouverture,"b"); // ecriture fclose($ouverture); // fermeture du fichier echo ' '; // Affichage validation } ?>
<form method="post" action=""> <!-- j'ai modifié action pour qu'il soit compatible peut importe le nom de la page-->
</form> <!-- retour au code HTML --> <BODY BGCOLOR="#B5E655"> </body> </html> <html> <body> <br/><H3 ALIGN=CENTER> LED bleu </H3> <?php $fichier="rouge.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton3'])) { //if(is_file($fichier)) unlink($fichier); //si le fichier existe : suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments $ouverture=fopen("$fichier","w"); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu'en écriture et unlink devient inutile car le fichier est vidé automatiquement fwrite($ouverture,"c"); // ecriture fclose($ouverture); // fermeture du fichier echo ' '; // Affichage validation } ?>
<form method="post" action=""> <!-- j'ai modifié action pour qu'il soit compatible peut importe le nom de la page-->
<center><br/><input type="submit" name="boutton3" value="Allumer"><input type="submit" name="boutton4" value="eteindre"></center> </form> <!-- retour au code HTML --> </body> </html> <html> <body> <center><?php $fichier="rouge.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton4'])) { //if(is_file($fichier)) unlink($fichier); //si le fichier existe : suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments $ouverture=fopen("$fichier","w"); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu'en écriture et unlink devient inutile car le fichier est vidé automatiquement fwrite($ouverture,"d"); // ecriture fclose($ouverture); // fermeture du fichier echo ' '; // Affichage validation } ?>
<form method="post" action=""> <!-- j'ai modifié action pour qu'il soit compatible peut importe le nom de la page-->
</form> <!-- retour au code HTML --> <BODY BGCOLOR="#B5E655"> </body> </html> Qu'entends-tu par PC serveur ?? J'entend par "PC serveur" le PC auquel est connecté en USB la carte arduino et sur lequel tourne le code PYTHON qui analyse les variables . En gros mon "PC serveur" joue le role d'ethernet shield . Peut-on faire une petite interface sous Flash (j'ai un peu bossé avec il y a un moment) ,et ensuite prendre la meme procedure ( c'est à dire suivre le cheminement de création de page Web sur le fournisseur d'accès ) ?? Procedure d'ailleur ,que j'ai déjà fait il y a 7-8 ans ,je ne sais meme plus comment faire ,mais pas grave .je dis ça car à l'époque c'etait club-internet (très facile ) NOW SFR ,leur interface est trop bordelique (excuse) . En fait je sait pas FLASH je connais pas  Mais la procédure pour faire une page internet assez rapidement c'est de taper son code dans le bloc note, l'enregistrer en .php et ensuite tu la transfert sur ton FTP . Apres je sait pas si j'ai repondu a ta question car j'ai pas vraiment compris  désolé ^^ je suppose que la phase la plus délicate est d'envoyer les valeurs et de déclarer les bonnes variables ?? Pour ma part oui car en fait je ne connaissait pas le srcipt PHP pour ecrire des variables dans un fichier.txt mais la je l'est posté donc maintenant c'est bon ^^ Les variables du déclare celle que tu veut. Moi j'ai mis ça a= allumer led bleu b= éteindre led bleu c=allumer led rouge d= éteindre led rouge voila merci ++
|
|
|
|
« Last Edit: March 20, 2011, 02:56:33 pm by chicotore »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #8 on: March 20, 2011, 02:54:38 pm » |
Ouai pardon , comme ton truc me branche ,j'ai tendance à étaler les questions (tel la mitraillette  ) Ne te prends pas la tete , je vais respirer un grand coup , voir de mon coté ,comment faire pour le FTP , et merci pour tes lignes de code , et si j'ai un gros blème , je te demenderai du secour  Merci ,sympa. @+ bonne soirée William
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #9 on: March 20, 2011, 02:55:06 pm » |
Il n'y a pas de souci un forum c'est fait pour partager et discuter  C'est d’ailleurs nos amis du forum Anglais qui m'ont donné la solution pour le script PYTHON pour infos ^^ Il faut donc pas hésiter a aller voir de leurs coté aussi car ils ont une section bien plus remplis que la notre  Pour le FTP si tu veut un free comme moi (alors que je suis avec l'IDEO de Bouygues ^^ ) il faut s'inscrire sur leurs site pour l'offre de internet 56K gratuitement ! tu va recevoir un courier avec des identifiant et tu aura un FTP free gratuit  avec quelques CAM en plus C'est quoi des CAM ? ^^
|
|
|
|
« Last Edit: March 20, 2011, 03:02:03 pm by chicotore »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #10 on: March 20, 2011, 03:28:57 pm » |
oui absolument. CAM (cameras )  J'ai eu aussi des réponses sur le Forum INTERNATIONAL
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #11 on: March 20, 2011, 03:32:04 pm » |
CAM (cameras ) ah oui ok j'y été pas  Je vient d'ailleur de recup une vieille Webcam en plus pour essayer d'avoir un "retour image" sur le ftp 
|
|
|
|
|
Logged
|
|
|
|
|
Chulak
Offline
Full Member
Karma: 0
Posts: 209
|
 |
« Reply #12 on: March 20, 2011, 07:40:47 pm » |
chicotore je viens de regarder ton code php .. dit moi c'est pas le fichier réel ?? car niveau html .. disont que c'est un faux ... dans une page afficher tu ne doit avoir qu'un seul <html></html> et body.. pas en avoir 4 ...
|
|
|
|
|
Logged
|
Aimez la Vie, mais preferez la Mort, car seulement celle-ci vous liberera des tenebres de la Vie.
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 451
|
 |
« Reply #13 on: March 21, 2011, 07:21:23 am » |
Oui bien sur je vais poster un truc qui marche pas ....  fait un copier coller et essaye le dans un navigateur et tu me dira si c'est un faux ou pas  Non sinon c'est clair que pour le moment il est "crade" avec plein de balise HTML partout mais il fonctionne, si quelqu'un veut le rendre clean il n'y a pas de soucis j'accepte avec plaisir  EDIT: tient voila le "faux" http://modelismebychico.free.fr/faux.phpTu peut vérifier le code source c'est bien le même ....
|
|
|
|
« Last Edit: March 21, 2011, 07:25:09 am by chicotore »
|
Logged
|
|
|
|
|
0
Offline
Jr. Member
Karma: 0
Posts: 59
Arduino rocks
|
 |
« Reply #14 on: March 21, 2011, 08:06:02 am » |
Salut Disons que le terme "faux" est mal choisi, en fait il ne respecte pas le langage et ses standards. Le navigateur peut arriver à s'en sortir mais certains pourraient être plus pointilleux et afficher n'importe quoi. Je vais regarder ton code et te proposer le même résultat avec du code plus propre et plus correct si tu veux  (Ce n'est pas une attaque hein, chacun son domaine de compétences on a tous démarré en faisant des erreurs  ) Pour le reste de la discussion, si je peux aider à comprendre un peu le fonctionnement: Interface web (php + HTML/CSS) ==== modifie ====> Fichiers texte <==== lus par ===== Code python === envoie des ordres à ==> Arduino ===== connectée par USB ====> PCIl est effectivement possible de faire une chaîne un peu moins compliquée: L'arduino avec l'Ethernet shield qui va directement lire le fichier texte qui est créé par l'interface Web (PHP ..)L'interface web peut être hébergée chez un fournisseur (Free ou autre) ou sur le PC où est connectée l'arduino si celle-ci reste en USB MAIS cela comporte un problème: Pour que " n'importe quelle machine reliée à internet" puisse y accéder, il faudra ouvrir des ports sur le routeur, donc un accès potentiel à toute la machine s'il y a une faille (et c'est fréquent, notemment quand on débute en code PHP, je débute trop dans ce domaine aussi pour me risquer à cela par exemple) Sans parler du fait qu'il suffit que l'adresse du PC relié à internet soit connue pour que des gens puissent s'amuser avec tes boutons et faire n'importe quoi (tant que ce sont des leds c'est vraiment pas grave, mais si tu mets autre chose .. ) il faudrait au moins mettre un login/mot de passe, mais ça n'est pas infaillible Je conseillerais deux solutions: Un NAS: ils ont souvent un hébergement web intégré disponible, et fait pour héberger des sites (HTML/CSS et PHP), ils sont sécurisés pour que personne n'aille trifouiller autre chose et sont assez simples à mettre en œuvre (il faudra aussi ouvrir l'accès sur le routeur, mais seulement au NAS qui est plus apte à gérer cela) Ou un hébergeur extérieur, donc rester chez Free ou en prendre un autre
|
|
|
|
|
Logged
|
|
|
|
|
|