Chi volesse esplorare in profondità il mondo dell’Internet delle Cose (IoT) e del monitoraggio a distanza delle risorse, troverà di grande aiuto il lavoro svolto dall’autore di FindMyCat, un localizzatore open source progettato originariamente per tracciare gli spostamenti di cani e gatti ma adattabile a qualunque tipo di utilizzo.
Il sito del progetto e il repository GitHub correlato contengono tutte le informazioni per realizzare il localizzatore in proprio. È detto open source perché l’autore fornisce tutto il materiale per realizzare il dispositivo portatile.
FindMyCat è la risposta a ciò che è disponibile sul mercato e che, per un verso o per l’altro, presenta delle criticità: autonomia della batteria non soddisfacente, comportamento inaffidabile, sorgente chiuso con l’impossibilità di applicare qualunque tipo di personalizzazione, costo elevato. Giusto per evidenziare i problemi più ricorrenti.
Come creare, allora, un dispositivo per il tracciamento a distanza che sia compatto e pratico da usare, abbia una batteria in grado di durare diversi mesi, possa funzionare sia all’aperto che al chiuso e offra il dato di posizionamento in tempo reale? Il risultato è proprio FindMyCat, partorito dopo circa 11 mesi di lavoro.
Le principali caratteristiche di FindMyCat, localizzatore “fai da te” a costo contenuto
La scheda elettronica che si può creare in autonomia e che sostiene il funzionamento di FindMyCat integra un chip GPS e uno slot per l’inserimento di una SIM card. In questo modo è possibile effettuare il monitoraggio ovunque, indipendentemente dalla posizione geografica.
Grazie al supporto per UWB (Ultra Wide Band) e Bluetooth, l’ingegnoso FindMyCat consente di stabilire con assoluta precisione la distanza e la direzione in cui si trova l’animale che si sta monitorando.
L’idea di Smart Tether, inoltre, fa sì che FindMyCat entri automaticamente in una modalità di “sonno profondo” quando l’animale domestico si trova al sicuro in casa. Nell’ambiente di residenza, il dispositivo si limita a inviare la posizione tramite WiFi; il monitoraggio più attento è abilitato outdoor con la ricezione di una notifica sulla smartphone.
Queste attenzioni, unite con l’utilizzo di un software ottimizzato e hardware a bassissimo consumo energetico, hanno permesso di ottenere una durata della batteria che arriva fino a 6 mesi con una singola operazione di ricarica. “Una vita” in confronto a tanti rilevatori commerciali che non vanno oltre i 5 giorni di autonomia.
Come realizzare un localizzatore fai da te
Il dispositivo FindMyCat è basato su una scheda PCB che costituisce il cuore del sistema. È composta da quattro strati, presenta alcune componenti di tipo BGA (Ball Grid Array) e delle piste con impedenza controllata (50Ω) per le antenne. I componenti sono posizionati su entrambi i lati della scheda.
Le “piste con impedenza controllata” sono tracce conduttive sul circuito stampato (PCB) progettate in modo specifico per avere una resistenza caratteristica (impedenza) nota e costante lungo la loro lunghezza. È importante quando si lavora con segnali ad alta frequenza, come quelli utilizzati nelle antenne, per evitare problemi di riflessione del segnale e garantire che il segnale venga trasmesso in modo efficiente e senza degrado.
Per produrre la scheda, l’autore del progetto mette gratuitamente a disposizione i file Gerber. Questi ultimi sono un formato standard utilizzato nell’industria dell’assemblaggio elettronico e della produzione di circuiti su PCB per descrivere i dati di progettazione. Prendono il nome da Joseph Gerber, fondatore della Gerber Scientific, che ha sviluppato questo formato negli anni ’60.
I file Gerber sono essenzialmente un insieme di file ASCII che rappresentano diverse informazioni riguardanti il layout del circuito stampato, tra cui: strati di rame, maschere, fori e forature, codici di perforazione, piste, aperture.
Per realizzare FindMyCat, è inoltre disponibile lo schema PCB in formato PDF da utilizzare come riferimento. Tutte queste informazioni si trovano nella pagina FindMyCat PCB. Nella tabella in fondo all’articolo, inoltre, presentiamo l’elenco dei componenti elettronici utilizzati per realizzare il progetto. Complessivamente FindMyCat utilizza un set di condensatori, induttori, resistori, dispositivi RF, circuiti integrati, connettori e componenti passivi.
Pronti per la stampa 3D, ci sono anche i modelli in formato .STL per realizzare le parti superiori e inferiore del contenitore protettivo e lo chassis per il circuito stampato.
FindMyCat: la parte software
Il versante software di FindMyCat si compone di tre “tessere”: outdoor-location-engine
, indoor-location-engine
e homestation
. Sono tre differenti firmware, da “flashare” sulla scheda che si occupano di ottimizzare il funzionamento del dispositivo riducendo il consumo di batteria a seconda della modalità e dell’ambiente di utilizzo.
L’Outdoor Location Engine è un componente software che fa parte del sistema e utilizza l’nRF Connect SDK (basato su Zephyr) per gestire due principali responsabilità:
- Ascolto e risposta a comandi esterni: il software resta in ascolto e risponde ai comandi provenienti dall’esterno del dispositivo.
- Segnalazione della posizione al cloud: provvede a inviare la posizione istantanea del dispositivo al servizio cloud.
Indoor Location Engine è invece basato su nrf5 SDK e ha quattro principali responsabilità:
- Annuncio di pacchetti BLE per HomeStation e applicazione installata su smartphone
- Scansione BLE: esecuzione della scansione dei pacchetti provenienti dalla HomeStation. Quando i pacchetti della HomeStation non vengono più ricevuti dopo un certo periodo di tempo, invia un comando all’Outdoor Location Engine per disporne l’attivazione (PowerUp).
- Controllo dell’Outdoor Location Engine: l’Indoor Location Engine ha il compito di comandare l’Outdoor Location Engine, indicandogli quando attivarsi (PowerUp) o disattivarsi (PowerDown) in base alla rilevazione della presenza della HomeStation.
- Avvio di ranging con UWB: Indoor Location Engine si occupa anche di eseguire il cosiddetto ranging ossia la misurazione precisa della distanza. Questa funzionalità consente una localizzazione precisa all’interno di un ambiente indoor.
Cos’è la HomeStation
La HomeStation è il dispositivo che stabilisce una sorta di collegamento virtuale con il tracker. Quando questo collegamento è attivo, il tracker entra in uno stato di “deep sleep” (risparmio energetico profondo), con solo le funzioni Bluetooth Low Energy (BLE) ancora operative. Nel frattempo, la HomeStation si assume il compito di trasmettere la posizione del dispositivo tramite WiFi.
Nelle opzioni di configurazione, è possibile impostare alcune impostazioni relative al gateway MQTT (protocollo di messaggistica utilizzato per la comunicazione) e alle impostazioni WiFi. Le impostazioni consentono al tracker di comunicare tramite MQTT con un’istanza cloud e di connettersi alla rete WiFi domestica.
Le indicazioni di progetto contengono anche tutto il necessario per realizzare la HomeStation. Quest’ultima utilizza una combinazione di due microcontrollori (NRF 52833 + NRF 7002) mentre Outdoor Location Engine e Indoor Location Engine si servono, rispettivamente, di un NRF 9160 e di un NRF 52833.
Tutto il software e l’hardware del progetto sono offerti sotto licenza Creative Commons Attribution-NonCommercial-ShareAlike 4.0 alla quale gli utenti devono attenersi.
Lista dei componenti elettronici utilizzati nel progetto
ID | Quantità | Riferimenti | Valore | Produttore |
---|---|---|---|---|
1 | 7 | C1, C14, C15, C18, C19, C20, C21 | 10uF | Murata Electronics |
2 | 5 | C2, C4, C6, C10, C12 | 100nF | Murata Electronics |
3 | 2 | C3, C9 | 15pF 1% | Murata Electronics |
4 | 2 | C5, C11 | 47uF 20% | Murata Electronics |
5 | 1 | C7 | 4.7uF 20% | SAMSUNG |
6 | 1 | C8 | 4.7uF 10% | SAMSUNG |
7 | 1 | C13 | 22pF | Murata Electronics |
8 | 2 | C16, C17 | 4.7uF | SAMSUNG |
9 | 1 | C22 | 10nF | Murata Electronics |
10 | 1 | DWM3001C1 | DWM3001C | Qorvo |
11 | 1 | E1 | NN03-310 | Fractus Antennas |
12 | 1 | F1 | 0.7pf | Murata Electronics |
13 | 1 | F2 | 15nH | Murata Electronics |
14 | 1 | FB1 | 120R / 0.70A | Murata Electronics |
15 | 1 | IC1 | ADP5360ACBZ-2-R7 | Analog Devices |
16 | 2 | IC2, IC4 | TCK107AG,LF | Toshiba |
17 | 1 | IC3 | EMIF03-SIM02M8 | STMicroelectronics |
18 | 1 | J1 | 105164-0001 | Molex |
19 | 2 | J2, J3 | MM8130-2600RA2 | MURATA |
20 | 1 | J5 | SF72S006VBDR2500 | JAE Electronics |
28 | 1 | L1 | 47nH | Murata Electronics |
29 | 1 | L2 | NC | Murata Electronics |
30 | 2 | L3, L4 | 4.7uH | TDK |
31 | 2 | R1, R10 | 10k | ROHM Semiconductor |
32 | 1 | R2 | 1k 1% | ROHM Semiconductor |
33 | 2 | R3, R7 | 0R | KEMET |
34 | 1 | R4 | 100k | Panasonic |
36 | 1 | U1 | ~ | Nordic Semiconductor |
37 | 1 | U2 | M20057-1 | Antenova |
38 | 1 | Z1 | 2.4nH | Murata Electronics |
39 | 1 | Z2 | 0.9pf | Murata Electronics |
40 | 1 | Z3 | 1.5nH | Murata Electronics |
41 | 1 | Z4 | 7.9nH | Murata Electronics |
42 | 1 | Z5 | 36pF | Murata Electronics |
43 | 1 | Z6 | 1pF | Murata Electronics |
44 | 1 | Z8 | 2.2pF | Murata Electronics |
Le immagini nell’articolo sono tratte dal sito ufficiale del progetto FindMyCat.