Domo'Duino, la domotique par Arduino (NEWS: Modules 2.4ghz )

Salut,
la fonction ES_fill_tcp_data_p n'eccepte que du texte et encore ecrit directement comme:

         plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<p>temperature chambre = "));

L'idée c'est de convertir ta valeur en texte et utiliser la boucle suivante:

         plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<p>temperature chambre = "));
         i=0;
        while (i<=a) {  // a est le nombre de caracteres
                buf[TCP_CHECKSUM_L_P+3+plen]=chaine[i];  
                plen++;
                i++;
        }

A++

olivbout:
Salut,
la fonction ES_fill_tcp_data_p n'eccepte que du texte et encore ecrit directement comme:

         plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<p>temperature chambre = "));

c'est PSTR() (PROGMEM) qui n'accepter que du contant char[] il me semble, quand tu fais ceci par exemple PSTR("blablabla") c'est comme si tu y mettais un const char[] ta chaine est non modifiable (const).
Donc sans celle ci tu peux parfaitement y intégrer une chaine de caractère comme chico le fait avec la chaine baseurl qui est une simple chaine;

static char baseurl[]="http://blabla.dyndns-home.com/";
plen=es.ES_fill_tcp_data(buf,plen,baseurl);

olivbout:
L'idée c'est de convertir ta valeur en texte et utiliser la boucle suivante:

         plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<p>temperature chambre = "));

i=0;
        while (i<=a) {  // a est le nombre de caracteres
                buf[TCP_CHECKSUM_L_P+3+plen]=chaine[i]; 
                plen++;
                i++;
        }




A++

On ne fais que rajouter des caractères au buffer, c'est ce que fait déjà ES_fill_tcp_data il me semble et ça ne résous pas le problème de flotant -> chaine.
Ceci devrait marché.

char[5] bufFloat;
float temp = tu récupères la température de la chambre;

//converti une flottante en chaine dtostrf(flottante, taille_min . compris , précision = nombre derrière la virgule, la chaine);
dtostrf(temp,5,2,bufFloat)

plen=es.ES_fill_tcp_data(buf,plen, bufFloat);

Exact, pour la température cela semble bon sauf qu'il faut déclarer la variable comme ca:

char bufFloat[5];

a++

Vi c'est l’habitude de java j'ai fais un mélange. :grin:

ouahhh :astonished: calmez-vous j'ai pas tous suivi la :grin:

Non je rigole, merci a vous je vais essayer de voir avec ça, j'avais déjà commencé un truc du genre

Je ne pige pas cela

float temp = tu récupères la température de la chambre;

Je met quoi du coup après le "=" ? je met "float temp = bufFloat" ?

thx a lot

Je me répond tous seul ^^

char bufFloat[5];
float temp;
int tempPin = 0;

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

void loop()
{
  temp = analogRead(tempPin)*0.48828125;
  delay(1000);
  

}

dtostrf(temp,5,2,bufFloat)

plen=es.ES_fill_tcp_data(buf,plen, bufFloat);

J'ai fait ça mais erreur au niveau de ça

dtostrf(temp,5,2,bufFloat)

a par le ";" je ne vois pas car chez moi ca a marché...

A part la déclaration de variable ne rien mette en dehors des fonctions setup, loop ou autre fonction.

Si c'est un exemple que tu veux tester.

char bufFloat[5];
float temp;
int tempPin = 0;

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

void loop()
{
  temp = analogRead(tempPin)*0.48828125;
  dtostrf(temp,5,2,bufFloat);
  Serial.print("temp:");
  Serial.println(bufFloat);

  delay(1000);
}

le plen=es.ES_fill_tcp_data(buf,plen, bufFloat); n'est valable que pour ton shield, lorsque tu le mettras dans ta page.

J'ai réussit :smiley: mais par contre j'ai un MEGA bug :astonished:

Ce code ci => http://only.dommel.be/docs/domo26.pde

Qui fonctionnais au poil ne fonctionne plus :astonished: j'ai de nouveau le syndrome de la LED clignotante et l'interface et le bouton ne fonctionnent plus :astonished: WTF !!!!

Un exorciste ? :grin:

Non je vais tous balancer a la poubelle ]:smiley: au moment ou l'interface est OK, l’interrupteur fonctionne ainsi que la sonde de température j'ai un bug inconnu qui survient :astonished: je la laisse refroidir je vais voir ça un peu plus tard !

Ouah le bug de la mort :astonished:

Quand j’appuie sur l’interrupteur ça clignote, par contre mon poussoir est devenu sensitif Oo j'approche juste ma main a 2cm et op la led s'allume ... je remet ma main a 2cm et op ça s’éteint :astonished: suis-je possédé par le démons :fearful:

J'étais pas loin, il te faut un exorcisme :stuck_out_tongue_closed_eyes:
Enlève le fil de la broche analogique sur lequel ton interrupteur est pour voir.

Je peut débrancher l'entrée analog du LM35, de l'inter et le 5V et ça clignote toujours :astonished:

Il n'y a que en enlevant le GND que ça stop de clignoter ( un peut normal quand même ^^ )

Enfin bon hormis ce bug du jours, tout fonctionne

![](http://i45.servimg.com/u/f45/11/05/63/75/arduin19.jpg[//img]

merci)

Qu'est-ce que je suit bête :grin:

J'avais un défaut de "terre" en faite et donc mes entrée analogique devenais hyper sensible ! du coup j'ai inventer les boutons poussoir tactiles avec mes conneries ^^

Voila comment j'avais câblé mon poussoir

  • 5Volt -> poussoir -> GND
    -> Résistance -> GND

au lieu de

  • 5Volt -> poussoir -> GND
    -> Résistance -> GND

-> Résistance -> GND

Le problème était donc chicodiene et non arduiniene :grin:

Oui la partie software commence a être pas mal, encore deux ou trois détails au niveau du désign et je vais pouvoir attaquer la partie hardware ! d’ailleurs ma duemilanove commence a être juste en "analog-in" .... je vais donc voir s'il existe des composants pour augmenter ça ou alors il va falloir passer a la MEGA :sweat_smile:

Il me reste aussi a tester une solution sans-fil pour envoyer les commandes. Donc soit un module RF(tx) + arduino en émetteur et un module RF(rx)+standalone en réception ou alors l'utilisation de TX2B et RX2B et donc plus besoins d'arduino sur la partie réception !

thx

On my bog => http://chicowebsite.free.fr/

chicotore:
On my bog => http://chicowebsite.free.fr/

Super, du bon boulot encore, ça fait plaisir à lire et à voir ! :slight_smile:

PS : La première image ne s'affiche pas chez moi... Par contre je peux l'ouvrir avec le lien direct :roll_eyes:

P**** j'ai encore un nouveau bug et cet fois c'est pas une erreur de montage j'ai rien touché :fearful:

Au même moment j'ai 0.27V au multimètre donc 27°C, ce qui correspond a la bonne température ambiante !!

Voila ce que j'ai dans le serial moniteur:

Analogread(pin15) =>229
Temp= pin15*0.4882 => 112.30

J'ai cassé mon Arduino ? =(