Go Down

Topic: esp8266...mi sono arenato (Read 2120 times) previous topic - next topic

brunello22

Mi rispondo da solo, ecco il link corretto 
http://arduiniana.org/libraries/pstring/

SukkoPera

Esatto, il download è questo: http://arduiniana.org/PString/PString3.zip.

Il link esatto era comunque presente sulla homepage di Webbino.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

Puso

Purtroppo mi tocca ammetterlo...non sono ancora pronto per Webbino.....oggi ho dovuto ripristinare il PC dopo i vari tentetivi con le librerie.

Però nonostatne tutti i casini che ho combinato(non si carica più lo sketch vuoto..quindi i comandi AT non rispondono più) almeno sono riuscito a fare un piccolo passo in avanti.

Tornando a Blynk (sempre con chiavetta usb)adesso riesco a vedere quando premo il bottone sul telefono....po pero mi sono accorto che se stacco la chiavetta USB e la ricollego,non vedo più niente....finche non ricarico lo Sketch.

SukkoPera

Il bello è che tutto quello che devi fare con Webbino è modificare due righe in sto cavolo di webbino_config.h, poi fa tutto lui.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

Puso

scusami Sukko,ma prima devo prendere confidenza con sto cavolo di modulo ESP...comunque l'ho trovato il file....ma poi ho fatto dei casini ....e siccome non ci saltavo più fuori ho preferito fare un passo indietro........

Puso

Dunque,per il momento credo di aver risolto parte dei problemi in questo modo, innanzitutto ho caricato sul modulo ESP tramite chiavetta un classico esempio Blynk.
Code: [Select]

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = " AUTETICAZIONE";
char ssid[] = "ROUTER DI CASA";
char pass[] = "PASSWORD";

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  Serial.print("V1 ");
  Serial.println(pinValue);
}

BLYNK_WRITE(V3)
{
  byte V_3=(param.asInt());
  Serial.print("V3 ");
  Serial.println(V_3);
}

void setup()
{
 Serial.begin(9600);
 Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}


Poi ho caricato uno sketch differente su arduino Uno
Code: [Select]

#include <SoftwareSerial.h>

SoftwareSerial mySerial(6,5); // RX, TX
char a=Serial.read();
char b=mySerial.read();
char c=0;..........................//SEMBRA INUTILE
void setup()
{
 Serial.begin(9600);
 mySerial.begin(9600);
}

void loop()
{
 if(Serial.available())
    {
     a=Serial.read();
     mySerial.print(a);
    }
 if(mySerial.available())
    {
     b=mySerial.read();
     Serial.print(b,DEC);
   
    }
    c=b;
if(c,DEC==864932481310){Serial.println("ciao...belli");}........//QUI NON DA NIENTE
 
  }
 


I due dispositivi comunicano almeno sembra,il problema è che a parte leggere sul SerialMonitor, non riesco ad utilizzare il dato.

Ho provato ad aggiungere la "char c"si leggendo in caratteri,sia in decimale, insomma facendo un pò di tentativi, ma niente da fare.

Come faccio a sfruttare la variabile char b,oltre che leggerla sul monitor?

Patrick_M

#36
Aug 26, 2018, 12:37 pm Last Edit: Aug 26, 2018, 12:39 pm by Patrick_M
non ho capito il senso di
Code: [Select]

c=b;


e comunque un char non può avere un valore di 5 byte
Code: [Select]

c==864932481310

dal reference:
"The char datatype is a signed type, meaning that it encodes numbers from -128 to 127. For an unsigned, one-byte (8 bit) data type, use the byte data type."
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Puso

in pratica vorrei sfruttare il valore che leggo sulla char b .

il senso di c=b..era la speranza di copiare il valore di b su un altra variabile da poter poi utilizzare per fare altre cose.

Puso

non ho capito :(  :(  :smiley-confuse:  :smiley-confuse:  :'(  :'(

Patrick_M

allora:
Code: [Select]

#include <SoftwareSerial.h>

SoftwareSerial mySerial(6,5); // RX, TX
char a=Serial.read();
char b=mySerial.read();
char c=0;..........................//SEMBRA INUTILE
void setup()


qui sei all'inizio quindi le seriali non sono ancora inizializzate per cui
Code: [Select]

#include <SoftwareSerial.h>

SoftwareSerial mySerial(6,5); // RX, TX
char a;  // la serial non esiste ancora
char b;
char c=0;..........................//SEMBRA INUTILE  // e lo è
void setup()


poi, questo cosa ti stampa?
Code: [Select]

 if(mySerial.available())
    {
     b=mySerial.read();
     Serial.print(b,DEC);
   
    }


e quindi quando fai c=b
c avrà lo stesso contenuto che ti stampava prima.....
ma per ogni azione successiva puoi benissimo usare b per cui
Code: [Select]

if(b=="QualsiasiValoreValidoPerChar"){Serial.println("ciao...belli");}........//QUI NON DA NIENTE
 
  }



per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Puso

Serial.print (b,DEC)..lo avevo messo perche in char mi scrive il valore V1(tasto virtuale di Blynk, ma lo segna verde e non compila), quindi ho provati a mettere i decimali per farlo compilare , infatti compila.

La char c, lo sapevo che era inutile..era giusto per tentare un ultima arrampicata sui vetri.

Il problema è che a anche scritto " if(b=="QualsiasiValoreValidoPerChar"){Serial.println("ciao...belli");} "......non succede nulla.

Patrick_M

si ma che valore ti da
Serial.print (b,DEC)  ??
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Puso

#42
Aug 28, 2018, 05:41 pm Last Edit: Aug 28, 2018, 05:44 pm by Puso
con V1 a 0 da 864932481310

con V1 a 1 da 864932491310

se metto un println me li scorpor in decine

86
49
32
48\49 (questo è il numero che cambia tra acceso e spento dal telefono)
13
10

ma il risultato non cambia, niente scritta"ciao belli"

Patrick_M

non ti sei accorto che non è UN char ma SEI char???? E che quindi o li concateni un un'altra variabile e poi controlli cosa c'è scritto...oppure analizzi esclusivamente se ricevi 48 o 49
praticamente se
if(b=="QualsiasiValoreValidoPerChar")
lo fai diventare
if(b=='48')
o 49 a seconda di cosa vuoi interpretare vedrai che funziona
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Puso

Patrick_M ....SEI UN GRANDE

effettivamente qualke dubbio mi era venuto mettendo il PrintLN, ma non riuscivo ancora a saltarci fuori.

Ora effettivamente "ciao belli" mi appare tutte le volte che appare  49, quindi 1volta se il tasto telefono è 0,
2 volte se il tasto telefono è 1. (infatti la seconda cifra è sempre 49 indipendentemente dallo stato del tasto telefono).

Cosa mi consigli per concatenare le varie char????...al momento mi viene in mente un array, ma mi sembra troppo architettonico per questa cosa.

Grazie comunque per avermi aiutato.

Go Up