Arachnio e-post-aktiverade rörelsesensor (4 / 4 steg)
Steg 4: programvara
Denna kod beror på ITEAD WeeESP8266 biblioteket. Starta by nedladda och installera det: https://github.com/itead/ITEADLIB_Arduino_WeeESP82...
Denna kod är baserad på det TCPClientSingle exemplet från WeeESP8266 bibliotek och denna e-tutorial från Arduino Playground. Det är utformat för att vara ständigt ansluten till WiFi; Detta exempel göra inte någonting med energisparfunktioner och behöver en biffiga batteri och solpaneler att arbeta.
Om du gillade denna tutorial, vänligen stödja Arachnio på kicken: https://www.kickstarter.com/projects/logos-electro/arachnio
< p > #include "ESP8266.h" < /p >< p > #define SSID "mySSID"
#define lösenord "mittlösenord"
#define HOST_NAME "mail.mydomain.com"
#define HOST_IP "1.2.3.4"
#define HOST_PORT (25)
#define från "< mig
#define till "< du PIRPIN 12 < /p >< p > ESP8266 wifi(Serial1); < /p >< p > int sendMail (void); < /p >< p > void setup(void)
{
Serial.BEGIN(9600);
Serial.Print ("setup begin\r\n");
Serial.Print ("FW-Version:");
Serial.println(WiFi.GetVersion().c_str());
om (wifi.setOprToStationSoftAP()) {
Serial.Print ("till station + softap ok\r\n");
} annat {
Serial.Print ("till station + softap err\r\n");
}
om (wifi.joinAP (SSID, lösenord)) {
Serial.Print ("gå med AP success\r\n");
Serial.Print("IP:");
Serial.println (wifi.getLocalIP().c_str());
} annat {
Serial.Print ("gå med AP failure\r\n");
}
om (wifi.disableMUX()) {
Serial.Print ("inre ok\r\n");
} annat {
Serial.Print ("inre err\r\n");
}
Serial.Print ("setup end\r\n");
pinMode (PIRPIN, indata);
}
void loop(void)
{
om (digitalRead(PIRPIN) == hög) {
Delay(500);
om (digitalRead(PIRPIN) == hög) {
sendMail();
}
}
Delay(30000);
} < /p >< p > int sendMail (void) {
char buf [256] = {0}.
char rbuf [32] = {0}.
om (wifi.createTCP (HOST_NAME, HOST_PORT)) {
Serial.Print ("skapa tcp ok\r\n");
} annat {
Serial.Print ("skapa tcp err\r\n");
Return 0;
}
strcat (buf, "helo");
strcat (buf, HOST_IP);
WiFi.send ((const uint8_t*) buf, strlen(buf));
om (! wifi.recv ((uint8_t*) rbuf, 32)) return 0;
BUF [0] = '\0'; återställa buf för nästa uppsättning strcat samtal
strcat (buf, "till: du");
strcat(BUF, to);
strcat (buf, "\r\nFrom: mig");
strcat(BUF, from);
strcat (buf, "\r\nSubject: något rörd! \r\n\r\n");
strcat (buf, "rörliga sak var detected!\r\n.\r\n");
WiFi.send ((const uint8_t*) buf, strlen(buf));
om (! wifi.recv ((uint8_t*) rbuf, 32)) return 0;
BUF [0] = '\0'; återställa buf för nästa uppsättning strcat samtal
strcat (buf, "QUIT\r\n");
WiFi.send ((const uint8_t*) buf, strlen(buf));
om (! wifi.recv ((uint8_t*) rbuf, 32)) return 0;
om (wifi.releaseTCP()) {
Serial.Print ("release tcp ok\r\n");
} annat {
Serial.Print ("release tcp err\r\n");
}
återvända -1;
} < /p >