Съдържание:

Проследяване на трикове с тиква Pi: 5 стъпки
Проследяване на трикове с тиква Pi: 5 стъпки

Видео: Проследяване на трикове с тиква Pi: 5 стъпки

Видео: Проследяване на трикове с тиква Pi: 5 стъпки
Видео: Стабилизация биохимических показателей крови. Большой восстановительный рефлекторный каскад 2024, Юли
Anonim
Проследяване на трикове с тиква Pi
Проследяване на трикове с тиква Pi

От elizabethna Следвайте още от автора:

Как да изградите монитор за температурата на Raspberry Pi
Как да изградите монитор за температурата на Raspberry Pi
Как да изградите монитор за температурата на Raspberry Pi
Как да изградите монитор за температурата на Raspberry Pi
Предавайте поточно данни от Google Таблици към табло за управление
Предавайте поточно данни от Google Таблици към табло за управление
Предавайте поточно данни от Google Таблици към табло за управление
Предавайте поточно данни от Google Таблици към табло за управление
Мрежа от температурни сензори
Мрежа от температурни сензори
Мрежа от температурни сензори
Мрежа от температурни сензори

Търсите бърз проект за Хелоуин, който е полезен по повече от един начин? Искате да използвате тази Pi Zero WH добре? Искате ли да използвате данни, за да определите колко бонбони ще ви трябват през следващата година?

Пригответе се за изграждането на Track-or-Tracker Trampkin Pi Tracker! Удвоявайки се като декорация и тракер за хора, този Pi-in-a-Pumpkin променя цвета и потоци, когато се открие движение. Започвайки от абсолютната нула, този проект не трябва да ви отнема повече от един следобед, за да го съберете - точно навреме за Хелоуин!

Консумативи

  • Pi Zero WH със SD карта
  • PIR сензор за движение
  • RGB LED
  • 220 ома резистори
  • (3) Връзки (F/F, M/F, M/M)
  • Преносима батерия
  • Фалшива тиква

Стъпка 1: Сглобяване на хардуер

Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж

След като стартирате вашия Pi, трябва да свържем сензора за движение и светодиодите. Уверете се, че Pi не е свързан към захранването в този момент.

Нашият сензор за движение изисква да го свържем към 3.3V захранване, земя и извод за данни. Свързах щифта на сензора 3.3V към щифт 1 на Pi, щифта на заземяващия сензор към щифт 6 на Pi и щифта на сензора за данни към щифт 16 на Pi. Първата снимка показва пълната връзка за Pi и сензора за движение.

Светодиодите са малко по -сложни от сензора за движение, защото се нуждаят от резистор, за да работят правилно, без да повредят тях или Pi. Използвах три 220 ома резистора, но резистори 220 и 330 ома обикновено се използват със светодиоди.

За да свържете всичко, можете или:

  • Запоявайте LED краката към резисторите и след това проведете проводниците в Pi
  • Използвайте макет и линии за свързване, за да свържете всичко
  • Използвайте връзки и електрическа лента, за да свържете всичко (както направих аз).

Ще свързваме нашия светодиод към щифтове 11, 13 и 15. Това е малко по -сложно от сензора за движение, тъй като краката на светодиода съответстват на определен цвят! Дългият крак е GND; и поне на моя светодиод краката бяха червени, GND, сини, зелени. Свързах синьо към пи пин 11, зелено към пи пин 13 и червено към пи щифт 15. Втората снимка показва връзките на крайната верига.

Стъпка 2: Първоначално състояние

Първоначално състояние
Първоначално състояние
Първоначално състояние
Първоначално състояние

Разбира се, че можем да видим кога се открива движение със светодиода, но как ще проследим колко трикове или обработчици са паднали, за да откраднат бонбоните ни?

Ще предаваме поточно към таблото за управление всеки път, когато движението започне и спре да бъде открито. Тъй като това табло е достъпно отвсякъде с интернет връзка, можем дистанционно да следим дали някой се приближава до входната врата/купата за бонбони.

Стъпка 1: Регистрирайте се за първоначален държавен акаунт Отидете на https://iot.app.initialstate.com и създайте нов акаунт.

Стъпка 2: Инсталирайте ISStreamer

Инсталирайте Python модула за първоначално състояние на вашия Raspberry Pi. В командния ред (не забравяйте първо да SSH във вашия Pi), изпълнете следната команда:

$ cd/home/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Стъпка 3: Направете малко Automagic

След стъпка 2 ще видите нещо подобно на следния изход на екрана:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Парола: Започване на лесна инсталация на ISStreamer Python! Това може да отнеме няколко минути за инсталиране, вземете кафе:) Но не забравяйте да се върнете, ще имам въпроси по -късно! Намерено easy_install: setuptools 1.1.6 Намерено пип: пип 1.5.6 от /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) основна версия на пип: 1 пип второстепенна версия: 5 ISStreamer е намерен, актуализира се … Изискването вече е актуално: ISStreamer в /Library/Python/2.7/site-packages Почистване … Искате ли автоматично да получите примерен скрипт? [y/N] Къде искате да запишете примера? [по подразбиране:./is_example.py] Моля, изберете приложението за първоначално състояние, което използвате: 1. app.initialstate.com 2. [НОВО!] iot.app.initialstate.com Въведете избор 1 или 2: Въведете iot.app.initialstate.com потребителско име: Въведете парола на iot.app.initialstate.com:

Когато бъдете подканени автоматично да получите примерен скрипт, въведете y. Това ще създаде тестов скрипт, който можем да стартираме, за да гарантираме, че можем да предаваме поточно данни към първоначалното състояние. Следващата подкана ще ви попита къде искате да запишете примерния файл. Можете да въведете персонализиран локален път или да натиснете Enter, за да приемете местоположението по подразбиране. Накрая ще бъдете попитани кое приложение за първоначално състояние използвате. Ако наскоро сте създали акаунт, изберете опция 2, въведете потребителското си име и парола. След това инсталацията ще приключи.

Стъпка 4: Ключове за достъп

Нека да разгледаме примерния скрипт, който е създаден. $ nano is_example.py На ред 15 ще видите ред, който започва със streamer = Streamer (bucket_…. Тези редове създават нова кофа с данни, наречена „Пример на Python Stream“и е свързана с вашия акаунт. Това свързване се случва поради access_key =”…” параметър на същия ред. Тази дълга поредица от букви и цифри е вашият ключ за достъп до профила на първоначалното състояние. Ако отидете в профила си в първоначалното състояние в уеб браузъра си, кликнете върху потребителското си име горе вдясно, след което отидете до „моите настройки“, ще намерите същия ключ за достъп в долната част на страницата под „Ключове за достъп до поточно предаване“.

Всеки път, когато създавате поток от данни, този ключ за достъп ще насочва този поток от данни към вашия акаунт (така че не споделяйте ключа си с никого).

Стъпка 5: Изпълнете примера

Стартирайте тестовия скрипт, за да се уверите, че можем да създадем поток от данни към вашия акаунт за първоначално състояние. Изпълнете следното:

$ python is_example.py

Стъпка 6: Печалба

Върнете се към първоначалния си акаунт в уеб браузъра си. Нова кофа с данни, наречена „Пример на Python Stream“, трябваше да се появи вляво в рафта ви за регистрация (може да се наложи да опресните страницата). Щракнете върху тази кофа и след това върху иконата Waves, за да видите тестовите данни.

Стъпка 3: Python скрипт

Създайте скрипт и отворете текстовия редактор със следната команда:

nano vistors.py

Копирайте и прехвърлете кода от тук във вашия текстов редактор.

Преди да се опитаме да стартираме нещо, трябва да направим няколко редакции и да прегледаме какво се случва в нашия скрипт.

импортирайте RPi. GPIO като GPIO

от времето импортиране спя от ISStreamer. Streamer внос Streamer # Кажете на Pi, че ще използваме неговата система за номериране GPIO.setmode (GPIO. BCM) # Игли, които D1 и LED са свързани към PIN = 23 СИН = 17 ЗЕЛЕН = 27 ЧЕРВЕН = 22 # Посочете нашия щифт на сензора за движение като вход GPIO.setup (PIN, GPIO. IN) # Посочете нашите LED изводи като изход GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GREEN, GPIO. OUT) GPIO.output (ЗЕЛЕН, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

Редове 1-21 са за инициализация. Първо импортираме GPIO интерфейса на Pi и начин за заспиване на нашия скрипт. След това импортираме стримера Initial State, който сме инсталирали на предишната страница.

GPIO.setmode определя коя система за номериране използваме за щифтовете. Вместо физическо местоположение, ние използваме системата за номериране на Pi. Както в нашата диаграма по -рано, изборите, които избрахме, бяха 23, 17, 27 и 22. След това настроихме щифта за движение като вход и LED щифтовете като изход.

# Име на първоначалното състояние на кофата (показва се)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Начален ключ за състоянието на кофата (скрит) BUCKET_KEY = "trickortreat" # Начален ключ за достъп до състоянието ACCESS_KEY = "Your_Access_Key" # Променливи, които гарантират, че не предаваме поточно, че е имало или не е движение два пъти подред # Това спестява вече изпратени събития и процесорна мощ ReecordedMotion = False alreadyRecordedNoMotion = False counter = 0 # Инициализира първоначалното състояние Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # LED към жълт GPIO.изход (ЧЕРВЕН, 1) GPIO.изход (ЗЕЛЕН, 1)

Редове 23-41 са важни, защото инициализираме стримера за първоначално състояние и настройваме светодиода в жълто. Поставете ключа за достъп до първоначалното състояние на ред 28.

# Цикъл за неопределено време

while True: # Ако сензорът за движение дърпа високо (открива движение): ако GPIO.input (ПИН) == 1: отпечатайте "Motion detection" # Ако още не сме предавали поточно: ако още не е записаноMotion: counter = counter + 1 # Задайте светодиода на червено GPIO.output (ЧЕРВЕНО, 1) GPIO.output (ЗЕЛЕНО, 0) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = Истински вечеRecordedNoMotion = False else: # Пауза на скрипта за 1 секунда сън (1) else: print "Няма открито движение" # Ако все още не сме предавали поточно: ако още не е записаноNoMotion: # Задайте светодиода на жълто GPIO.output (ЧЕРВЕНО, 1) GPIO.output (ЗЕЛЕНО, 1) # Stream към първоначалното състояние streamer.log (": ghost: or: chocolate_bar:? ",": no_pedestrians: No One Around ") streamer.flush () alreadyRecordedNoMotion = Истина вечеRecordedMotion = False else: # Пауза на скрипта за 1 секунда сън (1)

Редове 43-77 са месото на кода. Ако се открие движение, скриптът ще провери дали "Време за лечение!" вече е предаван. Ако не е, той се изпраща в Начално състояние и светодиодът е настроен на червено; ако има, скриптът изчаква 1 секунда и след това чете отново от сензора за движение. Същото важи и ако не се открие движение.

Време е да тествате кода! Уверете се, че сте запазили редактирания си файл с добавен ключ за достъп на ред 28 и след това влезте в терминала:

python visitors.py

Трябва да видите, че светодиодът светва и „Няма открито движение“започва да се разпечатва в командния ред. Опитайте да махнете с ръка над сензора за движение - сега трябва да видите червена светлина и „Открито движение“да започне да печата!

Сега, за да проверим дали нашите показания се предават поточно към Първоначално състояние.

Стъпка 4: Табло за измама или лечение

Табло за управление на хитрост
Табло за управление на хитрост

Преминете към Начално състояние и проверете таблото си за управление! Трябва да видите кофа, наречена "? Trick or Treat Tracker". Махнете с ръка близо до сензора за движение и гледайте как се актуализира!

Таблото ми за управление се състои от 2 обобщени плочки, показващи последната стойност и хистограма на броя на събитията, така че мога да видя в кои часове е задействан сензорът.

Ето някои неща, които трябва да имате предвид:

  • Вероятно искате да разделите броя на „Гладните хора“на 2, за да вземете предвид факта, че едно и също лице ще премине пред сензора за движение два пъти - на път към вашата врата и на връщане. Можете да направите това с изрази в реално време, като използвате уравнението "= math.round (([Гладни хора?]/2), 0)".
  • Можете да тествате колко чувствителен изглежда вашият сензор за движение и да го поставите съответно на тротоара си. Предлагам да го държите достатъчно далеч от вратата, за да не се задейства, когато някой стои на вратата.
  • Можете също да настроите текстови сигнали, за да ви уведомим, че някой се приближава.
  • Изберете фоново изображение, за да придадете на своето табло малко призрачна индивидуалност!

Препоръчано: