Circuite

Cum de a construi un contor de oameni cu zmeura Pi și Ubidots: 6 pași

Contor gaz defect

Contor gaz defect

Cuprins:

Anonim

În acest proiect simplu vom folosi un senzor de mișcare pentru a detecta dacă un obiect trece prin fața noastră de Raspberry Pi. Apoi vom număra de câte ori se întâmplă acest lucru și vom trimite această valoare către Ubidots.

Contoarele de persoane sunt de obicei dispozitive scumpe folosite în industria de retail pentru a înțelege cum se comportă cumpărătorii. Datorită Raspberry Pi și Ubidots, suntem capabili să construim un contor de oameni funcționali în câteva ore și cu câțiva dolari!

Odată ce trimitem oamenii care numără datele la Ubidots, putem crea grafice grafice pentru analiză, precum și alerte SMS / e-mail.

Furnituri:

Pasul 1: Obținerea materialelor potrivite

Pentru a finaliza acest proiect, veți avea nevoie de:

  1. Un model de zmeură Pi
  2. Un senzor PIR de Parallax
  3. Un dulce USB Wi-Fi compatibil cu Raspberry Pi
  4. Un acumulator USB pentru a alimenta Raspberry Pi (acest lucru este opțional în cazul în care doriți să lăsați complet Pi wireless)
  5. Trei fire jumper-femeie-femeie

Pasul 2: Lucrurile de cabluri în sus

Senzorul de mișcare PIR este destul de simplu de utilizat deoarece are doar trei pini:

  • V +
  • GND
  • Un pin de semnal care emite "1" atunci când există mișcare și "0" atunci când nu există.

Nu este nevoie să lipiți nimic, nici să scrieți complexe funcții I2C sau serial pentru a detecta acest semnal; conectați doar cablurile direct la pinii GPIO ai Raspberry Pi și va funcționa!

Pasul 3: Carcasa

Deoarece senzorul PIR este foarte sensibil la mișcare, am folosit comutatorul jumperului în spatele acestuia pentru a seta cea mai mică sensibilitate posibila. De asemenea, am luat un caz vechi de la o pereche de ochelari de soare și am făcut o gaură în ea, apoi am plasat senzorul RPi și senzorul PIR în el. În acest fel, senzorul de mișcare se concentrează într-un punct, în loc să fie atât de omnidirecțional.

Pasul 4: Codarea RPi

În acest moment, presupunem că ați făcut o configurație de bază a Raspberry Pi și căutați linia de comandă Linux. Dacă nu, vă recomandăm să mergeți mai întâi prin acest ghid. Puteți verifica, de asemenea, această postare despre utilizarea Wicd pentru a configura WiFi-ul dvs. de Zmeura Pi.

Să începem prin a ne asigura că avem toate bibliotecile necesare:

$ sudo apt-get actualizare
$ sudo apt-get upgrade $ sudo apt-get instalare python-setuptools $ sudo easy_install $ pip instalare ubidots

Creați un nou fișier numit "peoplecounter.py":

$ sudo nano peoplecounter.py

Și scrieți codul de mai jos. Asigurați-vă că înlocuiți valorile cheii API și ID-ul variabilei cu cele din contul personal Ubidots. (Notă: codul nu este prea elegant, dar nu sunt un dezvoltator Python, doar un tip hardware :)

Scenariul constă dintr-o buclă care verifică starea pinului # 7 (senzorul de mișcare). Dacă se citește un "1", ceea ce înseamnă că a existat o mișcare, atunci se mărește variabila "peoplecount" și se așteaptă 1,5 secunde, astfel încât senzorul de mișcare revine la normal. Acest lucru se face de 10 ori, asigurându-se că există cel puțin o secundă între fiecare ciclu, apoi trimite suma totală a "mișcărilor" către Ubidots. Dacă trebuie să calibrați People Counter, atunci ar trebui să jucați cu linii "time.sleep" cu alte valori.

de la ubidots import ApiClient

importă RPi.GPIO ca GPIO

timpul de import

GPIO.setmode (GPIO.BCM)

GPIO.setup (7, GPIO.IN)

încerca:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

people = api.get_variable ("5238cec3f91b282c7357a140")

cu excepția: print "Nu sa putut conecta la API, verificați conexiunea la Internet"

contra = 0

peoplev = 0

în timp ce (1):

prezență = GPIO.input (7)

dacă (prezență):

numărul de persoane + = 1

prezență = 0

time.sleep (1.5)

time.sleep (1)

contra + = 1

if (contor == 10):

tipăriți numărul de persoane

people.save_value ({ 'value': peoplecount})

contra = 0

peoplev = 0

Pasul 5: Afișați-vă datele

În cele din urmă, accesați tabloul de bord Ubidots și adăugați un widget de tipul "Afirmație"Aceasta va afișa numărul total de persoane detectate într-un interval de timp pe care îl specificați

Pasul 6: Înfășurarea în sus

Acest proiect oferă un indiciu al numărului de persoane care trec printr-un anumit punct. Nu oferă numărul exact de persoane, având în vedere limitările senzorului de mișcare, dar în unele aplicații acest lucru ar putea fi suficient.

Datele colectate pot fi trimise cu ușurință către Ubidots Cloud, unde pot fi interpretate prin crearea de alerte, dashboards live sau chiar prin partajarea acestor date în social media, ca un cod embed, sau doar într-o legătură publică. De asemenea, puteți citi aceste date dintr-o altă aplicație utilizând API-ul Ubidots.