Circuits

Paano Gumawa ng isang Kaugnayan sa Mga Tao Sa Raspberry Pi at Ubidots: 6 Mga Hakbang

Controlling devices with Node-Red and Ubidots

Controlling devices with Node-Red and Ubidots

Talaan ng mga Nilalaman:

Anonim

Sa ganitong simpleng proyekto gagamitin namin ang isang galaw sensor upang makita kung ang isang bagay ay dumadaan sa harap ng aming Raspberry Pi. Pagkatapos ay bibilangin namin kung gaano karaming beses ang mangyayari, at ipadala ang halagang ito sa Ubidots.

Ang mga taong tagabilang ay karaniwang mahal na mga aparato na ginagamit sa industriya ng tingian upang maunawaan kung paano kumikilos ang mga mamimili. Salamat sa Raspberry Pi at Ubidots, nakapagtatayo kami ng isang functional na counter ng mga tao sa loob ng ilang oras at may ilang bucks!

Sa sandaling ipadala namin ang mga tao ng pagbilang ng data sa Ubidots, maaari kaming lumikha ng mga magagandang graph para sa pag-aaral, pati na rin ang mga alerto sa SMS / Email.

Mga Kagamitan:

Hakbang 1: Pagkuha ng Mga Materyales na Tama

Upang makumpleto ang proyektong ito, kakailanganin mo:

  1. Isang Modelong Raspberry Pi B
  2. Isang PIR Sensor ng Parallax
  3. Ang isang Raspberry Pi compatible USB WiFi Dongle
  4. Ang isang USB pack ng baterya upang i-kapangyarihan ang Raspberry Pi (ito ay opsyonal kung sakaling gusto mong iwanan ang Pi ganap na wireless)
  5. Tatlong female-female jumper wires

Hakbang 2: Mga Pag-aangat ng Kuwadro

Ang sensor ng PIR motion ay medyo simple upang gamitin dahil mayroon lamang itong tatlong Pins:

  • V +
  • GND
  • Ang isang signal pin na nagpapakita ng "1" kapag mayroong paggalaw at "0" kapag wala.

Hindi na kailangang maghinang ng kahit ano, ni magsulat ng mga kumplikadong I2C o serial function upang makita ang signal na ito; plug lamang ang mga cable diretso sa GPIO Pins ng iyong prambuwesas Lara at ito ay gumagana!

Hakbang 3: Casing

Dahil ang sensor ng PIR ay sensitibo sa paggalaw, ginamit ko ang jumper switch sa likod nito upang itakda ang pinakamababang posible na pakiramdam. Gayundin, kinuha ko ang isang lumang kaso mula sa isang pares ng mga salaming pang-araw at ginawa ng isang butas sa ito, pagkatapos ay ilagay ang RPi at ang sensor PIR sa loob nito. Sa ganitong paraan, ang sensor ng galaw ay nakatutok sa isang punto, sa halip na maging omnidirectional.

Hakbang 4: Pag-encode ng iyong RPi

Sa puntong ito, ipagpapalagay namin na nagawa mo ang isang pangunahing pag-setup ng iyong Raspberry Pi at hinahanap mo ang Linux command line nito. Kung hindi, inirerekumenda namin ang pagpunta sa pamamagitan ng gabay na ito muna. Maaari mo ring suriin ang post na ito tungkol sa paggamit ng Wicd upang i-setup ang WiFi ng iyong Raspberry Pi.

Magsimula tayo sa pamamagitan ng pagtiyak na mayroon tayong lahat na kinakailangang mga aklatan:

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

Lumikha ng isang bagong file na tinatawag na "peoplecounter.py":

$ sudo nano peoplecounter.py

At isulat dito ang code sa ibaba. Tiyaking palitan ang mga halaga ng API key at ang ID ng variable sa mga nasa iyong personal na Ubidots account. (Tandaan: ang code ay hindi masyadong eleganteng, ngunit hey hindi ako isang developer sawa, isang hardware guy lamang :)

Ang script ay binubuo ng isang loop na sumusuri sa estado ng pin # 7 (ang motion sensor). Kung bumabasa ito ng isang "1", ibig sabihin na mayroong paggalaw, pagkatapos ay binabawasan ang variable ng "mga tao" at naghihintay ng 1.5 segundo upang ang sensor ng paggalaw ay bumalik sa normal. Ito ay tapos na 10 beses, siguraduhin na mayroong hindi bababa sa 1 segundo sa pagitan ng bawat cycle, pagkatapos ay nagpapadala ito ng kabuuang kabuuan ng "paggalaw" sa Ubidots. Kung kailangan mong i-calibrate ang People Counter, dapat mong i-play ang mga linya ng "time.sleep" sa iba pang mga halaga.

mula sa ubidots import ApiClient

import RPi.GPIO bilang GPIO

import ng oras

GPIO.setmode (GPIO.BCM)

GPIO.setup (7, GPIO.IN)

subukan:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

tao = api.get_variable ("5238cec3f91b282c7357a140")

maliban: i-print ang "Hindi makakonekta sa API, suriin ang iyong koneksyon sa Internet"

counter = 0

peoplev = 0

habang (1):

presence = GPIO.input (7)

kung (presensya):

peoplecount + = 1

presence = 0

time.sleep (1.5)

time.sleep (1)

counter + = 1

kung (counter == 10):

i-print ang mga tao

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

counter = 0

peoplev = 0

Hakbang 5: Ipakita ang Iyong Data

Panghuli, pumunta sa iyong Ubidots dashboard at magdagdag ng isang widget ng uri ng "Pahayag"Ipapakita nito ang kabuuang bilang ng mga tao na nakita sa loob ng isang time frame na iyong tinukoy

Hakbang 6: Pagbabalot Up

Ang proyektong ito ay nagbibigay ng isang pahiwatig ng dami ng mga taong dumadaan sa isang partikular na punto. Hindi ito nagbibigay ng eksaktong bilang ng mga tao, na ibinigay sa mga limitasyon ng motion sensor, ngunit sa ilang mga application na ito ay maaaring sapat lamang.

Ang nakolektang data ay maaaring madaling ipadala sa Ubidots Cloud, kung saan maaari itong ipaliwanag sa pamamagitan ng paglikha ng mga alerto, mga live na dashboard o kahit pagbabahagi ng data na ito sa social media, bilang naka-embed na code, o sa isang pampublikong link lamang. Maaari mo ring basahin ang data na ito mula sa isa pang application gamit ang Ubidots API.