Salve a tutti da poco ho scoperto arduino e ho voluto cimentarmi nello scrivere qualche riga di codice per creare un semplice allarme di casa. Possiedo arduino mega con ethernet shield e ho un sensore che da un input solo nel caso che la porta si apra.
Da inesperto quale sono mi chiedevo come ricevere questo input dall'esterno. Basta che io configuri come input ad esempio il pin 13 e faccia un semplice digitalRead(13)?????
int val =0;
val = digitalRead(13);
Potrebbe andare bene così?
In linea di massima si ma dipende dal sensore che usi (analogico o digitale) inoltre mettilo al contrario e cioè come segnale negato altrimenti basta tagliare il filo edi il tuo allarme diventa inutile.
Prova a vedere se ci sono dei sensori analogici ad effetto "tamper" "jumper" una cosa del genere.
Poi le gestisci con le analogiche del MEGA.
Ok grazie il mio sensore è digitale quindi basterebbe che lo collego in un semplice pin giusto?
Ora siccome io gestisco tutto tramite la rete può andare un codice così visto che ora non posso provarlo?
#include <SPI.h>
#include <Ethernet.h>
#include <WebServer.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 1, 210};
int val = 0;
boolean test = false;
WebServer webserver("", 80);
void Start(WebServer &server, WebServer::ConnectionType type,
char *url_param, bool param_complete)
{
server.httpSuccess();
if (type != WebServer::HEAD)
{
String s = "";
if (param_complete == true)
{
s = url_param;
if ( s == "test=ON")
{
test = true;
val = digitalRead(13);
while(val!=0){
digitalWrite(14, HIGH);
delay(500);
digitalWrite(14, LOW);
delay(100);
}
}
else if ( s == "test=OFF")
{
test = false;
}
}
P(htmlHead) =
"<html>"
"<head>"
"<style type\"text/css\">"
"#test {"
"position:absolute;"
"top: 300px;"
"left: 200px;"
"}"
"</head>"
"<body>";
server.printP(htmlHead);
server.print("<h2><b>TITOLO</b2></h2>");
if(test == false)
server.print("<div id =\"test\"><img src=\"http://i.imgur.com/dy1nMoz.png?1\" onclick=\"location.href='index.htm?test=ON'\"></div>");
else
server.print("<div id =\"test\"><img src=\"http://i.imgur.com/7BwcQPT.png?1\" onclick=\"location.href='index.htm?test=OFF'\"></div>");
}
}
void setup()
{
Ethernet.begin(mac, ip);
webserver.setDefaultCommand(&Start);
webserver.addCommand("index.htm", &Start);
webserver.begin();
delay(100);
pinMode(13, INPUT);
pinMode(14, OUTPUT);
}
void loop()
{
webserver.processConnection();
}