Ciao a tutti
dunque mi sono rimesso a tentare di capire il wifi,ho la chiavetta USB con modulo 8266 sopra e ne no un altro con la schedina ad un rele integrata.
Dunque sono quasi a metà dell'opera nel senso che con i comandi AT sono riuscito a collegarmi alla rete wifi di casa(almeno credo).
Poi ho connesso il tutto ad Arduino UNO con questo schetc
void setup()
{
Serial.begin(115200);
mySerial.begin(115200);
while (!Serial) {} // aspetto che abbia aperto il SerialMonitor
Serial.println("Started");
mySerial.write("AT\r\n"); // invio un comando, è necessario inviare un ritorno a capo e una nuova riga
}
void loop()
{
if(Serial.available())
{
char a=Serial.read();
mySerial.print(a);
}
if(mySerial.available())
{
char b=mySerial.read();
Serial.print(b);
}
}
Sembra rispondere(a volte)...poi mi sono arenato.... :smiley-fat: :smiley-fat:
Non so piu come andare avanti,sul web c'è un gran casino in merito e persino trovare la lista dei comandi AT in italiano sembra impossibile ,e persino sul Megatopic mi rimanda a pagine chiuse.
Non ci capisco più niente....ho capito solo che il modulo si deve collegare al mio router di casa(con SSID e PASSWORD) e fin qui credo di esserci riuscito,......poi????? :smiley-confuse: :smiley-confuse: :smiley-confuse: :smiley-confuse:
... poi ... ma tu che ci vuoi fare? Perché, una volta connesso il modulo alla rete ... a che ti serve ? Quale applicazione vuoi realizzare ?
Guglielmo
Ciao Gugliemo
per il momento vorrei solo capire come far (tramite telefono) scattare il rele del primo(quello con rele integrato) e par accendere il pin 13 su ArduinoUNO col secondo.
Ma mi sono arenato ho gia fatto vari tentativi ed a parte capire che i moduli sono funzionanti per il resto non ci salto fuori,sono giorni che guardo sul web,ma sono ad un punto fermo.
Senza stare troppo ad impazzire, ti sei già studiato la libreria Webbino (https://forum.arduino.cc/index.php?topic=433776.0) di SukkoPera ? Funziona anche con gli ESP8266 e fa, con l'esempio "di base", quello che chiedi :D
Guglielmo
no quella mi è sfuggita...domani a mente fresca me la studio.
grazie per il momento.
Ho dato un occhiata...poi ho rinunciato.
Il problema è che ho gia problemi con BLINK(che con un milione di spiegazioni,ci manca solo che appaia qualkuno a casa mia e lo fa lui al posto mio)...ma io non ci salto fuori.
Dunque ho seguito tutto passo passo:
- messo la chiavetta usb con esp8266 nel pc ed aperto una pagina vuota con Void e Loop vuoti e l'ho caricato.
-poi ho fatto i comandi AT di base, con CWMODE=2(per essere sicuro) e mi sono collegato al ruter di casa.
-poi ho scaricato BLINK su telefono.....poi sono andato sul sito col pc(per capire come funzionava),quindi ho fatto un prova e mi sono fatto inviare la Mail con l'autenticazione.
-Ho copiato spudoratamente lo schect in esempio
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "AUTENTICAZIONE ARRIVATA VIA MAIL";
char ssid[] = "RUTER DI CASA";
char pass[] = "PASSWORD DEL RUTER DI CASA";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
E NON FUNZIONA >:( >:( >:( :'( :'( :'( :'(
gia mi appare un errore nell'IDE "error: espcomm_upload_mem failed".
Qualkosa è andato meglio cambiando esempio ed utilizzando ESP su Arduino 1 tramite softserial....qualkosa il monitor seriale mi dava....un mucchio di attesa perche il modulo non si collega(eppure dovrebbe essere gia collegato tramite i precedenti comandi AT).
NON CI CAPISCO PIU NIENTE..... :smiley-fat: :smiley-fat: :smiley-cry: :smiley-cry: :smiley-cry: :smiley-small: :smiley-small: :smiley-small:
Dunque ho rifatto molte prove compresi gli esempi di webbino...tutti falliti.
Però ho notato una cosa rimettendo il modulo sulla chiavetta USB ed riguardando i comandi AT, al comando
" AT*CIFSR" mi dovrebbe dire sia a quale indirizzo IP si è collegato il modulo ESP, sia l'indirizzo IP del modulo stesso,
ma entrambi gli indirizzi sono diversi da quello del mio Ruter di casa (ho controllato con il telefono anch'esso collegato al wifi di casa).
Cosa sto sbagliando???
"error: espcomm_upload_mem failed".
Questo è un errore di upload, nel senso che l'IDE non riesce a caricare il software sull'ESP. Questo probabilmente avviene perché l'ESP non è in flash mode, in cui si entra mettendo GPIO0 a massa all'accensione. Se il tuo adattatore non ha un pulsante per fare questo, dovrai trovare un modo.
Inoltre lascia perdere i comandi AT, all'utilizzatore finale non servono a niente.
Infine nota che il Blynk che usi tu si scrive con la Y, se lo scrivi con la I sembra che parli del comune sketch di test e si crea solo una gran confusione.
Ciao SukkoPera
effettivamente non vedo pulsanti di reset sul mio adattatore (cavolo ne ho comprato uno gia bello e pronto con la sua schedina già montata...e ci devo saldare un pulsante >:( >:( :( :( ).
Lo stesso messaggio di errore mi appare anche quando carico uno schect vuoto(per i comandi AT)....ed anche con gli altri esempi.
In realtà prima lo schetc si carica senza errori.....poi esce l'errore.
L'impressione è che ho avuto è si carichi qualkosa (altrimenti non si caricherebbe neppure lo schetc vuoto..credo).....e se non ricarico uno schetc vuoto dopo aver caricato un qualsiasi esempio non funzionano neppure i comandi AT, per questo credo che in realtà qualkosa si carichi.
Dimenticavo sto usando ( Generic ESP8266 Module, con i parametri di default).
Scusate per il Blink al posto del Blynk.
OKKKK :D
qualkosa è successo......dunque ho stagnato un pulsantino come dicevi SukkoPera....ora qualkosa vedo.
....(ma vi sembra che devono vendere chiavette in cui ci devo saldare un pulsante io???? :smiley-eek-blue: :smiley-eek-blue: )......
In realtà secondo me hai sbagliato acquisto. Avresti dovuto comprare un NodeMCU o un Wemos D1 Mini: sono entrambi ESP con un minimo di contorno che ne facilita l'utilizzo.
OK per il momento grazie
superato questo ostacolo ora sono pronto per impazzire ...andando avanti sul mio percorso con esp.
Ora posso chiudere le 780Mila pagine che avevo aperto sul PC.......non vorrei fare confusione, con le prossime confusioni che faccio.
A proposito una domanda....ho notato che su tutti gli esempi che ho guardato nella libreria di Webbino...l'SSD e la PASS...vengono richiesti dichiarati 2 volte.......cosa ci devo scrivere nella prima richiesta e cosa nella seconda???
Anche qua fai attenzione: SSID e SSD sono due cose diverse, tu stai parlando del primo.
In Webbino metti entrambe le volte lo stesso SSID e password.
Prima di tutto, però, ricorda di modificare webbino_config.h, trova questa parte:
#define WEBBINO_USE_WIZ5100
//~ #define WEBBINO_USE_WIZ5500
//~ #define WEBBINO_USE_ENC28J60
//~ #define WEBBINO_USE_ENC28J60_UIP
//~ #define WEBBINO_USE_ESP8266
//~ #define WEBBINO_USE_ESP8266_STANDALONE
//~ #define WEBBINO_USE_WIFI
//~ #define WEBBINO_USE_WIFI101
//~ #define WEBBINO_USE_DIGIF
e falla diventare così:
//#define WEBBINO_USE_WIZ5100
//~ #define WEBBINO_USE_WIZ5500
//~ #define WEBBINO_USE_ENC28J60
//~ #define WEBBINO_USE_ENC28J60_UIP
//~ #define WEBBINO_USE_ESP8266
#define WEBBINO_USE_ESP8266_STANDALONE
//~ #define WEBBINO_USE_WIFI
//~ #define WEBBINO_USE_WIFI101
//~ #define WEBBINO_USE_DIGIF
cos'è..un trabocchetto????
in pratica metto la riga 1 come descrizione(//Descrizione) e metto quell'altra come definizione togliendo ( // ).
Sto ancora resettando le mie confusioni fino ad oggi......ma appena ho fatto almeno un milione di tentativi per scoprire le differenze, mi faccio risentire.
la metto in STANDALONE(che non so cosa vuol dire ma mi fà ridere).
Diciamo che di tutte quelle righe deve essercene solo una NON commentata. Quando scarichi Webbino ti trovi quella relativo all'Ethernet Shield (WIZ5100). Tu devi commentare quella e scommentare quella relativa all'ESP standalone. Se preferisci, cancella tutte le altre e lascia solo quella.
Standalone vuol dire che c'è solo l'ESP e non un ESP collegato ad un Arduino.
ok.....capito
ma scusa,se volessi(appena ci provo), provare anche a con una Arduino UNO oppure Mega,quale dovrei usare??....
Beh, dipende da come lo vuoi mettere in rete. Se con ESP allora WEBBINO_USE_ESP8266, se con l'Ethernet Shield allora WIZ5100, se con una scheda basata su ENC28J60 allora quella, ecc... Le varie #define dovrebbero essere abbastanza autoesplicative, insomma.
In ogni caso, non te lo consiglio. A meno di particolari necessità (= molti pin), l'ESP8266 è di gran lunga più potente del 328 di Arduino Uno e funziona benissimo da solo.
....allora provo in STENDALONE( :o :P :smiley-lol: :smiley-lol: :smiley-lol: )...poi magari provo da farlo comunicare con una board Arduino tramite Serial.
webbino_config.h..... :smiley-confuse: :smiley-confuse: ..NON lo trovo ho cercato in tutti gli esempi.
Lo trovi nella cartella della libreria. Sotto sketchbook\libraries\webbino insomma.
non la trovo..... :'( :'( .....ho aggiunto la libreria webbino nell'esempio "LedControl..di webbino".....si sono caricate 3 librerie (#include <Webbino.h> #include <webbino_config.h> #include <webbino_debug.h>).....ho aperto anche la cartella dello schetc...emi sono ritrovato dopo aver fatto un po di casino nella pagina di GitHub........ :smiley-roll-blue: :smiley-roll-blue: :smiley-roll-blue: :smiley-cry: :smiley-cry: ma tutte quelle definizioni che hai scritto sopra...non le trovo :smiley-roll-sweat: :smiley-roll-sweat: ..ho cercato pure sotto il letto(tanto lo sò che prima o poi qualkuno mi consiglia di cercarle pure lì) :smiley-kiss: :smiley-eek-blue: :smiley-cry: :smiley-cry: :smiley-cry:
...dunque tento di spiegarmi meglio....
dopo i successi di ieri grazie a Sukko, (aver saldato un pulsante sul mio acquisto sbagliato di adattatore USB) ed esser finalmente riuscito a caricare i primi esempi di Blynk(quello dove appare la scritta e quello dove lampeggia il led azzurro sul dispositivo ESP),......dopo un pò mi sono stancato di guardare la lucina che lampeggiava...quindi mi sono cimentato in altri esperimenti....tutti falliti.
-ho spostato il dispositivo sulla sua schedina relè originale nella speranza che facesse scattare il relè..(fallito).
-ho provato a copiare tanti esempi di Blynk..(falliti tutti)
-ho provato a copiare tanti esempi di Webbino..(falliti tutti)
una cosa che ho notato è, che qualsiasi esempio carico,al momento della VERIFICA, mi appare lo setsso maledetto errore "exit status 1...Errore durante la compilazione per la scheda"QUALSIASI SCHEDA METTO")....e stavo solo Verificando.
Ma Webbino come l'hai installato? Dal Library Manager? Hai scaricato lo zippone e l'hai scompattato manualmente nella cartella delle librerie?
Gli esempi vanno aperti dall'apposito menù, non vanno "copiati".
:o :o ...presente come fanno gli esseri umani mentalmente sani che si cimentano con Arduino????
"...Sketch....includi libreria...Webbino".
:smiley-confuse: :smiley-confuse: :smiley-roll-sweat: :smiley-roll-sweat: :smiley-small: :smiley-small:
Ma se non l'hai installata prima, come può comparirti nel menù "Includi Libreria"?
è installata metto un esempio
/***************************************************************************
* This file is part of Webbino. *
* *
* Copyright (C) 2012-2016 by SukkoPera *
* *
* Webbino is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* Webbino is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with Webbino. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <Webbino.h>
// Instantiate the WebServer
WebServer webserver;
// Instantiate the network interface defined in the Webbino headers
#if defined (WEBBINO_USE_ENC28J60)
#include <WebbinoInterfaces/ENC28J60.h>
NetworkInterfaceENC28J60 netint;
#elif defined (WEBBINO_USE_WIZ5100) || defined (WEBBINO_USE_WIZ5500)
#include <WebbinoInterfaces/WIZ5x00.h>
NetworkInterfaceWIZ5x00 netint;
#elif defined (WEBBINO_USE_ESP8266)
#include <WebbinoInterfaces/AllWiFi.h>
#include <SoftwareSerial.h>
SoftwareSerial swSerial (7, 8);
// Wi-Fi parameters
#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "password"
NetworkInterfaceWiFi netint;
#elif defined (WEBBINO_USE_WIFI) || defined (WEBBINO_USE_WIFI101) || \
defined (WEBBINO_USE_ESP8266_STANDALONE)
#include <WebbinoInterfaces/AllWiFi.h>
// Wi-Fi parameters
#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "password"
NetworkInterfaceWiFi netint;
#elif defined (WEBBINO_USE_DIGIFI)
#include <WebServer_DigiFi.h>
NetworkInterfaceDigiFi netint;
#endif
// Pin to control, make sure this makes sense (i.e.: Use D0 on NodeMCU)!
const byte ledPin = 7;
// Pin state (True -> ON)
boolean ledState = false;
/******************************************************************************
* PAGE FUNCTIONS *
******************************************************************************/
void ledToggle (HTTPRequestParser& request) {
char *param;
param = request.get_parameter (F("state"));
if (strlen (param) > 0) {
if (strcmp_P (param, PSTR ("on")) == 0) {
ledState = true;
digitalWrite (ledPin, HIGH);
} else {
ledState = false;
digitalWrite (ledPin, LOW);
}
}
}
/******************************************************************************
* DEFINITION OF PAGES *
******************************************************************************/
#include "html.h"
const Page page01 PROGMEM = {index_html_name, index_html, ledToggle};
const Page* const pages[] PROGMEM = {
&page01,
NULL
};
/******************************************************************************
* DEFINITION OF TAGS *
******************************************************************************/
#define REP_BUFFER_LEN 32
char replaceBuffer[REP_BUFFER_LEN];
PString pBuffer (replaceBuffer, REP_BUFFER_LEN);
PString& evaluate_onoff_checked (void *data) {
boolean st = reinterpret_cast<int> (data);
if (ledState == st) {
pBuffer.print ("checked");
}
return pBuffer;
}
PString& evaluate_webbino_version (void *data __attribute__ ((unused))) {
pBuffer.print (WEBBINO_VERSION);
return pBuffer;
}
EasyReplacementTag (tagStateOnChecked, ST_ON_CHK, evaluate_onoff_checked, true);
EasyReplacementTag (tagStateOffChecked, ST_OFF_CHK, evaluate_onoff_checked, false);
EasyReplacementTag (tagWebbinoVer, WEBBINO_VER, evaluate_webbino_version);
EasyReplacementTagArray tags[] PROGMEM = {
&tagStateOnChecked,
&tagStateOffChecked,
&tagWebbinoVer,
NULL
};
/******************************************************************************
* MAIN STUFF *
******************************************************************************/
void setup () {
Serial.begin (9600);
Serial.println (F("Webbino " WEBBINO_VERSION));
Serial.println (F("Trying to get an IP address through DHCP"));
#if defined (WEBBINO_USE_ENC28J60) || defined (WEBBINO_USE_WIZ5100) || defined (WEBBINO_USE_WIZ5500)
byte mac[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55};
bool ok = netint.begin (mac);
#elif defined (WEBBINO_USE_ESP8266)
swSerial.begin (9600);
bool ok = netint.begin (swSerial, WIFI_SSID, WIFI_PASSWORD);
#elif defined (WEBBINO_USE_WIFI) || defined (WEBBINO_USE_WIFI101) || \
defined (WEBBINO_USE_ESP8266_STANDALONE)
bool ok = netint.begin (WIFI_SSID, WIFI_PASSWORD);
#elif defined (WEBBINO_USE_DIGIFI)
bool ok = netint.begin ();
#endif
if (!ok) {
Serial.println (F("Failed to get configuration from DHCP"));
while (42)
;
} else {
Serial.println (F("DHCP configuration done:"));
Serial.print (F("- IP: "));
Serial.println (netint.getIP ());
Serial.print (F("- Netmask: "));
Serial.println (netint.getNetmask ());
Serial.print (F("- Default Gateway: "));
Serial.println (netint.getGateway ());
webserver.begin (netint, pages, tags);
}
// Prepare pin
pinMode (ledPin, OUTPUT);
}
void loop () {
webserver.loop ();
}
Boh, se non sai COME l'hai installato non posso aiutarti a capire DOVE è installato. Devi trovare una cartella che si chiama Webbino nel tuo hard disk e dentro ci troverai webbino_config.h, da modificare come detto sopra.
Gli esempi, ripeto, aprili dal menù, non copiarli a mano.
ok...domani ci provo..oggi sono già abbastanza confuso.
grazie per il momento.
PS
il fatto degli umani normarlmente sani non era personale...riguarda quelli come me che vorrebbero imparare.
Domani ci riprovo grazie per ora.
Prova a usare il "Trova file" di Windows e vedi se trova sto benedetto webbino_config.h.
Finché non fai questa modifica, gli esempi di Webbino non compileranno perché proverà a includere la libreria Ethernet, che ovviamente su ESP non esiste.
@sukko.... qual'è la libreria PString corretta ?
Ho appena messo l'IDE 1.8.6 e installato da library manager la webbino.
Da' chiaramente errore perchè manca la PString.h , ho provato a installare questa (https://github.com/johnmccombs/arduino-libraries/tree/master/PString), ma mi da' una sfilza di errori. Allora sono andato a copiare la libreria PString che avevo nell' IDe 1.8.5 e quest'ultima non da' problemi
Dato che anche l'OP non avra' sicuramente installato detta libreria ( vedi errori che gli dà), dove reperire quella corretta ?
Mi rispondo da solo, ecco il link corretto
http://arduiniana.org/libraries/pstring/
Esatto, il download è questo: http://arduiniana.org/PString/PString3.zip (http://arduiniana.org/PString/PString3.zip).
Il link esatto era comunque presente sulla homepage di Webbino (https://github.com/SukkoPera/Webbino#dependencies).
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.
Il bello è che tutto quello che devi fare con Webbino è modificare due righe in sto cavolo di webbino_config.h, poi fa tutto lui.
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........
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.
#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
#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?
non ho capito il senso di
c=b;
e comunque un char non può avere un valore di 5 byte
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."
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.
non ho capito :( :( :smiley-confuse: :smiley-confuse: :'( :'(
allora:
#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
#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?
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
if(b=="QualsiasiValoreValidoPerChar"){Serial.println("ciao...belli");}........//QUI NON DA NIENTE
}
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.
si ma che valore ti da
Serial.print (b,DEC) ??
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"
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
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.
Concatenare la Char, stavo guardando sulle referenze Arduino.cc ho trovato :
concat oppure string...no e che al momento c'ho capito molto......ma almeno e questa la strada giusta??
non so come si fa a cambiare il titolo del Topic....ma RISOLTO.
posto lo sketch per i posteri
SoftwareSerial mySerial(6,5); // RX, TX
char a=0;
char b=0;
String B="";
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
if(Serial.available())
{
a=Serial.read();
mySerial.print(a);
}
if(mySerial.available())
{
B="";
while(mySerial.available())
{
b=mySerial.read();
B.concat(b);
Serial.println(B);
delay(10);
if(B=="V_11"){Serial.println("ciao belli");}
}
}
}
ora CONCATENATE le Char che arrivano dal modulo ESP posso andare avanti.
;D ;D ;D ;D
:o :o :smiley-confuse: :smiley-confuse:
Mi sono accorto di un piccolo problema,
ora è vero che riesco a inviare dal telefono dei comandi virtuali che ESP interpreta e scrive sul monitor, poi con arduino leggo,concateno e di conseguenza posso ad esempio cambiare stato ai pin.
Ma per fare il contrario,cioè scrivere una cosa qualsiasi e leggerlo dal telefono,come faccio?
ho provato a caricare questo su ESP
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "codide blynk";
char ssid[] = "ruter di casa";
char pass[] = "password";
boolean Print=0;
char a=0;
char b=0;
String B="";
void LETTURE()
{
if(Serial.read())
{
Print=1;
B="";
while(Serial.read())
{
b=Serial.read();
B.concat(b);
delay(10);
}
}
if(! Serial.read())
{
if(Print==1)
{
Blynk.virtualWrite(V0, B);
Blynk.virtualWrite(V1, B);
Serial.println(B);
Print=0;
}
}
}
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
Serial.println(pinValue);
}
BLYNK_WRITE(V1)
{
Blynk.virtualWrite(V1, B);
}
BLYNK_READ(V2)
{
Blynk.virtualWrite(V2, B);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth,ssid,pass);
}
void loop()
{
LETTURE();
Blynk.run();
}
...i BLYNK_WRITE (V__)ed i BLYNK_READ(V__) sono per provare.
e questo su Arduino
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6,5); // RX, TX
SoftwareSerial mySerial1(11,10); // RX, TX
boolean Print=0;
boolean Write=0;
char a=0;
char b=0;
String B="";
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
mySerial1.begin(9600);
}
void TRASMETTI()
{
if(Write==0)
{
delay(1000);
mySerial1.write("1");
delay(1000);
mySerial1.print("1");
Write=1;
}
}
void RICEVI()
{
if(mySerial.available())
{
Print=1;
B="";
while(mySerial.available())
{
b=mySerial.read();
B.concat(b);
delay(10);
}
}
if(! mySerial.available())
{
if(Print==1)
{
Serial.println(B);
if(B=="V0 0"){Serial.println("SPENTO");}
if(B=="V0 1"){Serial.println("ACCESO");}
if(B=="V1 1"){Serial.println("AVANTI");}
if(B=="V2 1"){Serial.println("DESTRA");}
if(B=="V3 1"){Serial.println("INDIETRO");}
if(B=="V4 1"){Serial.println("SINISTRA");}
Print=0;
}
}
}
void loop()
{
TRASMETTI();
RICEVI();
}
Oltr che no trasmettere niente mi sono accorto che se metto nel loop il void"TRASMETTI", non funziona più neanche il void "RICEVI".
Avete qualke consiglio????....non ci salto fuori con sto maledetto modulino ESP ::) ::) :smiley-roll-sweat: :smiley-roll-sweat: :smiley-cry: :smiley-cry: :smiley-cry: :smiley-cry: :smiley-cry:
Per SuKKoPera
ciao abbandonato blynk perche non ci salto fuori sto tentando con Webbino,facendo ricerche sono incappato in www.webbino.it volevo sapere se è tuo.
Altra cosa ho letto il megatopic Webbino ma non ci ho capito molto(da hobbysta con la 3 media inferiore) ...potresti farmi un piccolo esempio(SEMPLICE) per cambiare stato ad un PIN su arduino1 o Mega usando il telefono(con quale APP???)...... e viceversa leggere lo stato di un altro PIN sempre sul telefono???? (ovviamente utilizzando il ruter di casa).
Almeno per avere uno spunto da cui partire.