Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

MotionSense

Componenten en benodigdheden

Arduino Mega
× 1
Espressief ESP8266 ESP-01
× 1
HC-SR501 PIR-sensor
× 1
1000uF condensator
× 1
Weerstanden en jumperdraden
× 1

Benodigde gereedschappen en machines

Draadknipper

Apps en online services

Pushbullet

Over dit project

MotionSense

Inleiding

In deze zelfstudie zal ik bespreken hoe u een systeem kunt maken dat ongeoorloofde activiteit of inbraak meldt. Ik had Arduino en PIR gebruikt voor activiteitsdetectie en ESP8266 voor wifi-connectiviteit. Mijn Xperia Z1 wordt gebruikt voor het ontvangen van meldingen. Ik gebruikte de populer-notificatie-app Pushbullet voor het ontvangen van meldingen en de Pushbullet-API's voor het verzenden van meldingen vanaf Arduino.


Vereiste kennis

  • Kennis van Arduino en basishardware [ bezoek:www.arduino.cc]
  • Idee over AT-commando's [lees:http://www.codeproject.com/Articles/85636/Introduction-to-AT-commands-and-its-uses]
  • PIR, hoe het werkt [ over:https://en.wikipedia.org/wiki/Passive_infrared_sensor]


'Dingen' gebruikt

Arduino Mega 2560

ESP8266 seriële WiFi ESP-01 variant

HC-SR501 PIR-sensor

1000 µF condensator, verschillende weerstanden [ condensator voor wifi-voeding, weerstand voor spanningsregeling ]

Enkeldraads 0,5 mm draden [ connectorkabel ]

Vrouwelijke-vrouwelijke jumperdraden [ connectoren ]

Xperia Z1 [ voor de Pushbullet-app is elke smartphone voldoende ]

Mijn laptop [ codering in arduino ]

Arduino IDE [v1.6.4]


Wat te DOEN

Omgeving ingesteld: Als je arduino niet hebt geïnstalleerd, installeer het dan vanaf de arduino-website.

Kopieercode verbergen

PIR instellen: 

Ik neem aan dat je maximale gevoeligheid nodig hebt met een minimale waarschuwingscyclus om een ​​betere detectiesnelheid te krijgen. Stel daarom PIR-sensorpotten zo in:

Open nu de witte bol van de PIR-sensor en je ziet de pinbeschrijving:GND | UIT | VCC

Sluit vrouwelijke jumpers aan met GND VCC en OUT.

Sluit nu het andere uiteinde van de jumperpinnen (verbonden met PIR) aan op Arduino:

PIR GND -> Arduino GND

PIR VCC -> Arduino 5V

PIR OUT -> DIGITALE pin 2 [ je kunt een pin kiezen volgens je keuze en ook de Arduino-code wijzigen ]

Om je PIR te testen kun je deze code gebruiken in Arduino Playground

Dus uw PIR sensor is KLAAR aan het werk

Kopieercode verbergen

Arduino inschakelen om via wifi verbinding te maken met internet : 

Ik heb ESP8266 (variant ESP-01) seriële WiFi-module gebruikt voor mijn project, dat vrij goedkoop is. Behalve ESP-01 zijn er nog andere varianten beschikbaar. Er zijn ook verschillende firmwares beschikbaar. Ik gebruikte de standaard, AT-firmware. Controleer deze twee afbeeldingen voor verbindingsreferentie

Geen verbinding maken met ESP8266 met Arduino met jumperdraad:

ESP8266 GND -> Arduino GND

ESP8266 UXTX (zendpin) -> Arduino RX2 (arduino mega-ontvanger pin, d.w.z. Serial2 in code)

ESP8266 CH_PD (HOOG maken) -> Arduino 5V (voeg één spanningsregelaar 0f 3.3 toe, aangezien ESP 8266 3.3v kan verdragen. Ik heb een weerstand gebruikt omdat ik geen spanningsregelaar had. Maar een spanningsregelaar heeft de voorkeur)

laat RST, GPIO2 en GPIO0 niet verbonden

ESP8266 URXD (ontvanger pin) -> Arduino TX2 (arduino-ontvangerpin, bijv. Serial2 in code)

ESP8266 VCC -> 3.3v van Arduino

ESP8266 heeft een stroomprobleem op het moment van gegevensoverdracht. Het haalt zoveel stroom uit Arduino dat Arduino opnieuw kan opstarten als Arduino wordt gevoed via pc-USB. Zelfs met 5v voeding via de stekker is mogelijk niet voldoende. Daarom wordt het altijd aanbevolen om een ​​externe voeding te gebruiken voor ESP8266. In mijn experiment heb ik hier echter een snelle en goedkope oplossing voor gebruikt. Ik heb een elektrolytcondensator van 1000 µF gebruikt om ESP8266 van voldoende stroom te voorzien.

langere pin -> ESP8266 VCC aangesloten op 3.3v

kortere pin -> ESP8266 GND aangesloten op Arduino GND

Dus uw ESP8266 WiFi-module is KLAAR aan het werk

Kopieercode verbergen

Pushbullet-melding: 

Met Pushbullet kunt u uw verschillende apparaten naadloos op de hoogte stellen via pushmeldingen. We gaan de API gebruiken voor pushmeldingen van onze PIR-sensor. LEES MEER over Pushbullet

Laten we beginnen.

Ga naar PushBullet

Registreer jezelf, download chrome-app en smartphone-app.

Log in op Pushbullet op uw apparaten.

Kijk nu hoe het werkt om enkele push-berichten naar uw apparaten te sturen met de app of Chrome-extensie die op uw pc is geïnstalleerd.

Ga naar API-sectie

OPMERKING:hier zijn alle API-links en URL's voor https-verbinding en Arduino kan geen https gebruiken, omdat het niet zo krachtig is om dat aan te pakken. Daarom zullen we de HTTP-versie van die API's gebruiken die hier niet wordt vermeld in pushbullet-documenten, maar ik heb deze referentie van github .

In pushbullet-documenten voor pushen hadden ze de URL genoemd die HTTPS is, dus we zullen de HTTP-URL en de poort gebruiken die in dat github-project wordt geleverd. We zullen ook /pushbullet . toevoegen eerder en REST-pad dat ze hadden genoemd.

Voorbeeld:

voor notificatie push naar alle apparaten, volgens pushbullet doc , REST-pad is : /v2/duwen

maar we zullen gebruiken:/pushbullet/v2/pushes

basis-URL:173.17.168.19

poort:8181

Controleer nu verschillende API's en lees beschrijvingen om er meer over te weten. Je kunt ze later gebruiken voor je verbeterde versie van deze tutorial.

Je hebt je authenticatiesleutel nodig om vanuit Arduino te pushen. Ga dus naar uw Account

Zoek naar Toegangstoken , kopieer en bewaar dit op uw pc op een veilige plaats.

Dus Pushbullet is nu KLAAR voor het verzenden en ontvangen van pushmeldingen.


Het is nu tijd om te coderen

Open dit GitHub-project

Ga naar de map Experimenten. Daar vindt u MotionSense.ino , uw code die een melding naar uw Smart Devices stuurt.

Kopieer deze code naar arduino IDE en sluit je arduino aan (al ingesteld met wifi en PIR-sensor).

Verander nu deze parameters:

Kopieercode verbergen

#define SSID "YOURSSID" /* vervang YOURSSID door de naam van uw wifi-toegangspunt */#define PASS "YOURPASSWORD" /* vervang UW PASWOORD door uw wifi-toegangspunt-wachtwoord */

Misschien wilt u de PIR OUT-pin wijzigen in de gewenste pin

Kopieercode verbergen

#define PIRPIN 2 /* wijzig de gewenste digitale pin van je Arduino */#define AUTH_TOKEN "YOUR_TOKEN_FROM_YOUR_ACCOUNT";/* vervang YOUR_TOKEN_FROM_YOUR_ACCOUNT door je toegangstoken*/

Gebruik ook uw toegangstoken zoals vermeld in het bovenstaande fragment.

Nu compileren en uitvoeren.

Het duurt even voor de sensorkalibratie, de initialisatie van de WiFi-module en het verbinden met uw toegangspunt.

U kunt deze dingen zien in uw seriële monitor.

Nadat alles klaar is, begint het door de hoofdlus te lopen en je zult zien

"Alles in orde | Geen inbreuk "

continu in uw seriële monitor.

Telkens wanneer u voor uw PIR-sensor gaat, zal deze beweging detecteren en pushmeldingen naar uw apparaten sturen.


Code in het kort begrijpen

#defines zijn een reeks vooraf gedefinieerde parameters die u dienovereenkomstig moet wijzigen

In de set-up kun je arduino Serial() initialiseren. Serial2 is voor seriële wifi-toegang.

Functies begrijpen :

Kopieercode verbergen

sensor_kalibratie (); /* Het kalibreert de sensor voor de juiste output. We moeten PIRPIN daarvoor uitschakelen */

Kopieercode verbergen

check_WiFi_radio (); /* Controleert of WiFi-module in orde is of niet */

Kopieercode verbergen

reset_wifi (); /* reset WiFi-module om elk probleem op te lossen */

Kopieercode verbergen

set_wifi_mode (); /* Stel WiFi-module in als client om verbinding te maken met toegangspunt */

Na het instellen van de wifi-modus moet je wifi opnieuw instellen om het in te stellen

Kopieercode verbergen

check_wifi_stat (); /* Controleert of uw WiFi-module is verbonden met AP of niet */

Kopieercode verbergen

connect_ssid (); /* indien niet verbonden, zal verbinding maken met uw verbindingsparameter */

Hiertoe is uw WiFi-module geïnitialiseerd en verbonden. Nu moet u de PIR-uitlezing controleren of deze beweging heeft gedetecteerd of niet. Het zal onder de hoofdlus zijn.

Kopieercode verbergen

pirRead ();/* leest PIR-waarde, 0 of 1. Indien 1, dan Motion Sensed, indien 0, dan is er niets */

Als er iets wordt gedetecteerd, moet u eerst verbinding maken met de Pushbullet-server

Kopieercode verbergen

server_connect (); /* verbinding maken met server */

Nu pushmelding

Kopieercode verbergen

post (); /* pushmelding naar alle apparaten */

loskoppelen

Kopieercode verbergen

server_disconnect (); /* serververbinding sluiten */

en loop door

Code

MotionSense-code
Lees repository readme voor code-uitleghttps://github.com/anupam19/ESP8266-experiments

Schema's


Productieproces

  1. Tic Tac Toe-spelvisitekaartje
  2. Multitemperatuursensor
  3. DIY-soldeerboutbesturing voor 862D+
  4. 3D-printer brandveiligheid
  5. IoT-meter met Arduino, Yaler en IFTTT
  6. Arduino afstotende elektromagnetische levitatie
  7. Grijperbot met afstandsbediening
  8. Arduino aangedreven weerballon datalogger
  9. ArduFarmBot - Part 2:Remote Station an IoT Implementation
  10. Enkele LED Matrix Arduino Flip Clock
  11. CoroFence - Thermische Detector🖖