В этом простом проекте мы будем использовать датчик движения, чтобы определить, проходит ли какой-либо объект перед нашим Raspberry Pi. Затем мы посчитаем, сколько раз это происходит, и отправим это значение в Ubidots.
Счетчики посетителей обычно являются дорогими устройствами, используемыми в розничной торговле, чтобы понять, как ведут себя покупатели. Благодаря Raspberry Pi и Ubidots мы можем создать функциональный счетчик людей за несколько часов и за несколько долларов!
После того, как мы отправляем данные о подсчете людей в Ubidots, мы можем создавать отличные графики для анализа, а также оповещения по SMS / электронной почте.
Расходные материалы:
Шаг 1: Получение правильных материалов
Для завершения этого проекта вам понадобится:
- Малина Пи Модель Б
- ИК-датчик от Parallax
- Совместимый с Raspberry Pi USB-адаптер WiFi
- Аккумулятор USB для питания Raspberry Pi (это не обязательно, если вы хотите оставить Pi полностью беспроводным)
- Три женские и женские соединительные провода
Шаг 2: проводка
Датчик движения PIR довольно прост в использовании, потому что он имеет только три контакта:
- V +
- GND
- Сигнальный вывод, который выводит «1», когда есть движение, и «0», когда его нет.
Не нужно ничего паять, ни писать сложные I2C или последовательные функции для обнаружения этого сигнала; Просто подключите кабели прямо к выводам GPIO вашего Raspberry Pi, и это будет работать!
Шаг 3: Оболочка
Поскольку ИК-датчик очень чувствителен к движению, я использовал перемычку позади него, чтобы установить наименьшую возможную чувствительность. Кроме того, я взял старый футляр из пары солнцезащитных очков и проделал в нем отверстие, затем поместил в него RPi и PIR-датчик. Таким образом, датчик движения сильно сфокусирован в одной точке, вместо того, чтобы быть таким всенаправленным.
Шаг 4: Кодирование вашего RPi
На данный момент мы предполагаем, что вы выполнили базовую настройку вашего Raspberry Pi и посмотрите на его командную строку в Linux. Если нет, рекомендуем сначала пройти это руководство. Вы также можете проверить этот пост об использовании Wicd для настройки WiFi вашего Raspberry Pi.
Давайте начнем с того, что убедитесь, что у нас есть все необходимые библиотеки:
$ sudo apt-get update
$ sudo apt-get upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip установить ubidots
Создайте новый файл с именем "peoplecounter.py":
$ sudo nano peoplecounter.py
И запишите в него код ниже. Обязательно замените значения ключа API и идентификатора переменной значениями в вашей личной учетной записи Ubidots. (Примечание: код не слишком элегантный, но, эй, я не разработчик Python, а просто специалист по аппаратному обеспечению :)
Скрипт состоит из цикла, который проверяет состояние вывода № 7 (датчик движения). Если он читает «1», что означает, что произошло движение, то он увеличивает переменную «peoplecount» и ждет 1,5 секунды, чтобы датчик движения вернулся в нормальное состояние. Это делается 10 раз, проверяя, что между циклами есть не менее 1 секунды, а затем отправляет общую сумму «движений» убидотам. Если вам нужно откалибровать счетчик людей, вы должны поиграть со строками time.sleep с другими значениями.
из убидоц импортируют ApiClient
импортировать RPi.GPIO как GPIO
время импорта
GPIO.setmode (GPIO.BCM)
GPIO.setup (7, GPIO.IN)
пытаться:
api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")
people = api.get_variable ("5238cec3f91b282c7357a140")
кроме: выведите «Не удалось подключиться к API, проверьте подключение к Интернету»
counter = 0
peoplev = 0
в то время как (1):
присутствие = GPIO.input (7)
если (наличие):
количество людей + = 1
присутствие = 0
time.sleep (1.5)
time.sleep (1)
счетчик + = 1
если (счетчик == 10):
печать людей
people.save_value ({ 'значение': peoplecount})
counter = 0
peoplev = 0
Шаг 5: Показать ваши данные
Наконец, перейдите на панель инструментов Ubidots и добавьте виджет типа "утверждениеMsgstr "Это покажет общее количество людей, обнаруженных за указанный вами период времени.
Шаг 6: Завершение
Этот проект дает подсказку о количестве людей, проходящих через конкретную точку. Он не предоставляет точное количество людей, учитывая ограничения датчика движения, но в некоторых приложениях этого может быть достаточно.
Собранные данные можно легко отправить в облако Ubidots, где их можно интерпретировать, создавая оповещения, живые информационные панели или даже обмениваясь этими данными в социальных сетях, в виде встроенного кода или просто в общедоступной ссылке. Вы также можете прочитать эти данные из другого приложения, используя Ubidots API.