Ciao A tutti, ho provato a caricare il semplice esempio WEBTEMPERATUREPANEL presente nella sezione esempi, il quale mi gira benissimo e mi aggiorna i dati.
client.print("Current time on the Yún: ");
client.println(timeString);
client.print("
Current temperature: ");
client.print(temperature);
client.print(" degrees C");
client.print("
This sketch has been running since ");
client.print(startString);
client.print("
Hits so far: ");
client.print(hits);
Ma se volessi leggere da una pagina web da me creata il valore della temperatura dello sktach sotto quale comando html devo usare??
YunServer server;
String startString;
long hits = 0;
void setup() {
Serial.begin(9600);
server.listenOnLocalhost();
server.begin();
}
void loop() {
YunClient client = server.accept();
int sensorValue = analogRead(A1);
// convert the reading to millivolts:
float voltage = sensorValue * (5000 / 1024);
// convert the millivolts to temperature celsius:
float temperature = (voltage - 500) / 10;
// print the temperature:
client.print(temperature);
Ciao, se non vuoi usare le pagine web passando per la parte linux di yun ma crearle direttamente dallo sketch, devi puntare ad "http://INDIRIZZO_YUN/arduino/"
Qualsiasi cosa che viene passata dopo arduino/ viene data in pasto direttamente allo sketch che rilevi con:
// Get clients coming from server
YunClient client = server.accept();
// There is a new client?
if (client) {
client.setTimeout(5);
// Process request
String rec = client.readString();
rec.trim();
}
Ciao e grazie per la risposta, quello che vorrei fare è l'esatto contrrio, cioè creare una pagina web al di fuori dello Skatch, ma purtroppo non riesco a capire quali comandi html devo usare per leggere il valore da arduino.
YunServer server;
String startString;
long hits = 0;
void setup() {
Serial.begin(9600);
server.listenOnLocalhost();
server.begin();
}
void loop() {
YunClient client = server.accept();
int sensorValue = analogRead(A1);
// convert the reading to millivolts:
float voltage = sensorValue * (5000 / 1024);
// convert the millivolts to temperature celsius:
float temperature = (voltage - 500) / 10;
// print the temperature:
client.print(temperature);
delay(50); // Poll every 50ms
}
Per leggere il valore Temperatura dalla pagina web come devo fare?? Ho provato a cercare in rete ma c'è veramente poco.
@darvigo, per favore il codice racchiudilo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti rischi che parte del codice venga non visualizzato perchè interpretato come attributo del testo.
Scusami ma a me non funziona... Ho caricato lo skatch seguente
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
YunServer server;
String startString;
long hits = 0;
void setup() {
Serial.begin(9600);
server.listenOnLocalhost();
server.begin();
}
void loop() {
YunClient client = server.accept();
int sensorValue = analogRead(A1);
// convert the reading to millivolts:
float voltage = sensorValue * (5000 / 1024);
// convert the millivolts to temperature celsius:
float temperature = (voltage - 500) / 10;
// print the temperature:
client.print(temperature);
delay(50); // Poll every 50ms
}
Tale skatch si chiama prova e si trova all'interno della cartella prova. All'interno della stessa ho creato la cartella www dove vi ho messo il file zepto.min.js e la pagina web con nome index.html con il codice che mi hai scritto tu.
Scaricando il tutto su arduino e tendando di collegarmi all'indirizzo local.arduino/sd/prova mi da sempre 0.
Mi sai dire dove sbaglio per cortesia
Ok, ma adesso io scrivo come URL local.arduino/arduino/temperature/val
Dopo la modifica che mi hai detto tu dovrei leggerlo sotto local.arduino/arduino/temperature ???
Perche non accedo anche da 192.168.240.1/sd/temperature ??
davrigo:
Ok, ma adesso io scrivo come URL local.arduino/arduino/temperature/val
Dopo la modifica che mi hai detto tu dovrei leggerlo sotto local.arduino/arduino/temperature ???
Perche non accedo anche da 192.168.240.1/sd/temperature ??
Hai fatto un po di confusione mi sa
"192.168.240.1/sd/temperature" ti risponde la pagina html che hai caricato sulla sd.
"192.168.240.1/arduino/temperature" ti risponde direttamente lo sketch.
mentre nel primo caso "temperature" deve essere il nome dello sketch, nel secondo caso "temperature" è il parametro che si aspetta l'arduino per passarti il valore:
// There is a new client?
if (client) {
// read the command
String command = client.readString();
command.trim(); //kill whitespace
Serial.println(command);
// is "temperature" command?
if (command == "temperature") {
}
quindi per avere 2 valori diversi ti basta aggiungere un'else:
// There is a new client?
if (client) {
// read the command
String command = client.readString();
command.trim(); //kill whitespace
Serial.println(command);
// is "temperature" command?
if (command == "temperature") {
// Ritorni il valore1
}
else if (command == "temperature2") {
// Ritorni il valore2
}
Se vuoi fare meno confusione magari chiamali "temp1" e "temp2"
Io vorrei leggere i valori VAl1 e Val2 dalla pagina HTML caricata su sd quindi digitando 192.168.240.1/sd/prova.
Il codice che gentilmente mi hai dato tu è correto per fare questo??
Lo sketch è completo o manca quancosa?
<!DOCTYPE html>
<head>
<script type ="text/javascript"src="zepto.min.js></script>
<script type ="text/javascript">
function refresh() {
$('#content').load('/arduino/val1');
}
</script>
</head>
<body onload="setInterval (refresh, 1000);">
<span id="content">0</span>
</body>
</html>
Perchè non usi come base l'esempio del pannello di temperatura?
Facendo come hai fatto ora, ad ogni chiamata che fai ad /arduino/ (indipendentemente dal val1 che hai scritto dopo nell'html) ritornerai sempre le due temperature una attaccata all'altra (in quanto hai usato la funzione print invece di println).
Prova segui quanto ti ho scritto sopra, usa l'html che ti ho postato (con content e content2) e fai rispondere allo sketch solo la temperatura che viene richiesta come ti ho scritto nel mio ultimo post.