Capteur de mouvement Arachnio compatible courrier électronique: 4 étapes

Capteur de mouvement Arachnio compatible courrier électronique: 4 étapes

Table des matières:

Anonim

Cet Instructable vous explique comment créer un capteur de mouvement avec l’Arachnio qui vous enverra un courrier électronique lorsqu’il détectera un mouvement, similaire au projet référencé dans la vidéo Arachnio Kickstarter mais adapté à la production Arachnio. Afin de garder le code simple, je n'ai inclus aucune utilisation du RTC, de la carte SD ou des modes veille.

Cette version utilise un capteur PIR, mais le code et la majeure partie de la configuration matérielle fonctionneront tout aussi bien avec tout capteur produisant une sortie numérique.

Ce moniteur utilise le contenu de la récompense Arachnio Sensor Pack, ou du pack Arachnio Node Pack, plus un capteur PIR, une batterie et un panneau solaire.

Veuillez noter que toutes les cartes Arachnios et accessoires utilisées ici sont des prototypes et que les cartes finales peuvent différer légèrement de celles présentées ici.

Provisions:

Étape 1: Outils et matériel

Pour ce projet, vous aurez besoin des outils suivants:

  • Un bon fer à souder à température réglable et une petite pointe conique ou à tournevis
  • Une petite paire de coupe diagonale
  • Pinces à dénuder
  • Un étau ou autre support de travail

Vous aurez besoin du matériel suivant:

  • Un arachnio
  • Un arachnode
  • Un capteur PIR - dans ce projet, nous utilisons le capteur Parallax puisque c'est ce que porte Fry's.
  • Câble
  • Une batterie LiPo et un panneau solaire (en option)

Étape 2: câbler le capteur PIR

Le capteur PIR a trois broches: VCC, GND et OUT. J'ai utilisé un câble ruban multicolore pour le fil sur ce projet, car je pense qu'il est plus facile de m'assurer qu'il est bien épinglé (et que j'en ai laissé traîner). Comme vous pouvez le voir sur la deuxième image, je suis passé du noir au GND, du rouge au VCC et du brun au OUT.

Souder les fils aux broches est délicat. Je commence par séparer et dénuder les extrémités du fil. J'applique ensuite une couche généreuse de soudure sur les broches et les extrémités du fil.

La planche étant maintenue dans un étau ou des mains, je tiens l'extrémité de chaque fil revêtue de brasure à la broche correspondante et je les fais fondre avec le fer à repasser.

Assurez-vous que le cavalier est en position «haute» (c’est-à-dire opposé à ce qu’il est ici), afin que la sortie soit continuellement élevée en présence de mouvement.

Étape 3: connectez le tout

Une fois que vous avez connecté les câbles au capteur PIR, il est temps de connecter le capteur à l’Arachnode:

VCC => 3.3V

GND => GND

OUT => D12

C'est la fin de la partie physique de l'assemblage, sauf si vous souhaitez monter le capteur dans un boîtier ou une plaque de montage. Je pense que cela est très personnel à votre application, donc je ne l'ai pas couverte ici.

Étape 4: logiciel

Ce code dépend de la bibliothèque ITEAD WeeESP8266. Commencez par le télécharger et l’installer: http: //github.com/itead/ITEADLIB_Arduino_WeeESP82 …

Ce code est basé sur l'exemple TCPClientSingle de la bibliothèque WeeESP8266 et sur ce didacticiel concernant les courriels provenant du site Arduino Playground. Il est conçu pour être connecté en permanence au WiFi. Cet exemple ne fait rien avec la gestion de l'alimentation et nécessite une batterie robuste et un panneau solaire pour fonctionner.

Si vous avez aimé ce tutoriel, veuillez soutenir Arachnio sur 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 (série1);

int sendMail (void);

void setup (void) {Serial.begin (9600); Serial.print ("setup begin r n"); Serial.print ("Version 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 ("Rejoindre un AP succès r n"); Serial.print ("IP:"); Serial.println (wifi.getLocalIP (). C_str ()); } else {Serial.print ("Échec de la jointure du point d'accès r n"); } if (wifi.disableMUX ()) {Serial.print ("single ok r n"); } else {Serial.print ("unique err r n"); } Serial.print ("setup end r n"); pinMode (PIRPIN, INPUT); } boucle vide (void) {if (digitalRead (PIRPIN) == HAUT) {delay (500); if (digitalRead (PIRPIN) == HAUT) {sendMail (); }} delay (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"); retourne 0; } strcat (buf, "helo"); strcat (buf, HOST_IP); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) renvoie 0; buf 0 = ' 0'; // reset buf pour la prochaine série d'appels strcat strcat (buf, "To: You"); strcat (buf, TO); strcat (buf, " r nDe: Me"); strcat (buf, FROM); strcat (buf, " r nSubject: quelque chose a bougé! r n r n"); strcat (buf, "Un objet en mouvement a été détecté! r n. r n"); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) renvoie 0; buf 0 = ' 0'; // réinitialisation de buf pour la prochaine série d'appels strcat strcat (buf, "QUIT r n"); wifi.send ((const uint8_t *) buf, strlen (buf)); if (! wifi.recv ((uint8_t *) rbuf, 32)) renvoie 0; if (wifi.releaseTCP ()) {Serial.print ("release tcp ok r n"); } else {Serial.print ("release tcp err r n"); } return -1; }