Мазмұны:

Асқабақ Pi Trick-or-Treat Tracker: 5 қадам
Асқабақ Pi Trick-or-Treat Tracker: 5 қадам

Бейне: Асқабақ Pi Trick-or-Treat Tracker: 5 қадам

Бейне: Асқабақ Pi Trick-or-Treat Tracker: 5 қадам
Бейне: 【Full sub/lyrics】The world's first Pokemon Halloween Party@Universial Studio Japan 2024, Шілде
Anonim
Асқабақ Pi Trick-or-Treat Tracker
Асқабақ Pi Trick-or-Treat Tracker

Автордың толығырақ авторы:

Raspberry Pi температуралық мониторын қалай құруға болады
Raspberry Pi температуралық мониторын қалай құруға болады
Raspberry Pi температуралық мониторын қалай құруға болады
Raspberry Pi температуралық мониторын қалай құруға болады
Деректерді Google парақтарынан бақылау тақтасына жіберіңіз
Деректерді Google парақтарынан бақылау тақтасына жіберіңіз
Деректерді Google парақтарынан бақылау тақтасына жіберіңіз
Деректерді Google парақтарынан бақылау тақтасына жіберіңіз
Температура сенсорларының желісі
Температура сенсорларының желісі
Температура сенсорларының желісі
Температура сенсорларының желісі

Бірнеше жолмен пайдалы Хэллоуин жобасын іздеп жүрсіз бе? Pi Zero WH -ді тиімді пайдаланғыңыз келе ме? Келесі жылы қанша кәмпит қажет болатынын анықтау үшін деректерді пайдаланғыңыз келе ме?

Pumpkin Pi Trick-or-Treat Tracker құруға дайын болыңыз! Декорация мен халықтық бақылаушы ретінде екі есе асатын асқабақ қозғалысы анықталған кезде түсі мен ағынын өзгертеді. Абсолютті нөлден бастап, бұл жоба сізге Хэллоуин уақытында жиналуға түстен артық уақыт жұмсамауы керек!

Жабдықтар

  • SD картасы бар Pi Zero WH
  • PIR қозғалыс сенсоры
  • RGB жарық диоды
  • 220 Ом резисторлар
  • (3) байланыстыру сызықтары (F/F, M/F, M/M)
  • Портативті батарея
  • Жалған асқабақ

1 -қадам: аппараттық құралдарды жинау

Аппараттық қондырғы
Аппараттық қондырғы
Аппараттық қондырғы
Аппараттық қондырғы
Аппараттық қондырғы
Аппараттық қондырғы

Сізде Pi орнатылғаннан кейін, қозғалыс сенсоры мен жарықдиодты қосу керек. Бұл кезде Pi қуат көзіне қосылмағанын тексеріңіз.

Біздің қозғалыс сенсоры оны 3,3 В қуатқа, жерге және деректер түйреуішіне қосуды талап етеді. Мен 3.3В сенсорлық түйреуішті Пидің 1 түйрегіне, Жердегі сенсорлық түйреуішті Пидің 6 түйрегіне және Датчикті түйреуішті Пидің 16 істігіне жалғадым. Бірінші суретте Pi мен қозғалыс сенсорының толық байланысы көрсетілген.

Светодиодтар қозғалыс сенсорына қарағанда біршама қиын, себебі оларға немесе Pi -ге зақым келтірместен дұрыс жұмыс істеу үшін резистор қажет. Мен үш 220 Ом резисторды қолдандым, бірақ 220 және 330 Ом резисторлары әдетте светодиодтарда қолданылады.

Барлығын байланыстыру үшін сіз:

  • Жарық диодты аяқтарды резисторларға дәнекерлеңіз, содан кейін сымдарды Pi -ге қосыңыз
  • Барлығын қосу үшін тақтаны және байлау сызықтарын пайдаланыңыз
  • Барлығын қосу үшін байланыстыру сызықтары мен электр таспасын қолданыңыз (мен сияқты).

Біз светодиодты 11, 13 және 15 түйреуіштеріне қосамыз. Бұл қозғалыс сенсорына қарағанда біршама қиын, бірақ жарық диодты аяқтар белгілі бір түске сәйкес келеді! Ұзын аяқ - GND; және, кем дегенде, менің светодиодымда аяқтар қызыл, GND, көк, жасыл түсті. Мен Blue -ды 11 -ші пинге, жасылды 13 -ші түйреуішке, ал қызылды 15 -ші істікке жалғадым. Екінші суретте соңғы тізбек байланыстары көрсетілген.

2 -қадам: бастапқы күй

Бастапқы күй
Бастапқы күй
Бастапқы күй
Бастапқы күй

Әрине, біз жарықдиодты қозғалтқыштың көмегімен қозғалыс анықталғанын көре аламыз, бірақ біз кәмпиттерді ұрлау үшін қанша трюк жасағанын қалай бақылаймыз?

Біз қозғалыс басталып, анықталмаған сайын бақылау тақтасына ағын жібереміз. Бұл бақылау тақтасына интернет байланысы бар кез келген жерден қол жетімді болғандықтан, біз біреудің есікке/кәмпит ыдысына жақындап келе жатқанын қашықтан бақылай аламыз.

1 -қадам: Бастапқы мемлекеттік тіркелгіге тіркелу https://iot.app.initialstate.com сайтына өтіп, жаңа тіркелгі жасаңыз.

2 -қадам: ISStreamer орнатыңыз

Бастапқы күй Python модулін Raspberry Pi -ге орнатыңыз. Пәрмен жолында (алдымен Pi -ге SSH енгізуді ұмытпаңыз) келесі пәрменді орындаңыз:

$ cd/home/pi/

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

3 -қадам: Автоматты жасаңыз

2 -қадамнан кейін сіз экранға келесі шығысқа ұқсас нәрсені көресіз:

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

Құпия сөз: ISStreamer Python оңай орнатудың басталуы! Орнатуға бірнеше минут кетуі мүмкін, кофе алыңыз:) Бірақ қайтып оралуды ұмытпаңыз, менде сұрақтар болады! Easy_install табылды: setuptools 1.1.6 Табылған pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip негізгі нұсқасы: 1 pip шағын нұсқасы: 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 Example» деп аталатын жаңа деректер пакетін жасайды және сіздің есептік жазбаңызбен байланысты. Бұл байланыс байланысты access_key =”…” параметрі сол жолда. Әріптер мен сандардың ұзақ тізбегі - сіздің бастапқы күйдегі тіркелгіге кіру кілті. Егер сіз өзіңіздің веб -шолғышыңыздағы бастапқы күйге кірсеңіз, жоғарғы оң жақтағы пайдаланушы атыңызды нұқыңыз, содан кейін өтіңіз. «Менің параметрлеріме» сіз беттің төменгі жағында «Ағындық кіру кілттері» астында сол кіру кілтін таба аласыз.

Деректер ағынын жасаған сайын, бұл кілт сол ағынды сіздің есептік жазбаңызға бағыттайды (сондықтан кілтті ешкіммен бөліспеңіз).

5 -қадам: Мысалды іске қосыңыз

Бастапқы күй шотыңызға деректер ағыны жасай алатындығымызға тексеру үшін тест сценарийін іске қосыңыз. Келесі әрекеттерді орындаңыз:

$ python is_example.py

6 -қадам: пайда

Веб -шолғышта бастапқы күйге қайтып оралыңыз. «Python ағынының мысалы» деп аталатын жаңа деректер шкаласы журнал сөресінде сол жақта көрсетілуі керек еді (бетті жаңарту қажет болуы мүмкін). Бұл шелекті басыңыз, содан кейін толқындар белгішесін нұқып, тест деректерін көріңіз.

3 -қадам: Python сценарийі

Сценарий жасаңыз және мәтіндік редакторды келесі пәрменмен ашыңыз:

nano vistors.py

Кодты осы жерден мәтіндік редакторға көшіріп, қойыңыз.

Кез келген нәрсені іске қоспас бұрын, біз бірнеше түзетулер енгізіп, сценарийімізде не болып жатқанын қарап шығуымыз керек.

GPO ретінде RPi. GPIO импорттау

ISStreamer -ден ұйқыны импорттау. Ағынды импорттау Streamer # Pi -ге айтыңыз, біз оның нөмірлеу жүйесін қолданамыз GPIO.setmode (GPIO. BCM) # D1 мен LED PIN -ге қосылған түйреуіштер = 23 КӨК = 17 ЖАСЫЛ = 27 ҚЫЗЫЛ = 22 # Біздің қозғалыс сенсорының түйреуішін GPIO.setup (PIN, GPIO. IN) кірісі ретінде көрсетіңіз # Біздің жарықдиодты түйреуіштерді GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GREEN) ретінде көрсетіңіз., GPIO. OUT) GPIO.output (GREEN, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

1-21 жолдар инициализацияға арналған. Алдымен біз Pi GPIO интерфейсін және сценарийді ұйықтау әдісін импорттаймыз. Содан кейін біз алдыңғы бетте орнатылған Initial State стримерін импорттаймыз.

GPIO.setmode түйреуіштер үшін қандай нөмірлеу жүйесін қолданатынымызды көрсетеді. Физикалық орналасудың орнына біз Pi нөмірлеу жүйесін қолданамыз. Бұрынғы диаграммада айтылғандай, біз таңдаған түйреуіштер 23, 17, 27 және 22 болды. Содан кейін біз қозғалтқыш түйреуішті кіріс ретінде, ал жарықдиодты түйреуіштерді шығыс ретінде орнатамыз.

# Бастапқы күй шелегінің атауы (көрсетіледі)

BUCKET_NAME = «: jack_o_lantern: Trick or Treat Tracker» # Бастапқы күй шелегінің кілті (жасырын) BUCKET_KEY = «trickortreat» # Бастапқы күйге кіру кілті ACCESS_KEY = «Сіздің_ қол жеткізу_кілтіңіз» # Бізде болған немесе болмағанын көрсетпейтін айнымалылар. қатарынан екі рет қозғалыс # Бұл жіберілген оқиғалар мен өңдеу қуатын үнемдейдіRecordedMotion = False allaqachonRecordedNoMotion = Жалған есептегіш = 0 # Бастапқы күйді инициализациялаңыз Streamer = Ағын (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) жарық диоды сарыға GPIO. шығысына (ҚЫЗЫЛ, 1) GPIO. шығысына (ЖАСЫЛ, 1)

23-41 жолдар маңызды, себебі біз бастапқы күйдегі трансляцияны инициализациялаймыз және жарық диодты сары түске орнатамыз. Бастапқы күйге кіру кілтін 28 жолға қойыңыз.

# Белгісіз түрде айналдырыңыз

while True: # Егер қозғалыс сенсоры жоғары тартса (қозғалысты анықтаса): егер GPIO.input (PIN) == 1: «Қозғалыс анықталды» деп басып шығарыңыз # Егер біз әлі трансляцияламаған болсақ: егер жоқ болсаRecordedMotion: есептегіш = санауыш + 1 # Жарықдиодты қызыл түске қойыңыз GPIO.output (ҚЫЗЫЛ, 1) GPIO.output (ЖАСЫЛ, 0) # Stream Initial State streamer.log («: елес: немесе: шоколад_бар:?», «: шоколад_бар: Емдеуге уақыт!») streamer.log («: кәмпит: Аш адамдар?: кәмпит:», есептегіш) streamer.flush () аллакайRecordedMotion = True allaqachonRecordedNoMotion = False else: # Сценарийді 1 секунд ұйқыға кідірту (1) басқа: басып шығару «Қозғалыс анықталмады» # Егер біз әлі трансляцияламасақ: егер жоқ болсаRecordedNoMotion: # Светодиодты сарыға қойыңыз GPIO. шығысы (ҚЫЗЫЛ, 1) GPIO. шығысы (ЖАСЫЛ, 1) # Stream Initial State streamer.log («: ghost: or:ocolate_bar:? «,»: no_pedestrians: Айналада ешкім жоқ «) streamer.flush () аллакайRecordedNoMotion = True allaqachonRecordedMotion = Жалған басқа: # Сценарийді 1 секундтық ұйқыға кідірту (1)

43-77-жолдар кодтың еті болып табылады. Егер қозғалыс анықталса, сценарий «Емдеуге уақыт!» қазірдің өзінде трансляцияланды. Егер ол болмаса, ол бастапқы күйге жіберіледі және жарық диоды қызыл түске орнатылады; егер ол болса, сценарий 1 секунд күтеді, содан кейін қозғалыс сенсорынан қайтадан оқиды. Егер қозғалыс анықталмаса, дәл солай болады.

Кодты тексеретін уақыт келді! 28 -жолда кіру кілті қосылған өңделген файлды сақтағаныңызға көз жеткізіңіз, содан кейін терминалға кіріңіз:

python келушілері.py

Сіз светодиодтың жанғанын және «Қозғалыс анықталмаған» пәрмен жолына басып шығара бастағанын көруіңіз керек. Қолыңызды қозғалыс сенсорының үстінен сермеп көріңіз - енді сіз қызыл шамды көресіз және «Қозғалыс анықталды» басып шығаруды бастайды!

Енді біздің оқулар бастапқы күйге жіберілетінін тексеру үшін.

4-қадам: Бақылау тақтасы

Бақылау тақтасы
Бақылау тақтасы

Бастапқы күйге өтіп, бақылау тақтасын қараңыз! Сіз «? Trick or Treat Tracker» деп аталатын шелекті көруіңіз керек. Қолыңызды қозғалыс сенсорының жанында серпіп, оның жаңарғанын қараңыз!

Менің бақылау тақтам соңғы мәнді көрсететін 2 жиынтық тақтайшадан және оқиғалар санының гистограммасынан тұрады, сондықтан сенсордың қай уақытта іске қосылғанын көре аламын.

Міне, кейбір нәрселерді ескеру қажет:

  • Мүмкін сіз бір адамның қозғалыс сенсорының алдынан екі рет - сіздің есікке дейін және қайтатын жолда өтетінін есепке алу үшін «Аш адамдар» санын 2 -ге бөлгіңіз келеді. Сіз мұны нақты уақыттағы өрнектермен «= math.round (([Аш адамдар?]/2), 0)» теңдеуін қолдана отырып жасай аласыз.
  • Сіз қозғалыс сенсорының қаншалықты сезімтал екенін тексере аласыз және оны тротуарға сәйкес орналастыра аласыз. Мен оны есіктен алыс ұстауды ұсынамын, ол біреу есік алдында тұрған кезде іске қосылмайды.
  • Сондай -ақ, біреудің жақындап келе жатқанын айту үшін мәтіндік ескертулерді орнатуға болады.
  • Бақылау тақтасына кішкене сиқырлы тұлға беру үшін фондық суретті таңдаңыз!

Ұсынылған: