Els sensors Hall són sensors que produeixen un senyal elèctric a la sortida quan entra en contacte amb un camp magnètic. El valor analògic del senyal elèctric a la sortida del sensor és una funció de la intensitat del camp magnètic. Actualment, els sensors Hall són a tot arreu, s’utilitzen per diferents motius i en tot tipus de dispositius, des de telèfons mòbils fins a commutadors, per mesurar la velocitat, la posició i la distància en cotxes i en altres productes basats en la indústria de l’automoció. Aquesta versatilitat del sensor de sala fa que siguin imprescindibles per als fabricants i enginyers elèctrics, per això avui em mostraré com utilitzar un sensor de sala en un projecte basat en Raspberry Pi.
Podeu consultar en qualsevol moment els nostres altres projectes basats en el sensor Hall, inclosa la interfície del sensor hall amb Arduino.
Components necessaris
Els components / components següents són necessaris per construir aquest projecte;
- Raspberry pi 2 o 3
- Targeta SD (mínim de 8 GB)
- Sensor d'efecte Hall
- Filferros de pont
- Taulers de pa
- Cable LAN
- Font d'alimentació
Algunes parts opcionals que es poden utilitzar inclouen:
- Monitor
- Teclat i ratolí
- Cable HDMI
- Dongle Wi-Fi

Aquest tutorial es basarà en el sistema operatiu stretch Raspbian, per la qual cosa, com de costum, suposo que esteu familiaritzat amb la configuració del Raspberry Pi amb el sistema operatiu stretch Raspbian i que sabeu com fer SSH al raspberry pi mitjançant un programari de terminal com ara massilla. Si teniu problemes amb això, hi ha un munt de tutorials de Raspberry Pi en aquest lloc web que us poden ajudar.
Per a aquells que instal·laran el sistema operatiu stretch Raspbian per primera vegada, un problema que he descobert, la majoria de la gent, és entrar al Raspberry Pi mitjançant ssh. Cal tenir en compte que ssh està desactivat originalment al sistema operatiu i que necessiteu un monitor per habilitar-lo, o bé sota les opcions de configuració del raspberry pi, o bé creeu un fitxer en blanc anomenat ssh amb el vostre ordinador Windows o Linux i copieu el fitxer en blanc a el directori arrel de la targeta SD. Haureu d’inserir el carretó SD a la ranura de la targeta SDd de l’ordinador per copiar-hi.
Utilitzar el segon mètode és més adequat per a aquells que executen el pi en mode sense cap. Amb totes les peces a punt, podem procedir a la construcció.
Esquema de connexions:
Per utilitzar el sensor d'efecte Hall amb Raspberry Pi, connecteu els components segons l'esquema següent.


El sensor Hall utilitzat per aquest tutorial pot proporcionar valors analògics i digitals a la sortida. Però, per simplificar el tutorial, vaig decidir utilitzar el valor digital perquè utilitzar la sortida analògica requerirà la connexió d’un ADC al Raspberry Pi.
Codi Python i explicació de treball:
El codi Python per a aquest projecte de sensor de saló és molt senzill, tot el que hem de fer és llegir la sortida del sensor de sala i encendre o apagar el LED en conseqüència. El LED s’ha d’encendre si es detecta l’imant i s’ha d’apagar d’una altra manera.
Enceneu el vostre Raspberry Pi i SSH en ell utilitzant massilla (si està connectat en mode sense cap com jo). Com és habitual amb la majoria dels meus projectes, creo un directori dins del directori inicial on s’emmagatzema tot el relacionat amb cada projecte, de manera que per a aquest projecte crearem un directori anomenat hall . Tingueu en compte que aquesta és només una preferència personal per mantenir les coses organitzades.
Creeu el directori amb;
mkdir hallsensor
Canvieu el directori pel nou directori que acabeu de crear i obriu un editor per crear l’escriptura python mitjançant;
cd hallsensor
Seguit per;
nano hallsensorcode.py
Un cop s'obre l'editor, escrivim el codi del projecte. Faré un breu desglossament del codi per mostrar els conceptes clau, i el codi complet de Python estarà disponible després.
Comencem el codi important la biblioteca RPI.GPIO que ens permet escriure scripts python per interactuar amb els pins GPIO de raspberry pi.
importar RPi.GPIO com a gpio
A continuació, establim la configuració de numeració per al GPIO de Rpi que ens agradarà utilitzar i desactivarem els avisos GPIO per permetre l'execució lliure del codi.
gpio.setmode (gpio.BCM) gpio.setwarnings (fals)
A continuació, establim declarar els pins GPIO als quals es connecta el LED i la sortida digital del sensor de sala d’acord amb la numeració BCM seleccionada.
passador = 2 passador = 3
A continuació, configurem els pins GPIO com a entrada o sortida. El pin amb el qual es connecta el LED s’estableix com a sortida i el que es connecta el sensor de sala com a entrada.
gpio.setup (hallpin, gpio.IN) gpio.setup (ledpin, gpio.OUT)
Fet això, escrivim la part principal del codi, que és un bucle de temps que avalua constantment la sortida del sensor de sala i encén el LED si es detecta un imant i apaga el LED quan no es detecta un imant.
mentre que True: if (gpio.input (hallpin) == False): gpio.output (ledpin, True) print ("imant detectat") else: gpio.output (ledpin, False) print ("camp magnètic no detectat")
El codi complet de Python amb vídeo de demostració es dóna al final del projecte.

Copieu i deseu el codi i sortiu de l’editor després d’escriure’l mitjançant;
CTRL + X seguit de y .
Després de desar, reviseu les vostres connexions una vegada més i executeu l'script python utilitzant;
sudo python hallsensorcode.py
Amb el guió en execució, cada vegada que s’apropa un imant o qualsevol cosa magnètica al sensor de sala, el LED s’encén com es mostra a la imatge següent.


Des dels interruptors de canya per a una llar intel·ligent fins als velocímetres per a una bicicleta, hi ha diversos elements fantàstics que es poden construir amb aquest tutorial a la base. No dubteu a compartir qualsevol projecte que vulgueu construir a la secció de comentaris següent.
Tots consultem els nostres projectes basats en el sensor de sala anterior:
- Velocímetre de bricolatge mitjançant Arduino i aplicació de processament d'Android
- Circuit de velocímetre i odòmetre digital mitjançant microcontrolador PIC
- Realitat virtual mitjançant Arduino i Processing
- Mesura de la força del camp magnètic mitjançant Arduino
