Pages: [1]   Go Down
Author Topic: Stantor  (Read 533 times)
0 Members and 1 Guest are viewing this topic.
ITTEVILLE
Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous !

Mon nouveau projet est de brancher en parallèle sur le contact du thermostat qui régule mon chauffage un contact à fermeture du shield relais.
Ceci pour pouvoir forcer le démarrage de mon chauffage, soit par prise en main avec logme in de l'ordinateur qui est branché par l'intermédiaire du shield ethernet, soit par mon smartphone Androïd, pour quile fasse chaud quand j'arrive.

J'ai essayé le tuto de Skywodd avec Python et TestDuino, ça fonctionne.

J'ai commencé à regarder Stantor, superbe réalisation, mais je bute sur une erreur php ligne 25:

Voici le code php stantor:

Code:
<?php
// Programme de test de la carte Arduino Duemilanove, Uno ou Mega avec carte Ethernet W5100.
// Test program for Arduino Duemilanove, Uno or Mega board with Ethernet shield W5100.
// version 0.3  2011-02-11
//
$adress_IP="192.168.0.35:4832";//adresse IP et port de la carte Arduino Duemilanove.
$key="w8Fmt4UgrS";//clé de chiffrement (cryptage).
//
//identifiant carte
$ident="UN01";//UN00, UN01...UN99 ou DU00, DU01...DU99 ou ME00, ME01...ME99
//
//Programme principal  - main.
set_time_limit(0);
ob_implicit_flush();
error_reporting(E_ALL);
$timeout=5;//time_out sur la réception d'un message en seconde.
$arr_key str_split($key);
$nb_key=0;
$key_use="Y";//Y ou N
//Type de carte DU pour Duemilanove, UN pour Uno, ME pour Mega
//Boucle infinie.
while (true) {
//
echo ("\nSaisir un caractère - Enter a character (I= informations, D= Digital Output pin 1 Value 1, E= Digital Output 1 Value 0, A= Analog Output-PWM pin 5 Value 200, B= Analog Output-PWM pin 5 Value 10, Q = Quit program) = ");
fscanf(STDIN"%s\n"$char_saisi);
//echo ("caractère =".$char_saisi."\n");
if (($char_saisi=='I') or ($char_saisi=='i')){
($out "(".$ident.")");
}
else if (($char_saisi=='D') or ($char_saisi=='d')){
($out "(".$ident.";OD;01;1)");
}
else if (($char_saisi=='E') or ($char_saisi=='e')){
($out "(".$ident.";OD;01;0)");
}
else if (($char_saisi=='A') or ($char_saisi=='a')){
($out "(".$ident.";OP;05;200)");
}
else if (($char_saisi=='B') or ($char_saisi=='b')){
($out "(".$ident.";OP;05;10)");
}
else if (($char_saisi=='Q') or ($char_saisi=='q')){
exit;
}
else {
echo ("caractère inconnu - unknown character\n");
exit;
}
try{
// Création d'une socket Inet
$fp stream_socket_client("tcp://".$adress_IP$errno$errstr$timeout);
if (!$fp) {
throw new Exception("Ouverture socket impossible.$errstr ($errno)");
}
else {
echo ("\nCommande - Control=".$out."\n");
if ($key_use !="N"){
$size=strlen($out);
$out_array=str_split($out);
unset($array_valeur_code);
//$array_valeur_code="";
$nb_key=0;
for($i 0$i $size$i++){
$array_valeur_code[$i]=($out_array[$i]) ^ ($arr_key[$nb_key]);
$nb_key=$nb_key+1;
if ($nb_key>=10$nb_key=0;
}
$out=implode($array_valeur_code);
//echo("\nvaleur codée".$out."\n"); 
}
// Préparation stream.
stream_set_blocking($fp,0); 
stream_set_write_buffer($fp,20);
stream_set_timeout($fp,$timeout);
$info stream_get_meta_data($fp);
//Ecriture des données dans le stream
for ($written 0$written strlen($out); $written += $fwrite) {
$fwrite fwrite($fpsubstr($out$written));
if (($fwrite === false) || ($info['blocked'] === true)) {
throw new Exception("Erreur ecriture stream");
}
}
//Lecture des données reçues.
$buffer_recu "";
$buffer="";
stream_set_timeout($fp,$timeout);
$info stream_get_meta_data($fp);
while (!feof($fp) && (!$info['timed_out'])) {
$buffer_recu=fread($fp,256);
$buffer .=$buffer_recu;
}
//fermeture socket
fclose($fp);
flush();
if ($info['timed_out']) {
$msgerror=("Time out \n");
throw new Exception($msgerror);
}
else{
//echo("\nEn codee=".$content."\n"); 
//test si déchiffrage à faire.
if ($key_use !="N"){
$nb_key=0;
$size=strlen($buffer);
$array_valeur="";
$arr_buf str_split($buffer);
//echo ("\nlongueur_buffer=".$size);
//print_r($arr_buf);
for($i 0$i $size$i++){
$array_valeur[$i]=($arr_buf[$i]) ^ ($arr_key[$nb_key]);
$nb_key=$nb_key+1;
if ($nb_key>=10$nb_key=0;
}
$buffer=implode($array_valeur);
}
}
//Affichage du message en clair.
echo("\nMessage reçu - Message received = ".$buffer."\n");
}
}
catch(Exception $e){
echo ("Echec socket : ".$e->getMessage());
sleep(2);
fclose($fp);
unset($fp);
}
usleep(1000000);// delai de la boucle
}
?>


Voici le message d'erreur :




Wamp server 2.2
Apache 2.2.21
Php 5.9.8
MySql 5.5.16

Merci pour votre aide !
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Sans même regarder le code je remarque STDIN/fscanf, et c'est codé en php ...
Donc vu l'erreur c'est un programme php en ligne de commande, qui a était réalisé pour tourner sans interface web.

Il te faut donc l'extension cli pour php :
http://www.siteduzero.com/tutoriel-3-33412-executer-php-en-cli-console.html
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

ITTEVILLE
Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci,

Je vais fouiller dans cette voie.
Logged

Pages: [1]   Go Up
Jump to: