Fusione due sketch


ciao tutti,

il mio progetto finale è di controllare un'acquario e l'ambiente dove si trova.
so che ci sono tanti post sugli acquari ma voglio imparare così sono partito da 0.

per il momento procedo piccoli passi perché sono un principiante e non ho nessuna nozione di elettronica ne di programmazione quindi cerco online sketch che potrebbero fare mio caso e li modifico come meglio... riesco...  :)

per il momento ho combinato due sketch che avevo recuperato e modificato e avrei voluto il vostro parere sul risultato finale, e avrei anche un paio di domande da farvi per migliorarlo.

so che per voi saranno piccolezze ma per me il risultato ottenuto finora è una grande cosa!

i due sensori che ho collegato sono :
- dht11, che presto sostituirò per un dht22 più preciso
- ds18b20 waterproof

allora qui lo sketch
code: [select]

#include <dht11.h> //for dht11
dht11 dht;
#define dht11_pin 8 //dht11 signal pin on digital 8

#include <onewire.h>  //for ds18b20
int ds18b20_pin = 2; //ds18b20 signal pin on digital 2

//temperature chip i/o
onewire ds(ds18b20_pin); // on digital pin 2

void setup(){
 serial.begin(9600);
 //serial.println("dht test program "); //dht11
 //serial.print("library version: ");
 //serial.println(dht11lib_version);
 serial.println();
 //serial.println("type,\tstatus,\thumidity (%),\ttemperature (c)");
}

void loop(){
 int chk;                                 //start dht11
 serial.print("umidita dentro casa : \t % ");
 
 chk = dht.read(dht11_pin);               // read data dht11
 switch (chk){
   case dhtlib_ok:  
               //serial.print("ok,\t % ");
               break;
   case dhtlib_error_checksum:
               serial.print("checksum error,\t");
               break;
   case dhtlib_error_timeout:
               serial.print("time out error,\t");
               break;
   default:
               serial.print("unknown error,\t");
               break;
 }
// displat data
 serial.println(dht.humidity,1);
 serial.print("temp. dentro casa : \t c ");
 serial.println(dht.temperature,1);

 //delay(1000);                             //end dht11
 
 
float temperature = gettemp();           //start ds18b20
serial.print("temp. acqua :              ");
serial.print(temperature);
serial.println(" c");
serial.println(" ");

delay(1000); //just here slow down output easier read

}


float gettemp(){
//returns temperature 1 ds18s20 in deg celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
  //no more sensors on chain, reset search
  ds.reset_search();
  return -1000;
}

if ( onewire::crc8( addr, 7) != addr[7]) {
  serial.println("crc not valid!");
  return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
  serial.print("device not recognized");
  return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, parasite power on @ end

byte present = ds.reset();
ds.select(addr);  
ds.write(0xbe); // read scratchpad


(int = 0; < 9; i++) { // need 9 bytes
 data[i] = ds.read();
}

ds.reset_search();

byte msb = data[1];
byte lsb = data[0];

float tempread = ((msb << 8) | lsb); //using two's compliment
float temperaturesum = tempread / 16;

return temperaturesum;                       //end ds18b20

}


non riesco ad inserire le immagini all'interno del messaggio ma solamente come allegato.
se vedete gli allegati potete vedere il mio wiring.

nell'altro allegato "serial", vorrei chiedere se qualcuno sa spiegarmi come fare per avere segni di % e c (celsius) dopo numeri e non prima.

altra domanda, come faccio per avere decimali dove non ci sono?

grazie in anticipo per il vostro prezioso aiuto.

per ottenere decimali dovresti dichiarare le variabili come float (e non come int) e moltiplicare il valore finale per 1.0
per posticipare l'unità di misura ti basta aggiungere un:
serial.println(" c"); o serial.println(" %"); (secondo casi)
dopo la riga che ti stampa il valore, una volta che ti esce puoi eliminare il simbolo dalla riga attuale, p.es.:
serial.print("umidita dentro casa : \t % ");
diventa:
serial.print("umidita dentro casa : \t  ");


Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Fusione due sketch


arduino

Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support