Ciao, sto leggendo vari post su come visualizzare i dati Seriali di Arduino sul web tramite webbino, ma riscontro un problema con la libreria PSting.h, nel web non riesco a trovare quella giusta...
Qualcuno può linkarmi questa libreria??
Ciao, sto leggendo vari post su come visualizzare i dati Seriali di Arduino sul web tramite webbino, ma riscontro un problema con la libreria PSting.h, nel web non riesco a trovare quella giusta...
Qualcuno può linkarmi questa libreria??
La PString la trovi QUI e ti consigli anche la sua "sorella" Streaming, QUI ... studiatela e vedrai che è molto utile.
Guglielmo
Grazie Moderator
Prego Member
![]()
Guglielmo
Se ho capito bene leggendo nei vari post soprattutto la stazione meteo di @(As_Needed) per leggere quello che ricevo sul Seriale tramite HC-12 dovrei prima creare una pagina web, poi caricarla su una SD Card e inserirla sulla WB5100, fatto questo impostando per bene l'esempio Web Client dovrei riuscire a visualizzare a lettura sul web....
Sbaglio a pensarla così o la situazione è più complessa di quello che immagino??
Cmq ho modificato l'esempio Web Client della WB5100 inserendo l'HC-12 come ricezione dati e aprendo il monitor Seriale mi risulta connesso e mi legge quello che HC-12 trasmette, ma come faccio a vederlo sul web? Quando digito sul web l'IP che ho configurato sullo sketch mi dice " Impossibile raggiungere l'indirizzo IP "...
Avete suggerimenti??
Allego il file di questo problema
WebClientHC12.ino (2.59 KB)
Controlla da router quale ip è stato assegnato perchè dal sorgente vedo scritto:
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 1, 110);
Non è detto sia questo l'ip.
Purtroppo da router non riesco più ad entrare nel setup quindi non posso più vedere e modificare nulla, e leggendo nel web è un problema che hanno in molti usando un modem tp-link... In teoria ho già risolto la visualizzazione dei dati ricevuti grazie al consiglio di @(doppiozero)[/b che] tramite l'APP blink ricevo i dati usando il terminale widget... Però e dico però, cercherò di portare avanti sempre questo progetto anche se non è semplice... Grazie del consiglio @(tonioB) farò presto come dici tu
ma magari esiste un'istruzione per forzare l'ip. Non conosco le librerie che stai usando ma, seguendo la logica, dovrebbe esserci.
Non dare mai un numero di ip che possono usare altri, e cambia solo l'ultimo numero.
Io non ho capito: hai un Arduino o due?
SukkoPera:
Io non ho capito: hai un Arduino o due?
Uso un Arduino Uno con shield ethernet W5100
tonioB:
ma magari esiste un'istruzione per forzare l'ip. Non conosco le librerie che stai usando ma, seguendo la logica, dovrebbe esserci.
Non dare mai un numero di ip che possono usare altri, e cambia solo l'ultimo numero.
Le librerie che ho usato sono quelle che ho allegato nel Post #4 WebClientHC12.ino... Se esiste una istruzione per leggere l'IP che sta usando la Shield sinceramente non saprei... Non poter entrare nel set-up del modem le una rottura se devi fare certe cose..
SukkoPera:
Io non ho capito: hai un Arduino o due?
ho capito adesso cosa vuoi dire :
Si ho due Arduino, uno con la trasmittente ed uno con la shield ethernet montata sopra la ricevente
quando usi la begin devi darle anche l'ip per l'assegnamento fisso altrimenti lo prende dal server.
dipende da cosa vuoi impostare .
Ti consiglio la prima.
edit: non dal server ma dal router.
Capisco, ora faccio delle prove, ma ribadisco non conoscendo quale IP assegna il mio modem alla shield ethernet posso andare a caso da quelli che normalmente usa...
Ti ho spiegato che cambiando l'istruzione lo imposti tu al router.
Non dovresti avere più problemi.
Però è un ip interno alla rete e non puoi richiamarlo da fuori, ma solo se collegati sulla stessa rete.
Se avessi bisogno di richiamarlo da fuori devi abilitare la porta che usa il server sul router, e usare l'ip pubblico non più quello che hai assegnato. (ci pensa il router a indirizzare sul dispositivo giusto)
Ho messo un IP che normalmente il mio router utilizza, ma se vorrei trasmettere quello che ricevo dall'HC-12 in una pagina web devo crearla questa pagina ad es.(altervista) o va bene quella impostata nell'esempio WebClient (www.google.com)... Allegò il file e nel loop ho messo la lettura della ricevente...
PS: già in questo esempio usa Ethernet. begin(mac,ip)..
/*
Web client
This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe, based on work by Adrian McEwen
*/
#include <SPI.h>
#include <Ethernet.h>
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
SoftwareSerial HC12(rxPin, txPin);
long baud = 9600;
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS)
char server[]= "www.google.com"; // name address for Google (using DNS)
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 1, ***);
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(baud);
HC12.begin(9600);
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close");
client.println();
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop() {
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
Serial.print(client);
}
// Lettura ricevente HC-12
if (HC12.available() > 0) {
Serial.write(char(HC12.read()));
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
while (true);
}
}