Bit, byte e sensore bluetooth LE

Ci provo anche qui, magari dall'altra parte non mi sono fatto capire bene.
Sto lavorando sul mio sistema antifurto bluetooth LE, anche Guglielmo dice che non si possono fare antifurti con Arduino :smiley:

In realtà essendo all digital credo di non avere problemi di fotoaccoppiatori, cavi lunghi etc, e soprattutto ho verificato la bontà di funzionamento dei sensori usando un picco programma in javascript.

Il mio problema è questo, mi serve un aiuto di "brainstorming" per vedere se ho capito tutto o se mi è sfuggito qualcosa.

Mi sono fatto mandare dalla Cina un pacco di sensori Bluetooth LE: ne ho di tutti i tipi, dai contatti magnetici per le porte ai sensori di fumo ai PIR.

Ho iniziato per ora a lavorare sui sensori magnetici per le porte: questi sensori BLE non utilizzano il GATT profile ma fanno solo broadcasting: da quanto ho visto dovrebbero inviare un messaggio con il loro stato ogni 10 minuti e poi, appena uno apre il sensore (o lo chiude) parte subito un messaggio sui tre canali del bluetooth LE.

Il messaggio che viene inviato è questo:

kCBAdvDataIsConnectable : 0
Local Name : iSensor 
Manufacturer Data : <beca2c02 4602f9f7>

Ogni sensore ha attaccato on codice QR univoco che identifica il singolo sensore: così facendo si può sapere chi è che ha inviato quel segnale.

Quindi dei manufacturer data la prima parte è il codice del sensore.

La seconda parte è interessante perchè cambia ad ogni apertura / chiusura

<beca2c02 46025856> - > open
<beca2c02 46005955> - > close
<beca2c02 46025a58> - > open
<beca2c02 46005b57> - > close
<beca2c02 46025c5a> - > open
<beca2c02 46005d59> - > close
<beca2c02 46025e5c> - > open
<beca2c02 46005f5b> - > close

Quindi c'è:

  • 460: ????
  • 0/2 : ' indica chiuso, 2 indica aperto
  • 5: ???
  • un rolling code che cresce di uno ogni volta che si apre o si chiude il sensore
  • 5: ???
  • un'altra sequenza che cresce di 2 ogni volta che si apre o si chiude quindi 6/8/a/c all'apertura, 5/7/9/b alla chiusura

In allegato ci sono i documenti che mi hanno mandato in pdf insieme ai sensori. Questi sono i door contact. C'è qualcosa che mi è sfuggito?

Riguardo all'implementazione pensavo di usare un tastierino per aggiungere il codice del sensore e salvarlo nella eeprom, poi sul setup() vado a leggere il mio array di sensori e li carico in memoria. A quel punto rimango in "ascolto con Arduino" consapevole che ogni tot mi arriverà da un sensore un segnale di heartbit con stato "chiuso" ma che all'improvviso potrebbe arrivarmene uno con stato aperto.

Wireless Sensors (iSensor Profile)-KPL.pdf (266 KB)

Sensor Data Communication.pdf (288 KB)