Sensor de movimiento habilitado para correo electrónico de Arachnio: 4 pasos

Sensor de movimiento habilitado para correo electrónico de Arachnio: 4 pasos

Tabla de contenido:

Anonim

Este Instructable le indica cómo crear un sensor de movimiento con el Arachnio que le enviará un correo electrónico cuando detecte movimiento, similar al proyecto al que se hace referencia en el video Arachnio Kickstarter pero adaptado para la producción de Arachnio. Para mantener el código simple, no he incluido ningún uso del RTC, la tarjeta SD o los modos de suspensión.

Esta construcción utiliza un sensor PIR, pero el código y la mayoría de la configuración del hardware funcionarán igual de bien con cualquier sensor que produzca una salida digital.

Este Instructivo utiliza el contenido de la recompensa del Arachnio Sensor Pack, o del Arachnio Node Pack más un sensor PIR, batería y panel solar.

Tenga en cuenta que todos los Arachnios y los tableros de accesorios utilizados aquí son prototipos y los tableros finales pueden variar ligeramente de los de aquí.

Suministros:

Paso 1: Herramientas y materiales

Para este proyecto, necesitarás las siguientes herramientas:

  • Un buen soldador con temperatura controlable y una pequeña punta cónica o destornillador.
  • Un pequeño par de cortadores diagonales.
  • Pelacables
  • Un tornillo de banco u otro titular de trabajo

Necesitarás los siguientes materiales:

  • Un aracnio
  • Un arachnode
  • Un sensor PIR: en este proyecto, estamos usando el Parallax One, ya que eso es lo que Fry lleva.
  • Cable
  • Una batería LiPo y un panel solar (opcional).

Paso 2: Conecta el sensor PIR

El sensor PIR tiene tres pines … VCC, GND y OUT. Utilicé un cable plano multicolor para el cable en este proyecto, ya que creo que es más fácil asegurarme de que esté bien sujeto (y que haya algo alrededor). Como se puede ver en la segunda imagen, fui con negro a GND, rojo con VCC y marrón con OUT.

Soldar los cables a los pines es complicado. La forma de comenzar es separar y pelar los extremos del cable. Luego aplico una capa generosa de soldadura a los pasadores y los extremos del cable.

Con el tablero sostenido en una prensa o manos de ayuda, luego sostengo el extremo recubierto de soldadura de cada cable al pin correspondiente y los fundo junto con la plancha.

Asegúrese de que el puente esté en la posición 'alta' (es decir, opuesta a lo que está aquí), por lo que la salida es continuamente alta en presencia de movimiento.

Paso 3: Conectarlo todo

Una vez que tenga cables conectados al sensor PIR, es hora de conectar el sensor al Arachnode:

VCC => 3.3V

GND => GND

FUERA => D12

Ese es el final de la parte física del ensamblaje, a menos que desee montar el sensor en un gabinete o placa de montaje. Creo que eso es muy personal para su aplicación, por lo que no lo he cubierto aquí.

Paso 4: Software

Este código depende de la biblioteca ITEAD WeeESP8266. Comience por descargarlo e instalarlo: http: //github.com/itead/ITEADLIB_Arduino_WeeESP82 …

Este código se basa en el ejemplo de TCPClientSingle de la biblioteca WeeESP8266 y en este tutorial de correo electrónico de Arduino Playground. Está diseñado para ser conectado continuamente al WiFi; Este ejemplo no hace nada con la administración de energía y necesita una batería robusta y un panel solar para funcionar.

Si te gustó este tutorial, por favor apoya a Arachnio en Kickstarter:

#include "ESP8266.h"

#define SSID "mySSID" #define PASSWORD "myPassword" #define HOST_NAME "mail.mydomain.com" #define HOST_IP "1.2.3.4" #define HOST_PORT (25) #define FROM ""#define TO"'

#define PIRPIN 12

ESP8266 wifi (Serial1);

int sendMail (void);

configuración de vacío (void) {Serial.begin (9600); Serial.print ("setup comience r n"); Serial.print ("Versión FW:"); Serial.println (wifi.getVersion (). C_str ()); if (wifi.setOprToStationSoftAP ()) {Serial.print ("to station + softap ok r n"); } else {Serial.print ("to station + softap err r n"); } if (wifi.joinAP (SSID, PASSWORD)) {Serial.print ("Join AP success r n"); Serial.print ("IP:"); Serial.println (wifi.getLocalIP (). C_str ()); } else {Serial.print ("Error en unirse a AP r n"); } if (wifi.disableMUX ()) {Serial.print ("single ok r n"); } else {Serial.print ("single err r n"); } Serial.print ("setup end r n"); pinMode (PIRPIN, ENTRADA); } bucle nulo (nulo) {if (digitalRead (PIRPIN) == HIGH) {retardo (500); if (digitalRead (PIRPIN) == HIGH) {sendMail (); }} retraso (30000); }

int sendMail (void) {char buf 256 = {0}; char rbuf 32 = {0}; if (wifi.createTCP (HOST_NAME, HOST_PORT)) {Serial.print ("create tcp ok r n"); } else {Serial.print ("create tcp err r n"); devuelve 0; } strcat (buf, "helo"); strcat (buf, HOST_IP); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) devuelve 0; buf 0 = ' 0'; // restablecer buf para el siguiente conjunto de llamadas strcat strcat (buf, "To: You"); strcat (buf, TO); strcat (buf, " r nFrom: Me"); strcat (buf, FROM); strcat (buf, " r nSujeto: Algo movido! r n r n"); strcat (buf, "¡Se detectó una cosa en movimiento! r n. r n"); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) devuelve 0; buf 0 = ' 0'; // restablecer buf para el siguiente conjunto de llamadas strcat strcat (buf, "QUIT r n"); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) devuelve 0; if (wifi.releaseTCP ()) {Serial.print ("release tcp ok r n"); } else {Serial.print ("release tcp err r n"); } devuelve -1; }