Inhoudsopgave:

Een mensenteller bouwen met Raspberry Pi en Ubidots - Ajarnpa
Een mensenteller bouwen met Raspberry Pi en Ubidots - Ajarnpa

Video: Een mensenteller bouwen met Raspberry Pi en Ubidots - Ajarnpa

Video: Een mensenteller bouwen met Raspberry Pi en Ubidots - Ajarnpa
Video: комплект умного дома с платой PLUS для arduino DIY STEM | Keyestudio 2024, November
Anonim
Een mensenteller bouwen met Raspberry Pi en Ubidots
Een mensenteller bouwen met Raspberry Pi en Ubidots
Een mensenteller bouwen met Raspberry Pi en Ubidots
Een mensenteller bouwen met Raspberry Pi en Ubidots

In dit eenvoudige project gebruiken we een bewegingssensor om te detecteren of een object voor onze Raspberry Pi passeert. Dan tellen we hoe vaak dat gebeurt en sturen we deze waarde naar Ubidots.

Mensentellers zijn doorgaans dure apparaten die in de detailhandel worden gebruikt om te begrijpen hoe shoppers zich gedragen. Dankzij Raspberry Pi en Ubidots zijn we in staat om in een paar uur en voor een paar tientjes een functionele mensenteller te bouwen!

Zodra we de telgegevens van mensen naar Ubidots hebben gestuurd, kunnen we mooie grafieken maken voor analyse, evenals sms-/e-mailwaarschuwingen.

Stap 1: De juiste materialen verkrijgen

De juiste materialen verkrijgen
De juiste materialen verkrijgen
De juiste materialen krijgen
De juiste materialen krijgen
De juiste materialen verkrijgen
De juiste materialen verkrijgen
De juiste materialen verkrijgen
De juiste materialen verkrijgen

Om dit project te voltooien heb je nodig:

  1. Een Raspberry Pi-model B
  2. Een PIR-sensor van Parallax
  3. Een Raspberry Pi-compatibele USB WiFi-dongle
  4. Een USB-batterijpakket om de Raspberry Pi van stroom te voorzien (dit is optioneel als u de Pi volledig draadloos wilt laten)
  5. Drie vrouwelijke-vrouwelijke jumperdraden
  6. Ubidots-account - of - STEM-licentie

Stap 2: Dingen aansluiten

Dingen aansluiten
Dingen aansluiten
Dingen aansluiten
Dingen aansluiten

De PIR-bewegingssensor is vrij eenvoudig te gebruiken omdat deze slechts drie pinnen heeft:

  • V+
  • GND
  • Een signaalpin die "1" uitvoert als er beweging is en "0" als er geen beweging is.

U hoeft niets te solderen of complexe I2C- of seriële functies te schrijven om dit signaal te detecteren; sluit de kabels gewoon rechtstreeks aan op de GPIO-pinnen van uw Raspberry Pi en het zal werken!

Stap 3: Behuizing

Behuizing
Behuizing
Behuizing
Behuizing

Omdat de PIR-sensor erg gevoelig is voor beweging, heb ik de jumperschakelaar erachter gebruikt om de laagst mogelijke gevoeligheid in te stellen. Ik nam ook een oud etui uit een zonnebril, maakte er een gat in en plaatste de RPi en de PIR-sensor erin. Op deze manier is de bewegingssensor sterk gefocust op één punt, in plaats van zo omnidirectioneel te zijn.

Stap 4: Uw RPi. coderen

Op dit punt gaan we ervan uit dat je een basisconfiguratie van je Raspberry Pi hebt gedaan en dat je naar de Linux-opdrachtregel kijkt. Zo niet, dan raden we aan eerst deze handleiding door te nemen. Je kunt ook dit bericht bekijken over het gebruik van Wicd om de wifi van je Raspberry Pi in te stellen.

Laten we beginnen met ervoor te zorgen dat we alle vereiste bibliotheken hebben:

$ sudo apt-get update$ sudo apt-get upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip install ubidots

Maak een nieuw bestand met de naam "peoplecounter.py":

$ sudo nano peoplecounter.py

En schrijf daarin de onderstaande code. Zorg ervoor dat u de waarden van de API-sleutel en de variabele ID vervangt door die in uw persoonlijke Ubidots-account. (Opmerking: de code is niet al te elegant, maar hey, ik ben geen Python-ontwikkelaar, alleen een hardwareman:)

Het script bestaat uit een lus die de status van pin #7 (de bewegingssensor) controleert. Als het een "1" aangeeft, wat betekent dat er beweging was, verhoogt het de "peoplecount" -variabele en wacht 1,5 seconde zodat de bewegingssensor weer normaal wordt. Dit wordt 10 keer gedaan, waarbij je ervoor zorgt dat er minstens 1 seconde tussen elke cyclus zit, dan stuurt het de totale som van "bewegingen" naar Ubidots. Als u de People Counter moet kalibreren, moet u met de "time.sleep"-lijnen spelen met andere waarden.

van ubidots import ApiClient

importeer RPi. GPIO als GPIO

import tijd

GPIO.setmode(GPIO. BCM)

GPIO.setup(7, GPIO. IN)

proberen:

api =ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

mensen = api.get_variable("5238cec3f91b282c7357a140")

behalve: print "Kan geen verbinding maken met de API, controleer uw internetverbinding"

teller = 0

mensenv = 0

terwijl(1):

aanwezigheid = GPIO.input(7)

als (aanwezigheid):

aantal mensen += 1

aanwezigheid = 0

tijd.slaap(1.5)

tijd.slaap(1)

teller += 1

if(teller==10):

aantal mensen afdrukken

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

teller = 0

mensenv = 0

Stap 5: Toon uw gegevens

Toon uw gegevens
Toon uw gegevens
Toon uw gegevens
Toon uw gegevens
Toon uw gegevens
Toon uw gegevens
Toon uw gegevens
Toon uw gegevens

Ga ten slotte naar je Ubidots-dashboard en voeg een widget van het type "Statement" toe. Hiermee wordt het totale aantal mensen weergegeven dat is gedetecteerd binnen een door u opgegeven tijdsbestek

Stap 6: afronden

Afsluiten
Afsluiten

Dit project geeft een indicatie van het aantal mensen dat door een bepaald punt gaat. Het geeft niet het exacte aantal mensen, gezien de beperkingen van de bewegingssensor, maar in sommige toepassingen kan dit net genoeg zijn.

De verzamelde gegevens kunnen eenvoudig worden verzonden naar de Ubidots Cloud, waar ze kunnen worden geïnterpreteerd door waarschuwingen, live dashboards te maken of deze gegevens zelfs te delen op sociale media, als insluitcode of gewoon in een openbare link. Je kunt deze gegevens ook uit een andere applicatie lezen met behulp van de Ubidots API.

Aanbevolen: