Men... ID
är data! Eller hur?
Själva överföringen av data är synnerligt enkel - men beroende på vilka radiomoduler som ska användas finns det mycket som kan bli riktigt besvärligt.
Tillåt mig att gissa: det är billiga ASK-moduler från t.ex. K&C, art# 88900 & 88901.
Att den typ moduler är skit är väl numera välkänd men ändå vill jag beskriva vad som behövs:
För att starta kommunikationen behövs en preamble till radion.
Denna består oftast av en rad '1' och '0' och sänds för att synkronisera timingen på mottagaren samt DC-nivån i dataslicern.
Sedan måste det komma ett sätt att avsluta denna ström av '1' och '0' och som kan användas till att signalera att "nu börjar data". Man kan göra detta med t.ex. 10 st '0' följd av 10 st '1'.
Nu kan man överföra data med en UART - men man ska komma ihåg att man - rent teoretisk - ska skicka en '0' för varje '1' och vice-versa. Det kan dock oftast tillåtas att nivån varierar mellan 30% och 70% - men det är enklast att bara använda varannan bit i en normal 8-bit UART-överföring och sedan i de oanvända bits lägga in motsatsen till bit'en innan.
Självklart ska man lägga till någon form av checksum som kan validera paketet.
Allt detta kan skötas med en UART om man funderar ganska hårt och känner till hur de fungerar.
En UART Tx är i viloläget '1', styr detta då Tx sänder den kontinuerligt, alltså måste den vändas.
Preample kan göras vid att sända 10+ st 0xAA, detta ger växelvis '1' och '0', inkl. start och stoppbit (bara 1 stoppbit!)
Sedan kan man sända en 0x00 och en 0xFF som "stop av preamble".
Och sedan sänder man de data som ska överföras med varandra bit som kompensering.
På mottagaresidan ska man säkra att när sändaren sänder kommer det en '0' till UART Rx så att de två sidor följs åt.
Sedan kan man behöva att sända samma paket t.ex. 3 gg, har för mig att t.ex. NEXA gör så.
==========
Om det däremot är vettiga radiomoduler (t.ex.
sådana här, bara typexempel) är det bara att skicka data och ta emot dom och kontrollera att adressen är rätt.