mercoledì 21 Aprile 2021
Home / Corsi / Corso Python / Demone Bluetooth Raspberry Pi

Demone Bluetooth Raspberry Pi

Pubblico, per l’utente Basilio de Caro questa guida sulla creazione di un demone Bluetooth, frutto del suo impegno

Zzed

Introduzione

Può essere utile, a volte, prevedere modalità di gestione del proprio Raspberry Pi che non utilizzino le comuni interfacce disponibili (monitor/tastiera o IP di rete).

Di seguito proveremo a realizzare un semplice demone, scritto in Python, che consenta di riavviare o spegnere il Raspberry Pi utilizzando l’interfaccia Bluetooth di bordo.

Gli strumenti che comporrannno la nostra ideale “cassetta degli attrezzi”, sono:

  • un RaspberryPi, con attivo il modulo bluetooth,
  • python 2.7,
  • le librerie PyBluez, installabili medianteapt install python-bluezopip install pybluez
  • un qualsiasi editor di testo per la creazione dello script.

Lo script Python

Lo script di esempio ridotto all’osso, ma integrabile a piacere con altre funzioni:

Si compone di: una prima parte dove vengono effettuate le dichiarazioni, importati i moduli necessari e attivato il socket bluetooth. E di un corpo costituito da un ciclo infinito in cui vengono letti i dati dal socket ed eseguiti i comandi.

I moduli Python utilizzati

  • os, libreria standard che si interfaccia col sistema operativo.
  • sys, libreria dedicata alle funzioni specifiche del sistema.
  • time, che espone le funzioni di manipolazione di data e ora.
  • bluetooth, modulo Python dedicato alla gestione delle risorse Bluetooth del sistema.

Spiegazione

In dettaglio, nelle prime righe dello script importiamo i moduli e dichiariamo le variabili che utilizzeremo:

quindi dichiariamo un socket di tipo RFCOMM, protocollo che emula una interfaccia seriale su dispositivi Bluetooth:

con timeout di connessione di un secondo e mezzo

e lo lasciamo in attesa di connessioni senza indicare una porta specifica:

Al servizio assegniamo un id ed un nome che dovranno poi essere utilizzati dai client in fase di connessione e autenticazione:

Nel corpo dello script sono invece utilizzati i metodi che consentono di instaurare una connessione:

e ricevere i comandi dal client, lunghi al massimo 1024 byte nel nostro caso:

Lo script è volutamente privo di meccanismi di autenticazione più complessi, che però possono, anzi dovrebbero, essere previsti.

Link

Ultima nota, la descrizione di dettaglio delle API PyBluez è disponibile a questo link.

Se vuoi restare aggiornato, seguici anche sui nostri social: FacebookTwitterYoutube

Se vuoi anche trovare prodotti e accessori Raspberry Pi in offerta, seguici anche su Telegram !!

A proposito di Zzed

Zzed
Appassionato di informatica alternativa, ma perenne novellino di Linux..

Vedi Anche

Corso C

Lezione 4 – Le istruzioni condizionali ed i loop

In questa quarta lezione vengono esaminate le istruzioni condizionali (if, if else, switch) e come fare i loop (for, while, do while)

Powered by themekiller.com