Мазмұны:

Raspberry Pi Smart Scale: 10 қадам (суреттермен)
Raspberry Pi Smart Scale: 10 қадам (суреттермен)

Бейне: Raspberry Pi Smart Scale: 10 қадам (суреттермен)

Бейне: Raspberry Pi Smart Scale: 10 қадам (суреттермен)
Бейне: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Шілде
Anonim
Image
Image

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

Бұл Wii теңгерім тақтасын, Raspberry Pi мен интернеттегі деректерді талдау платформасын біріктіретін, Python сценарийі арқылы басқарылатын веб-масштабты біріктіретін қызықты, жеңіл жоба.

Жоба деңгейі: Бастаушы Аяқтауға шамамен уақыт: 20 минут Қызықты фактор: Өлшеуге келмейтін

Бұл қадамдық оқулықта сіз:

  • bluetooth арқылы Wii баланстық тақтасын Raspberry Pi -ге қосыңыз, баланс тақтасына шыққан кезде салмағыңызды өлшейтін Python сценарийін іске қосыңыз.
  • салмағыңызды бұлт қызметіне жеткізу үшін Raspberry Pi пайдаланыңыз (бастапқы күй)
  • салмақ өлшеген сайын SMS хабарлама орнатыңыз
  • веб-браузерде қол жеткізуге болатын салмақ бақылау тақтасын жасаңыз

1 -қадам: Жабдық

Wii теңгерім тақтасының шкаласы
Wii теңгерім тақтасының шкаласы

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

  • Raspberry Pi 3 SD картасы мен қуат көзі бар (https://init.st/psuufmj)
  • Wii теңгерім тақтасы (https://init.st/qg4ynjl)
  • Wii Fit қайта зарядталатын батарея жиынтығы (https://init.st/iyypz2i)
  • 3/8 «Киізден жасалған жастықтар (https://init.st/8gywmjj)
  • Қарындаш (мен сізге қарындашты қайдан сатып алуға сілтеме бермеймін … сізде біреу болуы керек)

Ескерту: Егер сізде Raspberry Pi 1 немесе 2 болса, сізге bluetooth адаптері қажет болады (https://init.st/7y3bcoe)

2 -қадам: Wii теңгерім тақтасының шкаласы

Неліктен Wii теңгерім тақтасы? Бұл Bluetooth байланысы бар шынымен жақсы, берік масштаб екені белгілі болды. Бұл бізге сіздің салмағыңызды Python сценарийінде оқу үшін және бір өлшемді компьютерге (Raspberry Pi) қосуға мүмкіндік береді және бұл өлшеулерді жақсы жұмыс жасау үшін желідегі деректер қызметіне жібереді. Сонымен қатар, сізде немесе сіз білетін біреуде шаң жинайтын адам бар екеніне жақсы мүмкіндік бар.

Бұл жобаны практикалық және ыңғайлы ету үшін бізге Wii Balance Board -ге бірнеше қарапайым өзгертулер енгізу қажет.

3 -қадам: Bluetooth орнату

Raspberry Pi 3 кіріктірілген bluetooth -мен бірге келеді, бізге Wii Balance Board -пен байланысу үшін қажет. Егер сізде Raspberry Pi 1 немесе 2 болса, адаптерді қосу үшін USB порттарымыздың бірін қолдануға тура келеді.

Pi -ді қосыңыз (менің ойымша, сіз Raspbian -ды орнатқансыз және ол жүктеледі) және Raspberry Pi терминал терезесіне өтіңіз. Сіз Bluetooth hongle адресін «hcitool dev» командасымен көре аласыз:

$ hcitool devDevices: hci0 00: 1A: 7D: DA: 71: 13

Python сценарийлерінде қолданылатын Bluetooth модульдерін орнатыңыз:

$ sudo apt-get python-bluetooth орнатыңыз

Орнату аяқталғаннан кейін біз Wii Balance Board -пен байланыс орнатуға дайынбыз. Біз Bluetooth тақталарының көпшілігіндей тақтаны Pi -мен тұрақты түрде жұптастырмаймыз. Wii баланстық тақтасы ешқашан Wii -ден басқа нәрсемен біріктіруге арналмаған, және тұрақты жұптастыру өте қиын мәселе болды. Python сценарийін іске қосқан сайын жұптасу болады.

4 -қадам: Шкаланы оқу

Біздің Wii теңгерім тақтасын Raspberry Pi -ге қосатын уақыт келді. Біз мұны Stavros Korokithakis Gr8W8Upd8M8.py сценарийінің нұсқасын өзгерту арқылы жасаймыз (https://github.com/skorokithakis/gr8w8upd8m8). Бұл қадамда біз қолданатын питон сценарийі осында орналасқан. Сіз бұл файлдың мазмұнын Raspberry Pi -де жасаған файлға көшіре аласыз немесе осы жобада біз қолданатын барлық python файлдарын клондай аласыз. Соңғысын жасайық. Келесі пәрмендерді Raspberry Pi терминалына енгізіңіз:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git «ақылды масштабқа» клондау… қашықтан басқару: объектілерді санау: 14, аяқталды. қашықтан басқару: объектілерді қысу: 100% (12/12), дайын. қашықтан басқару: Барлығы 14 (дельта 1), қайта қолданылған 8 (дельта 0), қайта оралған 0 Объектілерді орау: 100% (14/14), дайын. Байланыс тексерілуде… орындалды.

«ақылды масштабқа» клондау… қашықтан басқару: объектілерді санау: 14, дайын. қашықтан басқару: объектілерді қысу: 100% (12/12), дайын. қашықтан басқару: Барлығы 14 (дельта 1), қайта қолданылған 8 (дельта 0), қайта оралған 0 Объектілерді орау: 100% (14/14), дайын. Байланыс тексерілуде… орындалды.

Жаңа смарт -масштабтағы каталогта екі python файлын көру керек - smartscale.py және wiiboard_test.py.

$ cd smart-scale $ lsREADME.md smartscale.py wiiboard_test.py

Wiiboard_test.py сценарийін іске қосып, Wii баланстық тақтасынан байланысты тексеріп, салмақ көрсеткіштерін алыңыз:

$ sudo python wiiboard_test.py

Сіз келесі жауапты көресіз:

Тақта табылуда… Тақтадағы қызыл синхрондау түймесін қазір басыңыз

Қызыл синхрондау түймесін табу үшін тақта астындағы батарея қақпағын алыңыз. Сценарий іске қосылғаннан кейін бірнеше секунд ішінде түймені басқаныңызға көз жеткізіңіз, әйтпесе күту уақыты пайда болады. Сәтті болғаннан кейін сіз келесіге ұқсас нәрсені көресіз:

00: 23: CC: 2E: E1: 44 мекенжайында Wiiboard табылды Қосылу үшін… Wiiboard 00: 23 мекенжайы бойынша қосылды: CC: 2E: E1: 44Wiiboard қосылған ACK алынған деректерді жазу үшін 84,9185297 фунт 84,8826412 фунт 84,9275927 фунт

Wiiboard_test.py сценарийі 10 -жолда көрсетілген салмақ өлшемдерінің санын қабылдайды және орташа мәнді шығарады:

# --------- Пайдаланушы параметрлері --------- WEIGHT_SAMPLES = 500# ------------------------- --------

Өлшенген салмақтың өзгеруін және әрбір өлшеу үшін қажетті уақытты көру үшін мәнді өзгерту және сценарийді қайта іске қосу арқылы осы нөмірмен ойнауға болады. Өзіңізді өлшеңіз, итіңізді өлшеңіз, кез келген нәрсені өлшеңіз және өлшеулердің мағынасы бар -жоғын қараңыз. Сценарийді тоқтату үшін CTRL+C пернелер тіркесімін басыңыз.

Сіз қазір Wii теңгерім тақтасын Raspberry Pi қосылған шкаласына сәтті түрлендірдіңіз. Енді, оны керемет масштабқа айналдырайық.

5 -қадам: Аппараттық құралдарды түзету

Аппараттық түзетулер
Аппараттық түзетулер

Nintendo сіз әрқашан Wi -Fi теңгерім тақтасын төрт АА батареясымен қуаттайтын боласыз деп есептеді және айнымалы ток адаптері жоқ. Тек аккумулятор қуатының болуы қолайсыз болады, өйткені біз Wii тақтасын bluetooth арқылы Pi -мен тұрақты түрде байланыстыра алмаймыз. Біз оны синхрондауымыз керек, содан кейін батареяны тауспай синхрондауға рұқсат беру керек, сондықтан біз таразыға басып, өлшей аламыз. Бақытымызға орай, Wii Balance Board үшін қабырға розеткасынан тұрақты қуат беру үшін қолдануға болатын бірнеше үшінші тарап адаптерлері бар. Батареяларды батарея жинағына ауыстырыңыз және адаптерді қабырғадағы розеткаға қосыңыз.

Python сценарийін іске қосқан сайын Wii Balance Board мен Raspberry Pi жұптастыру синхрондау түймесінің орналасуына байланысты тағы бір қолайсыздықты тудырады. Синхрондау түймесі Wii тақтасының төменгі жағында орналасқан, демек, біз синхрондау қажет болған сайын оны айналдыруға тура келеді. Біз мұны қарындаш пен жоғарыда көрсетілгендей 3/8 дюймдік үш жастықшаның көмегімен кішкене тұтқаны жасау арқылы түзете аламыз. Қайта зарядталатын батареялар жиынтығы синхрондау түймесін тақтаның астына шығарады. синхрондау түймесінен тақтаның сыртқы алдыңғы жағына дейін. Тұрақты айналдыру үшін қарындаштың ортасына 3/8 дюймдік үш жастықшаны (немесе ұқсас нәрсені) салыңыз. Қарындашты тақтадан көп шығармау үшін абай болыңыз, себебі сіз оны кездейсоқ шығарып алғыңыз келмейді. Тақтаны аударыңыз, сонда сіз рычагты басу арқылы синхрондау түймесін басуға болады. Аздап бұзылған, бірақ тиімді.

Wii тақтасын қалай сақтайтындығыңызға байланысты, тақтайшаның аяғынан резеңке ұстағыштарды алып тастағыңыз келуі мүмкін (жастықшалар - бұл сіз жапсыруға болатын жапсырмалар). 3/8 дюймдік киізден жасалған тақталарды тақтаның табанына оңай сырғу үшін қоюға болады.

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

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

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

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

2 -қадам: ISStreamer орнатыңыз Pi -ге Initial State Python модулін орнатыңыз: Пәрмен жолында (алдымен SSH қосуды ұмытпаңыз) келесі пәрменді орындаңыз:

$ 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 bashPassword: ISStreamer Python оңай орнатудың басталуы! Орнатуға бірнеше минут кетуі мүмкін, кофе алыңыз:) Бірақ қайтып оралуды ұмытпаңыз, менде сұрақтар болады!

Easy_install табылды: setuptools 1.1.6

Табылған пип: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) папасының 1.5.6 пипінің негізгі нұсқасы: 1 pip кіші нұсқасы: 5 ISStreamer табылды, жаңартылуда… Талап қазірдің өзінде жаңартылған: /Library/Python/2.7/site-packages ішіндегі ISStreamer тазалау … Сіз автоматты түрде мысал сценарийін алғыңыз келе ме? [ж/ж]

(егер сіз бұрын Python ағындық модулін ешқашан орнатпаған болсаңыз, шығыс әр түрлі болуы мүмкін және ұзағырақ болуы мүмкін)

Мысал сценарийін автоматты түрде алу сұралғанда, y деп теріңіз. Бұл біздің Pi -ден бастапқы күйге деректерді жібере алатындығымызды қамтамасыз ету үшін іске қосылатын тест сценарийін жасайды. Сізден сұралады:

Мысалды қайда сақтағыңыз келеді? [әдепкі:./is_example.py]:

Теңшелетін жергілікті жолды енгізуге немесе әдепкі мәнді қабылдау үшін enter пернесін басуға болады. Бастапқы күйдегі есептік жазбаны тіркеген кезде сіз жасаған логин мен парольді енгізу сұралады. Екеуін де енгізіңіз және орнату аяқталады.

4 -қадам: кіру кілттері

Сценарийдің үлгісін қарастырайық.

$ nano is_example.py

15 -жолда сіз streamer = Streamer (bucket_… деп басталатын жолды көресіз. Бұл жолдар «Python ағынының мысалы» деп аталатын жаңа деректер пакетін жасайды және сіздің есептік жазбаңызбен байланыстырылады. Бұл байланыс access_key = «…» арқасында болады. сол жолдағы параметр. Бұл әріптер мен сандардың ұзақ тізбегі - сіздің бастапқы күйдегі есептік жазбаңызға кіру кілті. Егер сіз өзіңіздің веб -шолғышыңыздағы бастапқы күйге кірсеңіз, жоғарғы оң жақтағы пайдаланушы атыңызды нұқыңыз, содан кейін «Менің параметрлерім» бөліміне өтіңіз., сіз сол кіру кілтін беттің төменгі жағында «Ағындық кіру кілттері» астында таба аласыз.

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

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

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

$ python is_example.py

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

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

7 -қадам: Қорытынды сценарий

Сіз 2-бөлімде «git clone https://github.com/InitialState/smart-scale.git» пәрменін орындадыңыз деп есептесеңіз, бәрін біріктіретін соңғы сценарий ~/smart-scale каталогында smartscale.py деп аталады. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Сценарийде оны іске қоспас бұрын бірнеше параметрлерді орнату қажет. Nano сияқты сүйікті мәтіндік редакторда smartscale.py ашыңыз.

$ cd ~ $ cd ақылды шкала $ nano smartscale.py

Бұл файлдың жоғарғы жағында пайдаланушы параметрлері бөлімі бар.

# --------- Пайдаланушы параметрлері --------- BUCKET_NAME = «: алма: Менің салмағым тарихы» BUCKET_KEY = «weight11» ACCESS_KEY = «БАСТАУШЫ МЕМЛЕКЕТТІК КІЛТІҢІЗДІ ОСЫНДА ОРЫНДАҢЫЗ» METRIC_UNITS = FalseWEIGHT_SAMPLES = 500 АРҚЫЛ_ҮЛГІЛЕР = 100 САЛМАҚ_ТАРИХЫ = 7# ---------------------------------

  • BUCKET_NAME сіздің салмағыңыз/деректер жіберілетін бастапқы күй деректер шелегінің атауын орнатады. Мұны осында орнатуға және кейінірек интерфейс интерфейсінде өзгертуге болады.
  • BUCKET_KEY - бұл сіздің деректеріңіз қайда ағылатынын көрсететін бірегей шелек идентификаторы. Егер сіз басқа шелек/бақылау тақтасын жасағыңыз келсе, мұнда басқа идентификаторды қолданыңыз (*ескерту, егер сіз шелекті мұрағаттасаңыз, оның кілтін жаңа шелекте қайта пайдалана алмайсыз).
  • ACCESS_KEY - сіздің бастапқы күй шотының кілті. Егер сіз ACCESS_KEY -ді осы өріске қоймасаңыз, деректер сіздің есептік жазбаңызда көрсетілмейді.
  • METRIC_UNITS егер «True» мәніне орнатылса, кг -да салмағыңызды көрсетуге мүмкіндік береді.
  • WEIGHT_SAMPLES сіздің нақты салмағыңызды алу үшін бірге қанша өлшеу жүргізілетінін көрсетеді. 500 өлшеу шамамен 4-5 секундты алады және жеткілікті дәл нәтиже береді.
  • THROWAWAY_SAMPLES тақтаға алғаш қадам басқанда тасталатын үлгілердің санын көрсетеді. Бұл бастапқы қадамдар мен соңғы өлшеуден бас тартуға жол бермейді. Бұл әрқашан WEIGHT_SAMPLES мәнінен әлдеқайда аз болуы керек.
  • WEIGHT_HISTORY қосымша жаңарту жіберілгенге дейін алынған өлшемдердің санын орнатады. Тарих үшін екі сағат немесе одан да көп уақыт аралығында жүргізілген өлшеулер ғана есептеледі.

Осы бөлімде әр параметрді көрсетіп, өзгертулерді сақтағаннан кейін сіз соңғы сценарийді іске қосуға дайынсыз. Сценарийді іске қоспас бұрын, ол не істейтінін қарастырайық.

  • Сценарийдің басында сізден Wii Balance тақтасын Raspberry Pi -мен жұптастыру сұралады. Сұралған кезде синхрондау түймесін басу үшін 2 -бөлім: Аппараттық құралдарды реттеу тармағында бірге бұзған тұтқаны пайдаланыңыз.
  • Сценарий іске қосылғаннан кейін Wii тақтасына өтіп, салмағыңызды өлшеуді бастаңыз. 4-5 секундтан кейін сіздің салмағыңыз автоматты түрде сіздің бастапқы мемлекет шотыңызға жіберіледі.
  • Біз SMS хабарландыруларын орнатқаннан кейін (бірнеше қадаммен), сіз өлшегеннен кейін көп ұзамай мәтіндік хабар аласыз.

Сиқырды бастау үшін сценарийді іске қосыңыз.

$ sudo python smartscale.py

8 -қадам: бақылау тақтасы

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

Бастапқы күй тіркелгісіне өтіп, BUCKET_NAME параметріне сәйкес келетін атауы бар жаңа деректер шелегін басыңыз (яғни менің салмақ тарихым). Салмақ тарихының бақылау тақтасын көру үшін плиткалар түймесін басыңыз. Плиткалардағы деректерді бірінші рет көргенде сіз үш тақтайшаны көруіңіз керек - Жаңарту, Салмақ күні және Салмағы (lb). Сіз тақтаны тақтайшаның өлшемін өзгерту және жылжыту, сонымен қатар көрініс түрлерін өзгерту және тіпті тақтайшалар қосу арқылы реттей аласыз. Бұл бақылау тақтасы сізге салмақ тарихын бір қарауға мүмкіндік береді. Бұл мобильді телефон, сондықтан оны басқа адамдармен бөлісуге болады.

Деректерге жеке тұлға мен контекст беру үшін бақылау тақтасына фондық сурет қосуға болады.

9 -қадам: SMS

қысқаша хабар қызметі
қысқаша хабар қызметі

Салмақ өлшеуді қабылдаған кезде SMS -ескерту жасайық. Сіздің салмақ тарихының деректер шелегі жүктелгеніне көз жеткізіңіз.

  1. Деректер шелегі терезесінде шелек параметрлерін (оның атымен) басыңыз.
  2. Триггерлер қойындысын нұқыңыз.
  3. Іске қосу үшін деректер ағынын таңдаңыз. Деректер шелегі жүктелгеннен кейін бар ағындарды таңдау үшін ашылмалы тізімді пайдалануға болады немесе ағынның атауын/кілтін қолмен теруге болады. Жоғарыдағы скриншотта «Жаңарту» таңдалған.
  4. Шартты операторды таңдаңыз, бұл жағдайда 'match'.
  5. Әрекетті іске қосатын триггер мәнін таңдаңыз (қалаған мәнді қолмен теріңіз). Егер сіз метрикалық бірліктерді пайдаланбайтын болсаңыз, lb немесе метрикалық бірліктерді қолдансаңыз, кг теріңіз. «Жаңарту» ағынында «lb» (немесе «kg») болған кезде, сіз мәтіндік хабарландыру аласыз.
  6. Триггер шартын қосу үшін '+' түймесін басыңыз.
  7. «Хабарлама үшін контактілер» өрісіне электрондық пошта мекенжайын немесе телефон нөмірін енгізіңіз.
  8. Байланыс ақпаратын қосу үшін '+' түймесін басыңыз.
  9. Реттеуді аяқтау үшін жаңа телефон нөмірін қоссаңыз, кез келген растау кодын енгізіңіз.
  10. Негізгі экранға оралу үшін төменгі жақтағы Дайын түймесін басыңыз. Сіздің триггеріңіз қазір қосулы және шарт орындалған кезде жанады.

Орнату аяқталғаннан кейін, сіз өз салмағыңызды, соңғы өлшеу кезінен бастап сіздің салмағыңыздың қаншалықты өзгергенін және кездейсоқ әзіл / қорлау / мақтауды қамтитын SMS -хабарлама аласыз.

10 -қадам: Қорытынды

Сіз қазір жасаған нәрсеге сүйенудің шексіз нұсқалары бар. Міне, осы жобаның бірнеше идеялары:

  • Денсаулықтың жеке бақылау тақтасын жасау үшін басқа дереккөздерден алынған деректерді салмақ тарихының бақылау тақтасына апаруға болады.
  • MessageWeighFirst, messageWeighLess, messageWeighMore және messageWeighSame функцияларындағы әзілдерді өзіңіздің әзіл сезіміңізге қарай өзгертуге болады.
  • Сіз әзілдерді практикалық хабарламаларға айналдыра аласыз немесе оларды алып тастай аласыз және өзіңіздің дене салмағыңыздан басқа маңызды нәрсенің салмағын бақылау үшін шкаланың кодын қолдана аласыз.
  • Сіз өзіңіздің ақылды сыра/шарап тоңазытқышын жасай аласыз. Бұл үшін қазірдің өзінде керемет оқулық бар.

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

Ұсынылған: