Alarme par wifi

bonjour tout le monde,
depuis 2 jours, je me suis penché sur un projet afin de chasser les corbeaux de mes parcs à canards.
jusque là, ca pouvait encore aller, mais depuis peu, ils s'attaquent aux oeufs directement et depuis avant hier, j'ai des naissances, donc je joue plus du tout.
il y a bien la solution radicale du calibre 12, mais bon et j'ai pas de cage à pie sous la main.

donc j'ai ressortis un petit Wishield de mes tiroirs (merci encore pour ce petit cadeau XD Benvenuto et Artouste)
on a pas mal galéré tous pour faire certaines choses avec ce shield.

le cahier des charges :
autonome
accès à l'interface depuis n'importe quel pc, gsm, tablette
faire du bruit

pour ceux qui me connaissent, je bosse dans le wifi (hotspot) et les luminaires solaires.
donc je suis partit sur la base d'une tête de lampadaire solaire rechargeant une batterie pour l'autonomie.
une borne wifi b/g/n faisant hotspot public d'un coté avec un réseau privé supplémentaire, le tou sur le toit de la maison, il y en a toujours au moins 2-3 en test :smiley:
une sirène 12v avec relais 5v

le but est tout simple, actionner la sirène dès que je vois via une cam ip ces salp#####s de becs droits dans les parcs.
je vous donne le code en dessous, les photos, ca sera quand j'aurai un peu de temps.

je vais rajouter l'option pour allumer le lampadaire par la même occasion :wink:

PS : ca peut servir a faire peur à des amis aussi héhéhéhé quand ils passent à coté de la voiture

//infobarquee.fr
#include <WiServer.h>

// Wireless configuration parameters ----------------------------------------
unsigned char local_ip[] = {192,168,2,200}; // IP address of WiShield
unsigned char gateway_ip[] = {192,168,2,2}; // router or gateway IP address
unsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local network
char ssid[] = {"mort_aux_corbacs"}; // max 32 bytes
unsigned char security_type = 3; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {"pas_touche_aux_oeufs"}; // max 64 characters

// WEP 128-bit keys
prog_uchar wep_keys[] PROGMEM = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3
};

// setup the wireless mode; infrastructure - connect to AP; adhoc - connect to another WiFi device
#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2
unsigned char wireless_mode = WIRELESS_MODE_INFRA;
unsigned char ssid_len;
unsigned char security_passphrase_len;
// End of wireless configuration parameters ----------------------------------------

String readString = String(30); //string for fetching data from address
boolean LED = false; //LED status flag
int ledPin = 4; // LED pin
// This is our page serving function that generates web pages
boolean sendMyPage(char* URL) {

// Check if the requested URL matches "/"
if (strcmp(URL, "/") > -1) {
// Use WiServer's print and println functions to write out the page content
WiServer.print("");
WiServer.print("

LED control

");
if (LED == true) {
WiServer.print(" ");
} else {
WiServer.print(" ");
}
WiServer.print("
");

//printing LED status
WiServer.print("LED status: ");
if (strcmp(URL, "/?L=1") > -1)
{
LED = true;
WiServer.print("ON");
digitalWrite(ledPin, HIGH);
} else {
LED = false;
WiServer.print("OFF");
digitalWrite(ledPin, LOW);
}
WiServer.print("");

// URL was recognized
return true;
}
// URL not found
return false;
}

void setup() {
// Initialize WiServer and have it use the sendMyPage function to serve pages
WiServer.init(sendMyPage);

// Enable Serial output and ask WiServer to generate log messages (optional)
Serial.begin(57600);
WiServer.enableVerboseMode(true);
pinMode(ledPin,OUTPUT);
//digitalWrite(ledPin, HIGH);
}

void loop(){

// Run WiServer
WiServer.server_task();

delay(10);
}

infobarquee:
bonjour tout le monde,
depuis 2 jours, je me suis penché sur un projet afin de chasser les corbeaux de mes parcs à canards.
jusque là, ca pouvait encore aller, mais depuis peu, ils s'attaquent aux oeufs directement et depuis avant hier, j'ai des naissances, donc je joue plus du tout.
il y a bien la solution radicale du calibre 12, mais bon et j'ai pas de cage à pie sous la main.

donc j'ai ressortis un petit Wishield de mes tiroirs (merci encore pour ce petit cadeau XD Benvenuto et Artouste)
on a pas mal galéré tous pour faire certaines choses avec ce shield.

le cahier des charges :
autonome
accès à l'interface depuis n'importe quel pc, gsm, tablette
faire du bruit

pour ceux qui me connaissent, je bosse dans le wifi (hotspot) et les luminaires solaires.
donc je suis partit sur la base d'une tête de lampadaire solaire rechargeant une batterie pour l'autonomie.
une borne wifi b/g/n faisant hotspot public d'un coté avec un réseau privé supplémentaire, le tou sur le toit de la maison, il y en a toujours au moins 2-3 en test :smiley:
une sirène 12v avec relais 5v

le but est tout simple, actionner la sirène dès que je vois via une cam ip ces salp#####s de becs droits dans les parcs.

bonsoir
tant qu'à faire du bruit pourquoi pas plutôt diffuser des cris de faucon et/ou de détresse corbeaux ? :grin:
un petit lecteur mp3 à peanuts, une bande son en boucle avec differents cris pour eviter l'accoutumance, un peti ampli et HP etanche
et tu alimente juste l'ampli quant tu a besoin (à la place de la sirene) , ce n'est pas très différent de ce qui est utilisé sur certaines zones aeroportuaires.

en (re)parlant du wishield ou du blackwidow, c'etait un peu galere, mais finalement bien sympa, sauf un truc : je n'ai jamais pu obtenir une communication en ADHOC

bonne remarque Artouste pour les cris de détresse.
je suis pas certain que mes canards aimeraient ce genre de bande son, ni les canetons ou oisons, un peu stressant pour eux.
mais par la suite, je vais modifier le code pour faire une alarme anti intrusion a rupture de fil.

pas essayé le ADHOC du capitaine :slight_smile: