Unire due sketch

Salve ragazzi sono dinuovo qui a chiedervi aiuto, devo unire i due sketch di seguito ho provato diverse volte ma non riesco a farli funzionare insieme.
Qualcuno puo' darmi un consiglio
grazie

#include <SPI.h>
#include <Ethernet.h>


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,55 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);


void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
pinMode(8, OUTPUT);
digitalWrite(8, HIGH);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
Serial.begin(9600);
}

void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();


if(readString.startsWith("GET /?out=2&status=1"))
{Serial.print("\n 2 HIGH LOW \n");
digitalWrite(2, LOW);
delay(100);
digitalWrite(2, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(2);
client.print("\"}");
}


if(readString.startsWith("GET /?out=3&status=1"))
{Serial.print("\n 3 HIGH LOW \n");
digitalWrite(3, LOW);
delay(100);
digitalWrite(3, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(3);
client.print("\"}");
}


if(readString.startsWith("GET /?out=4&status=1"))
{Serial.print("\n 4 HIGH LOW \n");
digitalWrite(4, LOW);
delay(100);
digitalWrite(4, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}


if(readString.startsWith("GET /?out=5&status=1"))
{Serial.print("\n 5 HIGH LOW \n");
digitalWrite(5, LOW);
delay(100);
digitalWrite(5, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(5);
client.print("\"}");
}


if(readString.startsWith("GET /?out=6&status=1"))
{Serial.print("\n 6 HIGH LOW \n");
digitalWrite(6, LOW);
delay(100);
digitalWrite(6, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(6);
client.print("\"}");
}


if(readString.startsWith("GET /?out=7&status=1"))
{Serial.print("\n 7 HIGH \n");
digitalWrite(7, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}
if(readString.startsWith("GET /?out=7&status=0"))
{Serial.print("\n 7 LOW \n");
digitalWrite(7, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}


if(readString.startsWith("GET /?out=8&status=1"))
{Serial.print("\n 8 LOW HIGH  \n");
digitalWrite(8, LOW);
delay(300);
digitalWrite(8, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(8);
client.print("\"}");
}


if(readString.startsWith("GET /?out=9&status=1"))
{Serial.print("\n 9 HIGH LOW \n");
digitalWrite(9, LOW);
delay(100);
digitalWrite(9, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(9);
client.print("\"}");
}


if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.1.55\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"gate\", \"name\" : \"Luci Sala Pc\", \"out\" : \"");
client.print("2");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Sala 2\", \"out\" : \"");
client.print("3");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Esterne 1\", \"out\" : \"");
client.print("4");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Esterne 2\", \"out\" : \"");
client.print("5");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luce Ingresso\", \"out\" : \"");
client.print("6");
client.print("\"}");
client.print(",{ \"type\" : \"plug\", \"name\" : \"Luce Scala\", \"out\" : \"");
client.print("7");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Cancello Automatico\", \"out\" : \"");
client.print("8");
client.print("\"}");
client.print(",{ \"type\" : \"door\", \"name\" : \"Cancello Pedonale\", \"out\" : \"");
client.print("9");
client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}
#include <dht11.h>

#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>

#define DHT11PIN 2  //dichiariamo ad arduino che il sensore è sul pin2

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,55 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);
dht11 DHT11;        //dichiariamo l'oggetto 


void setup(){
  Ethernet.begin(mac, ip, gateway, subnet);
  delay(1000);
  Serial.begin(9600);
}

void loop(){
  DHT11.read(DHT11PIN); //legge il valore del pin del sensore

  Client client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 30)
        {
          readString = readString + c;
        }
        if (c == '\n') {
          Serial.print(readString);
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();


          if(readString.startsWith("GET /?out=2&status=1"))
          {
            Serial.print("\n 2 DHT11 \n");
            client.print("{\"status\" : \"ok\" , \"value\" : \"");
            client.print(DHT11.temperature);
            client.print("\"}");
          }


          if(readString.startsWith("GET /?out=all"))
          {
            Serial.print("\n OUT ALL\n");
            client.print("{\"ip\" : \"192.168.1.55\", ");
            client.print("\"devices\" : ");
            client.print("[{ \"type\" : \"temperature\", \"name\" : \"temp interna\", \"out\" : \"");
            client.print("2");
            client.print("\"}");
            client.print("]}");
          }
          readString="";
          client.stop();
        }
      }
    }
  }
}

Bhe detto così obblighi i membri a studiare entrambi i programmi cercando di dedurre cosa vuoi fare, sarebbe bello sapere qual'è il risultato che vuoi sommando le mele con le pere :slight_smile: :slight_smile:

ciao

Intanto inizia col dirci che problemi riscontri unendo le "pere con le mele", come ti ha detto pablo :wink:
Poi dai anche un'occhiata alle varie librerie che vuoi includere insieme per controllare se non si danno noia a livello di pin o interrupt usati.

Forse avrei dovuto essere piu' chiaro :smiley: :smiley:
Il primo codice comanda 8 rele' tramite domotichome mandando impulsi dal pin 2 al pin 9, mentre il secondo rileva la temperatura tramite il sensore dht11 sul pin 10 ance se lo skecth postato dice pin 2.

io dico che se ci lavori, nemmeno poi tanto, ce la fai.
tieni presente le basi, ad esempio che puoi avere un solo setup ed un solo loop

per il discorso del pin se lo sketch dice pin2 e' pin2, almenoche' non lo modifichi, non e' che basta che tu gli dici a voce il contrario e lui si aggiusta :slight_smile:

Testato:
io dico che se ci lavori, nemmeno poi tanto, ce la fai.
tieni presente le basi, ad esempio che puoi avere un solo setup ed un solo loop

per il discorso del pin se lo sketch dice pin2 e' pin2, almenoche' non lo modifichi, non e' che basta che tu gli dici a voce il contrario e lui si aggiusta :slight_smile:

Sono perfettamente daccordo con te :smiley: saranno un paio d'ore che provo, di seguito quello che ho fatto solo che non capisco perche' non funziona.

#include <dht11.h>

#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>

#define DHT11PIN 10  //dichiariamo ad arduino che il sensore è sul pin2

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,55 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);
dht11 DHT11;        //dichiariamo l'oggetto 

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
pinMode(8, OUTPUT);
digitalWrite(8, HIGH);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
Serial.begin(9600);
}

void loop(){
DHT11.read(DHT11PIN); //legge il valore del pin del sensore  

Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();


if(readString.startsWith("GET /?out=2&status=1"))
{Serial.print("\n 2 HIGH LOW \n");
digitalWrite(2, LOW);
delay(100);
digitalWrite(2, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(2);
client.print("\"}");
}


if(readString.startsWith("GET /?out=3&status=1"))
{Serial.print("\n 3 HIGH LOW \n");
digitalWrite(3, LOW);
delay(100);
digitalWrite(3, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(3);
client.print("\"}");
}


if(readString.startsWith("GET /?out=4&status=1"))
{Serial.print("\n 4 HIGH LOW \n");
digitalWrite(4, LOW);
delay(100);
digitalWrite(4, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}


if(readString.startsWith("GET /?out=5&status=1"))
{Serial.print("\n 5 HIGH LOW \n");
digitalWrite(5, LOW);
delay(100);
digitalWrite(5, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(5);
client.print("\"}");
}


if(readString.startsWith("GET /?out=6&status=1"))
{Serial.print("\n 6 HIGH LOW \n");
digitalWrite(6, LOW);
delay(100);
digitalWrite(6, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(6);
client.print("\"}");
}


if(readString.startsWith("GET /?out=7&status=1"))
{Serial.print("\n 7 HIGH \n");
digitalWrite(7, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}
if(readString.startsWith("GET /?out=7&status=0"))
{Serial.print("\n 7 LOW \n");
digitalWrite(7, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(7);
client.print("\"}");
}


if(readString.startsWith("GET /?out=8&status=1"))
{Serial.print("\n 8 LOW HIGH  \n");
digitalWrite(8, LOW);
delay(300);
digitalWrite(8, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(8);
client.print("\"}");
}


if(readString.startsWith("GET /?out=9&status=1"))
{Serial.print("\n 9 HIGH LOW \n");
digitalWrite(9, LOW);
delay(100);
digitalWrite(9, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(9);
client.print("\"}");
}


if(readString.startsWith("GET /?out=10&status=1"))
{
Serial.print("\n 10 DHT11 \n");
client.print("{\"status\" : \"ok\" , \"value\" : \"");
client.print(DHT11.temperature);
client.print("\"}");
}


if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.1.55\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"gate\", \"name\" : \"Luci Sala Pc\", \"out\" : \"");
client.print("2");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Sala 2\", \"out\" : \"");
client.print("3");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Esterne 1\", \"out\" : \"");
client.print("4");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luci Esterne 2\", \"out\" : \"");
client.print("5");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Luce Ingresso\", \"out\" : \"");
client.print("6");
client.print("\"}");
client.print(",{ \"type\" : \"plug\", \"name\" : \"Luce Scala\", \"out\" : \"");
client.print("7");
client.print("\"}");
client.print(",{ \"type\" : \"gate\", \"name\" : \"Cancello Automatico\", \"out\" : \"");
client.print("8");
client.print("\"}");
client.print(",{ \"type\" : \"door\", \"name\" : \"Cancello Pedonale\", \"out\" : \"");
client.print("9");
client.print("\"}");
client.print("[{ \"type\" : \"temperature\", \"name\" : \"temp interna\", \"out\" : \"");
client.print("10");
client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}

Crobentre:

Testato:
io dico che se ci lavori, nemmeno poi tanto, ce la fai.
tieni presente le basi, ad esempio che puoi avere un solo setup ed un solo loop

per il discorso del pin se lo sketch dice pin2 e' pin2, almenoche' non lo modifichi, non e' che basta che tu gli dici a voce il contrario e lui si aggiusta :slight_smile:

Sono perfettamente daccordo con te :smiley: saranno un paio d'ore che provo, di seguito quello che ho fatto solo che non capisco perche' non funziona.

#include <dht11.h>

#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>

#define DHT11PIN 10  //dichiariamo ad arduino che il sensore è sul pin2

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,55 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);
dht11 DHT11;        //dichiariamo l'oggetto

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
pinMode(8, OUTPUT);
digitalWrite(8, HIGH);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
Serial.begin(9600);
}

void loop(){
DHT11.read(DHT11PIN); //legge il valore del pin del sensore

Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

if(readString.startsWith("GET /?out=2&status=1"))
{Serial.print("\n 2 HIGH LOW \n");
digitalWrite(2, LOW);
delay(100);
digitalWrite(2, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(2);
client.print(""}");
}

if(readString.startsWith("GET /?out=3&status=1"))
{Serial.print("\n 3 HIGH LOW \n");
digitalWrite(3, LOW);
delay(100);
digitalWrite(3, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(3);
client.print(""}");
}

if(readString.startsWith("GET /?out=4&status=1"))
{Serial.print("\n 4 HIGH LOW \n");
digitalWrite(4, LOW);
delay(100);
digitalWrite(4, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(4);
client.print(""}");
}

if(readString.startsWith("GET /?out=5&status=1"))
{Serial.print("\n 5 HIGH LOW \n");
digitalWrite(5, LOW);
delay(100);
digitalWrite(5, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(5);
client.print(""}");
}

if(readString.startsWith("GET /?out=6&status=1"))
{Serial.print("\n 6 HIGH LOW \n");
digitalWrite(6, LOW);
delay(100);
digitalWrite(6, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(6);
client.print(""}");
}

if(readString.startsWith("GET /?out=7&status=1"))
{Serial.print("\n 7 HIGH \n");
digitalWrite(7, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(7);
client.print(""}");
}
if(readString.startsWith("GET /?out=7&status=0"))
{Serial.print("\n 7 LOW \n");
digitalWrite(7, LOW);
client.print("{"status" : "0" , "out" : "");
client.print(7);
client.print(""}");
}

if(readString.startsWith("GET /?out=8&status=1"))
{Serial.print("\n 8 LOW HIGH  \n");
digitalWrite(8, LOW);
delay(300);
digitalWrite(8, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(8);
client.print(""}");
}

if(readString.startsWith("GET /?out=9&status=1"))
{Serial.print("\n 9 HIGH LOW \n");
digitalWrite(9, LOW);
delay(100);
digitalWrite(9, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(9);
client.print(""}");
}

if(readString.startsWith("GET /?out=10&status=1"))
{
Serial.print("\n 10 DHT11 \n");
client.print("{"status" : "ok" , "value" : "");
client.print(DHT11.temperature);
client.print(""}");
}

if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{"ip" : "192.168.1.55", ");
client.print(""devices" : ");
client.print("[{ "type" : "gate", "name" : "Luci Sala Pc", "out" : "");
client.print("2");
client.print(""}");
client.print(",{ "type" : "gate", "name" : "Luci Sala 2", "out" : "");
client.print("3");
client.print(""}");
client.print(",{ "type" : "gate", "name" : "Luci Esterne 1", "out" : "");
client.print("4");
client.print(""}");
client.print(",{ "type" : "gate", "name" : "Luci Esterne 2", "out" : "");
client.print("5");
client.print(""}");
client.print(",{ "type" : "gate", "name" : "Luce Ingresso", "out" : "");
client.print("6");
client.print(""}");
client.print(",{ "type" : "plug", "name" : "Luce Scala", "out" : "");
client.print("7");
client.print(""}");
client.print(",{ "type" : "gate", "name" : "Cancello Automatico", "out" : "");
client.print("8");
client.print(""}");
client.print(",{ "type" : "door", "name" : "Cancello Pedonale", "out" : "");
client.print("9");
client.print(""}");
client.print("[{ "type" : "temperature", "name" : "temp interna", "out" : "");
client.print("10");
client.print(""}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}

chi mi impresta la sfera magica?? XD

seriamente allora hai 2 sketch immagino presi e copiati dal web (se li avessi scritti entrambi tu non avresti questi problemi).

vuoi unirli, per fare cosa?

hai 2 sketch che fanno cosa? e poi una volta uniti cosa devono fare?

infine hai detto di averli uniti ma non funziona, cosa non funziona?
non compila? in caso che errore ti da? si carica ma qualcosa non funziona? in questo caso di cosa differisce rispetto a ciò che dovrebbe fare?

un consiglio:
prima di fare un programma fai un diagramma a blocchi, in programmazione è la cosa più utile al mondo, il codice lo scrivi poi come niente fidati

Allora il primo sketch comanda 8 rele', questo lo conosco bene, funziona correttamente da solo tramite l'applicazione domotichome per androind, il secondo sketch rileva la temperatura tramite il sensore DHT11 anche questo a solo funziona bene tramite l'applicazione domotichome.
Ho unito i due sketch, se provo a fare verify da IDE non mi da nessun errore lo carico su arduino senza problemi, ma alla fine collegandomi all' applicazione domotichome con android non mi carica le modifiche fatte.

ma domotichhome e' un sw lato android, se non e' progettato per leggere iuna temperatura su pin 10 e magari non e' progettato per visualizzarla, come dovrebbe uscirti sul palmare il valore ?

domanda... ma utilizzando il comando "include" ecc.. include il listato e le variabili "GLOBALI"?? per esempio posso mettere la funzione per attivare un servo su un listato riferito ad un'altro e recuperare la variabile dal secondo?

Es: sketch01.pde

#include <sketch02.h>

void setup(){
servo1("5");
}

Es: sketch02.h

void servo1(var){
'COMMAND
}