Pages: [1]   Go Down
Author Topic: Campionamento valori sensore  (Read 435 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho bisogno di aiuto per riuscire ad avere a disposizione una serie di valori acquisiti da arduino.
Vorrei far fare questo ad arduino (ad esempio):
-leggi il valore di un sensore ogni secondo per 60 secondi
-rendi disponibili questi 60 valori
-pubblica i valori
-ricomincia

Non ho idee su come fare per il primo ed il secondo punto.
Qualcuno può aiutarmi?

Mi spiego meglio, devo creare una pagina web (uso la wifi shield di FuturaElettronica) che visualizzi il valore in ingresso di tre sensori.Ma questo non è molto importante.
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dove devi visualizzarli ? in rete o da remoto ?
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Firenze, Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 104
Dislessia portami via
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io immagino qualcosa tipo

Code:
//dichiarazione array
int valoriSensore[60];

for (int i = 0; i<60; i++){
 valori[i]=leggiSensore(); //salva nell'array il valore letto
 delay(1000); //attende un secondo
} //ripete per un minuto
Logged

The brightest flame burns quickest

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dove devi visualizzarli ? in rete o da remoto ?
Devo visualizzarli in rete, messi a disposizione in una pagina web.

Il mio codice, molto scarno e ridotto all'osso per semplicità è il seguente:

Code:
#include <WiServer.h>

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

// Wireless configuration parameters ----------------------------------------
unsigned char local_ip[] = {192 , 168 , 137 , 2};      // Indirizzo IP
unsigned char gateway_ip[] = {192 , 168 , 137 , 1};     // Indirizzo gateway IP
unsigned char subnet_mask[] = {255 , 255 , 255 , 0};   // Subnet Mask
const prog_char ssid[] PROGMEM = {"router"};     // SSID access point

unsigned char security_type = 3; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {"provaprova"}; // max 64 characters

prog_uchar wep_keys[] PROGMEM = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3
};

unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;

/* Temperatura */
int inputPin = 5; //definisco il pin 5 come quello a cui è attaccato il sensore di temperatura
float Temperatura;//variabile da calcolare
/*end Temperatura*/

void setup() {
    WiServer.init(inviaLaPaginaWeb);

    Serial.begin(38400);

    WiServer.enableVerboseMode(true);
}



void loop(){
    WiServer.server_task();
    delay(10);
}


boolean inviaLaPaginaWeb(char* URL) {
 
 if (strcmp(URL, "/") == 0) {
  paginaWeb();
   
return true;
}

return false;
}

void paginaWeb() {
  Temperatura =  analogRead(inputPin)*0.489 ;
 
  WiServer.print("<html>");   
 
  WiServer.print ("<head>");
  WiServer.print ("<meta http-equiv=""refresh"" content=""10;url=http://");
  WiServer.print (local_ip[0], DEC);
  WiServer.print (".");
  WiServer.print (local_ip[1], DEC);
  WiServer.print (".");
  WiServer.print (local_ip[2], DEC);
  WiServer.print (".");
  WiServer.print (local_ip[3], DEC);
  WiServer.print ("/"" />");
  WiServer.print ("</head>");
   

  WiServer.print("Pagina di visualizzazione dei parametri ambientali!<br>");
  WiServer.print("La temperatura è : ");
  WiServer.print(Temperatura);
 
  WiServer.print("<html>");
}

vorrei creare una matrice, una tabella nella pagina web che si aggiorni completamente ogni determinato numero di secondi, dove in ogni colonna venga visualizzato un parametro ambientale, in questo caso ho messo solo la temperatura, quindi vorrei creare un vettore nel quale compaiano le ultime 60 letture di temperatura e che dopo la sessantesima si aggiorni.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io immagino qualcosa tipo

Code:
//dichiarazione array
int valoriSensore[60];

for (int i = 0; i<60; i++){
 valori[i]=leggiSensore(); //salva nell'array il valore letto
 delay(1000); //attende un secondo
} //ripete per un minuto

Grazie, questo mi sarà utile! Mi è stato suggerito di provare ad usare script AJAX ma io sono alle prime armi, non so praticamente programmare, e mi sembra complicato; Mi era stato suggerito AJAX in quanto la tabella sarebbe bene che si aggiornasse ogni secondo e senza che la pagina web faccia un refresh...ma stento a capirci qualcosa!
Logged

Pages: [1]   Go Up
Jump to: