Taula de continguts:

Raspberry Pi Smart Scale: 10 passos (amb imatges)
Raspberry Pi Smart Scale: 10 passos (amb imatges)

Vídeo: Raspberry Pi Smart Scale: 10 passos (amb imatges)

Vídeo: Raspberry Pi Smart Scale: 10 passos (amb imatges)
Vídeo: M1 iPad Pro Setup 2024, Desembre
Anonim
Image
Image

Esteu cansats de fixar-vos en aquella avorrida, vella i mala notícia bàscul de bany cada matí? La que sovint et dius "t'estimo" cada vegada que la trepitges. Per què ningú no ha fet una balança que sigui realment divertida o motivadora? És hora de crear una escala que no només sigui intel·ligent, sinó que tingui una mica més de personalitat per alegrar el dia. Construirem la nostra pròpia bàscula de missatgeria de text, de seguiment de pesos, piratejable, que inclou un sentit de l’humor incorporat.

Es tracta d’un projecte divertit i senzill que combina un tauler d’equilibri Wii, un Raspberry Pi i una plataforma d’anàlisi de dades en línia per crear una escala connectada a la web controlada per un script Python que es pot piratejar.

Nivell del projecte: principiant Temps aproximat per completar: 20 minuts Factor de diversió: incommensurable

En aquest tutorial pas a pas:

  • connectar un tauler d'equilibri Wii a un Raspberry Pi mitjançant bluetooth executar un script Python que mesuri el pes quan trepitgi el tauler d'equilibri
  • utilitzeu un Raspberry Pi per transmetre el vostre pes a un servei al núvol (estat inicial)
  • configureu una notificació per SMS cada vegada que us peseu
  • creeu un tauler de control de pes al qual pugueu accedir des del navegador web

Pas 1: equipament

Escala Wii Balance Board
Escala Wii Balance Board

Aquí teniu una llista de tots els equips que farem servir en aquest tutorial amb enllaços a on podeu comprar cada element.

  • Raspberry Pi 3 amb targeta SD i font d'alimentació (https://init.st/psuufmj)
  • Wii Balance Board (https://init.st/qg4ynjl)
  • Paquet de bateries recarregables Wii Fit (https://init.st/iyypz2i)
  • Coixinets de feltre de 3/8 "(https://init.st/8gywmjj)
  • Llapis (no us donaré cap enllaç on comprar un llapis … n’heu de tenir un)

Nota: Si teniu un Raspberry Pi 1 o 2, necessitareu un adaptador Bluetooth (https://init.st/7y3bcoe)

Pas 2: escala Wii Balance Board

Per què un Wii Balance Board? Resulta que és una bàscula molt agradable i duradora que té connectivitat bluetooth. Això ens permetrà connectar-lo a un ordinador de placa única (Raspberry Pi) per llegir el vostre pes en un script Python i enviar aquestes mesures a un servei de dades en línia per fer coses interessants. A més, hi ha moltes possibilitats que vostè o algú que conegueu ja en tingueu un que simplement estigui recollint pols.

Haurem de fer un parell de senzilles modificacions al nostre Wii Balance Board perquè aquest projecte sigui pràctic i convenient.

Pas 3: Configuració de Bluetooth

El Raspberry Pi 3 ve amb Bluetooth integrat, tot el que necessitem per comunicar-nos amb el Wii Balance Board. Si teniu un Raspberry Pi 1 o 2, haurem d’utilitzar un dels nostres ports USB per connectar un adaptador.

Enceneu el vostre Pi (suposo que ja heu instal·lat Raspbian i arrenca) i aneu a la finestra del terminal de Raspberry Pi. Podeu veure l'adreça del vostre dongle bluetooth amb l'ordre "hcitool dev":

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

Instal·leu els mòduls bluetooth que farem servir als nostres scripts Python:

$ sudo apt-get install python-bluetooth

Un cop finalitzada la instal·lació, estem preparats per connectar-nos i comunicar-nos amb el Wii Balance Board. No emparellarem permanentment el nostre tauler amb el nostre Pi, com ho fem amb la majoria dels nostres dispositius bluetooth. El Wii Balance Board mai no es pretenia combinar amb cap altra cosa que no fos una Wii, i el vincle permanent va resultar ser el desafiament confús. L’aparellament es produirà cada vegada que executem el nostre script Python.

Pas 4: llegir l'escala

És hora de connectar la nostra Wii Balance Board al nostre Raspberry Pi. Ho farem modificant una versió de l’escript Gr8W8Upd8M8.py de Stavros Korokithakis (https://github.com/skorokithakis/gr8w8upd8m8). L’escriptura python que utilitzarem per a aquest pas es troba aquí. Podeu copiar el contingut d’aquest fitxer a un fitxer que creeu al vostre Raspberry Pi o podeu clonar tots els fitxers python que farem servir per a tot aquest projecte. Fem això últim. Escriviu les ordres següents en un terminal del vostre Raspberry Pi:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git clonació a 'escala intel·ligent' … remot: Compte d'objectes: 14, fet. remot: Compressió d'objectes: 100% (12/12), fet. remot: total 14 (delta 1), reutilitzat 8 (delta 0), reutilització del paquet 0 Desembalatge d'objectes: 100% (14/14), fet. S'està comprovant la connectivitat … fet.

clonació en "escala intel·ligent" … remot: Comptar objectes: 14, fet. remot: Compressió d'objectes: 100% (12/12), fet. remot: total 14 (delta 1), reutilitzat 8 (delta 0), reutilització del paquet 0 Desembalatge d'objectes: 100% (14/14), fet. S'està comprovant la connectivitat … fet.

Hauríeu de veure dos fitxers python al nou directori smart-scale: smartscale.py i wiiboard_test.py.

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

Executeu l'script wiiboard_test.py per provar la comunicació i obtenir lectures de pes del Wii Balance Board:

$ sudo python wiiboard_test.py

Veureu la següent resposta:

S'està descobrint el tauler … Premeu ara el botó de sincronització vermell del tauler

Traieu la tapa de la bateria que hi ha a sota del tauler per localitzar el botó de sincronització vermell. Assegureu-vos de prémer el botó pocs segons després d’executar l’escriptura o es produirà un temps d’espera. Un cop tingueu èxit, veureu alguna cosa similar al següent:

Wiiboard trobat a l’adreça 00: 23: CC: 2E: E1: 44 Intentant connectar-se … Connectat a Wiiboard a l’adreça 00: 23: CC: 2E: E1: 44 Wiiboard connectat A l’escriptura de dades rebuda 84.9185297 lbs84.8826412 lbs84.9275927 lbs

L'escriptura wiiboard_test.py pren el nombre de mesures de pes especificat a la línia 10 i genera la mitjana:

# --------- Configuració de l'usuari --------- WEIGHT_SAMPLES = 500 # ------------------------- --------

Podeu jugar amb aquest número canviant el valor i tornant a executar l'script per veure la variació del pes mesurat i del temps necessari per a cada mesura. Peseu-vos, peseu el vostre gos, peseu el que sigui i vegeu si les mesures tenen sentit. Per aturar l’escriptura, premeu CTRL + C.

Ara heu convertit amb èxit el vostre Wii Balance Board en una escala connectada a Raspberry Pi. Ara, fem que sigui una escala genial.

Pas 5: ajustaments del maquinari

Retocs de maquinari
Retocs de maquinari

Nintendo va suposar que sempre alimentaria el vostre Wii Balance Board amb quatre bateries AA i que no inclou cap adaptador de corrent altern. Tenir només l’alimentació de la bateria seria inconvenient perquè no podem emparellar permanentment la nostra placa Wii amb el nostre Pi mitjançant bluetooth. Hem de sincronitzar-lo i, a continuació, deixar que es mantingui sincronitzat sense esgotar les bateries per poder trepitjar la bàscula i pesar. Per sort, hi ha diversos adaptadors de tercers fabricats per a la Wii Balance Board que podem utilitzar per proporcionar energia constant des d’una presa de corrent. Substituïu les bateries per una bateria i connecteu l'adaptador de corrent altern a una presa de corrent.

L’haver d’aparellar Wii Balance Board i Raspberry Pi cada cop que executem el nostre script Python presenta un altre inconvenient a causa de la ubicació del botó de sincronització. El botó de sincronització es troba a la part inferior de la placa Wii, cosa que significa que hauríem de donar-li la volta cada cop que hàgim de sincronitzar-lo. Ho podem solucionar fent una petita palanca amb un llapis i tres coixinets de feltre de 3/8 "com es mostra a la part superior. El paquet de bateries recarregables exposa el botó de sincronització a la superfície inferior del tauler. Enganxeu un llapis (o alguna cosa similar) que abasti des del botó de sincronització fins a la part exterior del tauler. Apileu tres coixinets de feltre de 3/8 "(o alguna cosa similar) al centre del llapis per crear un pivot estacionari. Aneu amb compte de no exposar massa el llapis del tauler, ja que no voleu que algú el llanci accidentalment. Doneu la volta al tauler i podeu prémer el botó de sincronització simplement prement la palanca cap avall. Una mica piratejat però eficaç.

Depenent de com emmagatzemi el tauler Wii, és possible que vulgueu treure els coixinets de goma dels peus del tauler (els coixinets són simplement adhesius que podeu treure). Es poden col·locar coixinets de feltre de 3/8 als peus del tauler per facilitar el lliscament.

Pas 6: estat inicial

Estat inicial
Estat inicial

Volem transmetre el nostre pes / dades a un servei al núvol i que aquest servei converteixi les nostres dades en un bonic tauler de control al qual puguem accedir des del nostre ordinador portàtil o dispositiu mòbil. Les nostres dades necessiten una destinació. Utilitzarem l’Estat inicial com a destinació.

Pas 1: registreu-vos al compte inicial d’estat Aneu a https://iot.app.initialstate.com i creeu un compte nou.

Pas 2: instal·leu el ISStreamer Instal·leu el mòdul Python d’estat inicial al vostre Pi: en un símbol del sistema (no oblideu SSH al vostre Pi primer), executeu l’ordre següent:

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

Pas 3: Feu una mica d’Automagic Després del pas 2, veureu una cosa similar a la següent sortida a la pantalla:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Començant la instal·lació fàcil d'ISStreamer Python! Això pot trigar uns quants minuts a instal·lar-se, prendre un cafè:) Però no oblideu tornar, ja que tindré preguntes més endavant.

Easy_install: setuptools trobat 1.1.6

S'ha trobat pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versió major pip: 1 versió pip menor: 5 ISStreamer trobat, actualització … Requisit ja actualitzat: ISStreamer a /Library/Python/2.7/site-packages Neteja … Voleu obtenir automàticament un exemple de script? [sí / N]

(la sortida pot ser diferent i trigar més si mai no heu instal·lat el mòdul de transmissió inicial de Python State Initial)

Quan se us demani que obtingueu automàticament un exemple de script, escriviu y. Això crearà un script de prova que podem executar per assegurar-nos que podem transmetre dades a l'estat inicial des del nostre Pi. Se us demanarà:

On voleu desar l'exemple? [per defecte:./is_example.py]:

Podeu escriure un camí local personalitzat o prémer Retorn per acceptar el valor per defecte. Se us demanarà el vostre nom d’usuari i contrasenya que acabeu de crear quan vau registrar el vostre compte d’estat inicial. Introduïu tots dos i la instal·lació es completarà.

Pas 4: tecles d'accés

Vegem l'exemple de script que es va crear.

$ nano és_exemple.py

A la línia 15, veureu una línia que comença amb streamer = Streamer (bucket_ …. Aquesta línia crea un nou dipòsit de dades anomenat "Exemple de flux de Python" i està associat amb el vostre compte. Aquesta associació es produeix a causa de l'access_key = "…" paràmetre en aquesta mateixa línia. Aquesta llarga sèrie de lletres i números és la vostra clau d'accés al compte d'estat inicial. Si aneu al vostre compte d'estat inicial al navegador web, feu clic al vostre nom d'usuari a la part superior dreta i aneu a "La meva configuració", trobareu la mateixa clau d'accés a la part inferior de la pàgina a "Tecles d'accés en temps real".

Cada vegada que creeu un flux de dades, aquesta clau d'accés dirigirà aquest flux de dades al vostre compte (per tant, no compartiu la vostra clau amb ningú).

Pas 5: executeu l'exemple

Executeu l'script de prova per assegurar-vos que podem crear un flux de dades al vostre compte d'estat inicial. Executeu el següent:

$ python és_exemple.py

Pas 6: beneficis

Torneu al vostre compte d’estat inicial al navegador web. A la part esquerra del prestatge de registre s’hauria d’haver aparegut un nou dipòsit de dades anomenat “Exemple de corrent de Python” (és possible que hagueu d’actualitzar la pàgina). Podeu veure les dades a Rajoles per veure aquestes mateixes dades en forma de tauler.

Pas 7: guió final

Suposant que heu executat l'ordre "git clone https://github.com/InitialState/smart-scale.git" a la part 2, l'script final que ho combina tot s'anomena smartscale.py al directori ~ / smart-scale. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Cal que configureu uns quants paràmetres a l'script abans de poder executar-lo. Obriu smartscale.py al vostre editor de text preferit, com ara nano.

$ cd ~ $ cd smart-scale $ nano smartscale.py

A prop de la part superior d’aquest fitxer, hi ha una secció Configuració de l’usuari.

# --------- Configuració de l'usuari --------- BUCKET_NAME = ": apple: El meu historial de pes" BUCKET_KEY = "weight11" ACCESS_KEY = "COL·LOCA LA CLAU D'ACCÉS A L'ESTAT INICIAL AQUÍ" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7 # ---------------------------------

  • BUCKET_NAME estableix el nom del dipòsit de dades de l'estat inicial on es transmetran el pes o les dades. Això es pot configurar aquí i canviar-lo més endavant a la IU.
  • BUCKET_KEY és l'identificador únic de dipòsit que especifica on es transmetran les vostres dades. Si voleu crear un tauler / tauler diferent, utilitzeu un identificador diferent aquí (* nota, si arxiveu un dipòsit, no podeu tornar a utilitzar la seva clau en un dipòsit nou).
  • ACCESS_KEY és la clau del compte d’estat inicial. Si no col·loqueu el vostre ACCESS_KEY en aquest camp, les vostres dades no apareixeran al vostre compte.
  • METRIC_UNITS us permet especificar el vostre pes en kg si es defineix a True o lb si es defineix com a False.
  • WEIGHT_SAMPLES especifica quantes mesures es prenen i es fan una mitjana conjunta per obtenir el vostre pes real. 500 mesures triguen uns 4-5 segons i proporcionen resultats bastant precisos.
  • THROWAWAY_SAMPLES especifica el nombre de mostres que es llencen al primer pas al tauler. Això evita que els passos inicials i el desplaçament desprenguin la mesura final. Això sempre ha de ser molt inferior a WEIGHT_SAMPLES.
  • WEIGHT_HISTORY defineix el nombre de mesures preses abans que s'enviï una actualització addicional. Només es compten per a la història les mesures preses entre dues hores o més.

Un cop hàgiu especificat cada paràmetre en aquesta secció i hàgiu desat els canvis, ja podreu executar l'script final. Abans d'executar el guió, revisem el que farà.

  • Al començament del guió, se us demanarà que vinculeu el vostre Wii Balance Board amb el vostre Raspberry Pi. Utilitzeu la palanca que heu piratejat conjuntament a la secció Part 2: ajustaments de maquinari per prémer el botó de sincronització quan se us demani.
  • Un cop executat l'script, trepitgeu el tauler Wii per començar a mesurar el vostre pes. Al cap de 4 a 5 segons, el pes s’enviarà automàticament al vostre compte d’estat inicial.
  • Després de configurar les notificacions per SMS (en un parell de passos), rebreu un missatge de text poc després de la vostra mesura.

Executeu l'script per iniciar la màgia.

$ sudo python smartscale.py

Pas 8: Tauler de control

panell
panell

Aneu al vostre compte d’estat inicial i feu clic al nou dipòsit de dades amb el nom corresponent al paràmetre BUCKET_NAME (és a dir, El meu historial de pes). Feu clic a Rajoles per veure el tauler del vostre historial de pesos. Hauríeu de veure tres mosaics la primera vegada que visualitzeu les vostres dades a mosaics: actualització, data de pes i pes (lliures). Podeu personalitzar el tauler canviant de mida i movent mosaics, canviant els tipus de visualització i fins i tot afegint mosaics. Aquest tauler us permet veure el vostre historial de pes d'un cop d'ull. És apte per a mòbils i fins i tot el podeu compartir amb altres persones.

Podeu afegir una imatge de fons al tauler per donar més personalitat i context a les vostres dades.

Pas 9: SMS

SMS
SMS

Creem una alerta per SMS cada vegada que la balança mesuri el pes. Assegureu-vos que s'ha carregat el dipòsit de dades de l'historial de pesos.

  1. Feu clic a la configuració del dipòsit (sota el seu nom) a la finestra del dipòsit de dades.
  2. Feu clic a la pestanya Activadors.
  3. Seleccioneu el flux de dades per activar-lo. Podeu utilitzar la llista desplegable per seleccionar entre els fluxos existents un cop s'ha carregat un dipòsit de dades o podeu escriure el nom / la clau del flux manualment. A l'exemple de captura de pantalla anterior, està seleccionat "Actualitza".
  4. Seleccioneu l'operador condicional, en aquest cas "coincideix".
  5. Seleccioneu el valor del disparador que activarà una acció (escriviu manualment el valor desitjat). Escriviu lb si no feu servir unitats mètriques o escriviu kg si feu servir unitats mètriques. Sempre que el flux "Actualització" contingui "lb" (o "kg"), rebreu una notificació de missatge de text.
  6. Feu clic al botó "+" per afegir la condició de disparador.
  7. Introduïu la vostra adreça electrònica o número de telèfon al camp "Contactes per notificar".
  8. Feu clic al botó "+" per afegir la informació de contacte.
  9. Introduïu qualsevol codi de verificació si afegiu un número de telèfon nou per completar la configuració.
  10. Feu clic al botó Fet a la part inferior per tornar a la pantalla principal. El disparador ja està actiu i s'activarà quan es compleixi la condició.

Un cop finalitzada la configuració, rebreu un SMS cada vegada que us peseu que conté el vostre pes, quant va canviar el vostre pes des de l'última mesura i una broma / insult / compliment a l'atzar.

Pas 10: Conclusió

Hi ha opcions il·limitades per aprofitar el que heu creat ara. Aquí teniu algunes idees per a aquest projecte:

  • Podeu transmetre dades d’altres fonts al mateix tauler d’historial de pes (informació) per crear el vostre propi tauler de salut personal.
  • Podeu canviar les bromes a les funcions messageWeighFirst, messageWeighLess, messageWeighMore i messageWeighSame al vostre propi sentit de l’humor.
  • Podeu canviar els acudits en missatges pràctics o eliminar-los i utilitzar el codi d’escala per rastrejar el pes d’alguna cosa més important a part del vostre propi pes corporal.
  • Podeu crear la vostra pròpia nevera de cervesa / vi intel·ligent amb el mateix enfocament. Aquí ja hi ha un fantàstic tutorial per a això.

Feu un cop d'ull i feu-me saber si aquest tutorial us inspira a crear alguna cosa increïble.

Recomanat: