회로

라스베리 파이와 Ubidots를 가진 사람들 카운터를 건설하는 방법 : 6 개 단계

섹시레이싱걸엄지언비키니쇼케이스

섹시레이싱걸엄지언비키니쇼케이스

차례:

Anonim

이 간단한 프로젝트에서 우리는 모션 센서를 사용하여 객체가 우리의 Raspberry Pi 앞에 전달되는지 탐지합니다. 그런 다음 몇 번이나 일어날지를 세어 Ubidots에 보냅니다.

사람들 카운터는 일반적으로 쇼핑객의 행동 방식을 이해하기 위해 소매 업계에서 사용되는 값 비싼 장치입니다. Raspberry Pi와 Ubidots 덕분에 몇 시간 안에 기능적인 사람들 카운터를 만들 수 있습니다!

데이터를 계산하는 사람들을 Ubidot에 보내면 분석을위한 멋진 그래프와 SMS / 전자 메일 경고를 만들 수 있습니다.

용품:

1 단계 : 올바른 재료 얻기

이 프로젝트를 완료하려면 다음이 필요합니다.

  1. 라스베리 파이 모델 B
  2. Parallax의 PIR 센서
  3. 라즈베리 파이 호환 USB WiFi 동글
  4. 라스베리 파이에 전원을 공급하는 USB 배터리 팩 (파이를 완전히 무선으로 유지하려는 경우 선택 사항 임)
  5. 세 여성 - 여성 점퍼 와이어

2 단계 : 배선 작업

PIR 모션 센서는 세 개의 핀만 있기 때문에 사용하기가 아주 쉽습니다.

  • V +
  • GND
  • 움직임이있을 때 "1"을 출력하고 신호가 없을 때 "0"을 출력하는 신호 핀.

아무것도 솔더링하거나 복잡한 I2C 또는이 신호를 감지하는 직렬 기능을 작성할 필요가 없습니다. 그냥 라즈베리 파이의 GPIO 핀에 케이블을 연결하면 작동합니다!

3 단계 : 케이스

PIR 센서는 움직임에 매우 민감하기 때문에 가장 뒤에있는 점퍼 스위치를 사용하여 가능한 한 가장 낮은 감도를 설정했습니다. 또한 선글라스 한 켤레에서 오래된 케이스를 꺼내어 구멍을 뚫은 다음 RPi와 PIR 센서를 안에 넣었습니다. 이렇게하면 모션 센서가 무지 향성이 아닌 한 지점에 집중적으로 초점을 맞 춥니 다.

4 단계 : RPi 코딩

이 시점에서, 우리는 당신이 당신의 라즈베리 파이의 기본 셋업을했다고 가정하고 당신은 리눅스 커맨드 라인을보고 있습니다. 그렇지 않은 경우이 가이드를 먼저 읽는 것이 좋습니다. Wicd를 사용하여 Raspberry Pi의 WiFi를 설정하는 방법에 대한이 게시물을 확인할 수도 있습니다.

우리가 필요한 모든 라이브러리를 갖추 었는지 확인하자.

$ sudo apt-get update
$ sudo apt-get 업그레이드하기 $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip install ubidots

"peoplecounter.py"라는 새 파일을 만듭니다.

$ sudo nano peoplecounter.py

아래에 코드를 작성하십시오. API 키와 변수 ID의 값을 개인 Ubidot 계정의 값으로 바꿔야합니다. (참고 : 코드는 너무 우아하지 않지만, 저는 하드웨어 개발자 인 파이썬 개발자가 아닙니다. :)

스크립트는 핀 # 7 (모션 센서)의 상태를 확인하는 루프로 구성됩니다. 움직임이 있었음을 의미하는 "1"을 읽으면 "사람 수"변수가 증가하고 1.5 초 동안 기다려서 모션 센서가 정상으로 돌아갑니다. 이것은 각 사이클 사이에 적어도 1 초가 있는지 확인하면서 10 번 수행 된 다음 "움직임"의 총합을 Ubidot에 보냅니다. 피플 카운터 (People Counter)를 조정해야한다면 "time.sleep"라인을 다른 값과 함께 사용해야합니다.

ubidots에서 가져 오기 ApiClient

RPi.GPIO를 GPIO로 가져 오기

가져 오기 시간

GPIO.setmode (GPIO.BCM)

GPIO.setup (7, GPIO.IN)

시험:

api = ApiClient ( "a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

people = api.get_variable ( "5238cec3f91b282c7357a140")

예외 : print "API에 연결할 수 없으므로 인터넷 연결을 확인하십시오"

카운터 = 0

peoplev = 0

while (1) :

존재 = GPIO.input (7)

if (존재) :

인원수 + = 1

존재 여부 = 0

time.sleep (1.5)

time.sleep (1)

카운터 + = 1

if (counter == 10) :

인원수를 인쇄하십시오.

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

카운터 = 0

peoplev = 0

5 단계 : 데이터 표시

마지막으로 Ubidots 대시 보드로 이동하여 "성명서"라고 말하면 지정한 시간 내에 발견 된 총 인원 수를 표시합니다

6 단계 : 마무리

이 프로젝트는 특정 지점을 통과하는 사람들의 양을 알려줍니다. 모션 센서의 한계를 감안할 때 정확한 인원수를 제공하지는 못하지만 일부 애플리케이션에서는 이것이 충분할 수도 있습니다.

수집 된 데이터는 Ubidots Cloud로 쉽게 전송 될 수 있습니다. Ubidots Cloud는 경보, 실시간 대시 보드를 생성하거나 소셜 미디어, 임베디드 코드 또는 공용 링크에서이 데이터를 공유함으로써 해석 될 수 있습니다. Ubidots API를 사용하여 다른 응용 프로그램에서이 데이터를 읽을 수도 있습니다.