commande relais a distance avec son smart phone

je vous presente un projet realiser avec un arduino mega,piloter des relais a distance avec une application domodom ,gratuit sur playstore

domodom ? connais pas. Un lien à proposer ?

C'est vague tout ça ...

Quel support physique est-il envisagé ? filaire ? WIFI ?

Pourquoi une MEGA ?
Pour communiquer via IP il faudra lui adjoindre soit une carte Ethernet soit une carte WIFI.

Combien de relais ?

La solution WIFI ESP8266 ou ESP32 a t-elle été examinée ?
Voir également SONOFF.

domodom est une application android que j'ai programmé,c'est du filaire avec une carte ethernet ,on peut commander 8 relais,j'ai commencé par le plus facile la solution ethernet,je pense faire une version wifi esp8266 va sur playstore telecharger l'appli en tapant domodom,j'ai choisi une mega car je ne suis pas limiter,plus de memoire plus de port.

il y a un guide dans l'application avec le schema de cablage et le programme arduino

je vais vous presenter ,une alarme realiser avec un arduino la gestion des zone se fera en filaire
commander par une application android avec envoi de notification en cas d'alarme,je suis sur le projet en ce moment et pense finir fin octobre,l'appli sera gratuite

Que voulez vous faire:
demander de l'aide
faire de la pub
informer? (dans les 3 cas, un lien IT serait utile, car votre texte est un peu trop concis; dans les eux derniers cas, ce lien serait quasiment indispensable)

voici le lien

je voulais faire un peu de pub
et si je suis bloqué sur le programme pour l'alarme je vais vous demander de l'aide

Programme alarme arduino

le programme arduino devra fonctionner en client et en serveur simultanément
ainsi que l'appli android

j'ai trouvé un programme sur internet que je vais exploiter

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
IPAddress ip(192,168,1,102); // ip in lan
IPAddress gateway(192,168,1,1); // internet access via router
IPAddress subnet(255,255,255,0); //subnet mask
IPAddress myserver(192,168,1,77); // zoomkat web page
//IPAddress myserver(192,168,1,20); // zoomkat web page

EthernetServer server(8080); //server port
EthernetClient client;
String readString;
int etatZone=0;
int enService=0;

//////////////////////

void setup(){

pinMode(4, OUTPUT); //pin selected to control
pinMode(3, INPUT);
Ethernet.begin(mac, ip, subnet, gateway);
server.begin();
Serial.begin(9600);
Serial.println("server/client 1.0 test 12/08/11"); // keep track of what is loaded
Serial.println("Send an g in serial monitor to test client"); // what to do to test client

}

void loop(){
// check for serial input

etatZone=digitalRead(3);

if (etatZone==0 && enService)
sendGET();

EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

//read char by char HTTP request
if (readString.length() < 200) {

//store characters to string
readString += c;
Serial.print(c);
}

//if HTTP request has ended
if (c == '_') {

///////////////
Serial.println(readString); //print to serial monitor for debuging

//now output HTML data header
if(readString.indexOf('_') >=0) { //don't send new page
client.println("HTTP/1.1 204 Zoomkat");
client.println();
client.println();
}
else {
client.println(F("HTTP/1.0 200 OK"));
client.println(F("Content-Type: application/json"));
client.println(F("Connection: close"));
client.print(F("Content-Length: "));

}

delay(1);
//stopping client
client.stop();

///////////////////// control arduino pin
if(readString.indexOf("MARCHE") >0)//checks for on
{
digitalWrite(4, HIGH); // set pin 4 high
//Serial.println("Led On");
enService=1;
}
if(readString.indexOf("ARRET") >0)//checks for off
{
digitalWrite(4, LOW); // set pin 4 low
//Serial.println("Led Off");
enService=0;
}
//clearing string for next read
readString="";

}
}
}
}
}

//////////////////////////
void sendGET() //client function to send/receie GET request data.
{
if (client.connect(myserver, 8080)) {
Serial.println("connected");
client.println("GET /~shb/arduino.txt HTTP/1.0");
client.println("ALARME Z1");
client.println();
}
else {
Serial.println("connection failed");
Serial.println();
}

while(client.connected() && !client.available()) delay(1); //waits for data
while (client.connected() || client.available()) { //connected or data available
char c = client.read();
Serial.print(c);
}

Serial.println();
Serial.println("disconnecting.");
Serial.println("==================");
Serial.println();
client.stop();

}

Il faudrait respecter certaines règles :

Je ne vois pas l'utilité de delay(1) -induit un retard d'une milliseconde?
dans while(client.connected() && !client.available()) delay(1); //waits for data
Que veut dire zoomkat?