Mein Home Security System ist wieder einen großen Schritt weitergekommen.
Es ist jetzt möglich den Status auf einem vom Arduino bereitgestellten Webserver auszulesen.
Dank dyndnss.net könnt ihr meinen Arduino auch Live verfolgen.
(Ein Tutorial wie man DynDns einrichtet, ist auch in Planung)
Video:
Code:
#include
#include
#include
SoftwareSerial rfid(3, -1);
char code[10 + 1];
char c;
int Readingbytes = 0;
int BadInput = 0;
String Pin0 = "0000000000";
String Pin1 = "1111111111";
String Pin2 = "2222222222";
boolean User1 = false;
boolean User2 = false;
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,178, 177);
EthernetServer server(80);
void setup(){
Serial.begin(9600);
rfid.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop(){
Serial.flush();
if (rfid.available() >= 10){
if(rfid.read() == 02){
Readingbytes = 0;
while(Readingbytes < 10){
char zeichen = rfid.read();
code[Readingbytes] = zeichen;
Readingbytes++;
}
code[Readingbytes] = 0;
Pin0 = code;
if (Pin0 == Pin1){
BadInput = 0;
User1 = true;
Pin0 = 0;
delay(5000);
}
else if (Pin0 == Pin2){
BadInput = 0;
User2 = true;
Pin0 = 0;
delay(5000);
}
else{BadInput++;}
Pin0 = 0;
signal();
serial_flush_buffer();
}
}
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("");
client.println("");
client.println("");
client.println("
IDEA-DEV-STORAGE: Home Security System
“); client.println(“”); if(User1){client.println(“User1 (active)”);} if(User2){client.println(“User2 (active)”);} if(!User1){client.println(“User1 (inactive)”);} if(!User2){client.println(“User2 (inactive)”);} client.println(“”); client.println(“
");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
void signal(){
if (BadInput <= 9 && BadInput>0 ){
//WARN
}
}
void serial_flush_buffer(){
while (Serial.read() >= 0);
}
Partlist



