El formato de los datos transmitidos a través de SPI depende completamente del dispositivo. Normalmente, no hay un byte de dirección según I2C, ya que esta funcionalidad se proporciona a través del pin de selección del esclavo (es decir, la selección del esclavo con el que hablar a través del hardware vs software).
Parte del esquema de SPI es que es un protocolo inherentemente síncrono, lo que significa que puede operar en una amplia gama de frecuencias (desde virtualmente DC con botones, hasta decenas de Megahertz).
Los parámetros clave a los que se debe prestar atención cuando se inicia con SPI y se verifica la compatibilidad del dispositivo.
Fase del reloj : transfiere datos en el flanco ascendente o descendente del reloj
Polaridad del reloj : ¿cuál es el estado del reloj cuando está inactivo (lectura no seleccionada)
Habilitar polaridad : la selección de esclavo alta o baja habilita al esclavo.
Frecuencia de reloj máxima : la frecuencia de reloj máxima que el esclavo puede tolerar.
Editar: De alguna manera me perdí la parte sobre la tecnología inalámbrica
Los dispositivos inalámbricos pueden funcionar con muchos protocolos diferentes y es un campo muy amplio (al igual que el envío de señales a través de cables). La mejor manera de comenzar con la tecnología inalámbrica para un proyecto de automatización del hogar es utilizar un módulo que se encargue del protocolo inalámbrico para usted, luego ordene este módulo a través de una interfaz como SPI o I2C.
El transceptor en particular que enumeró es más básico y tendrá que idear e implementar su propio protocolo. Creo que Jeff en JeeLabs utiliza módulos similares a estos y ha realizado un extenso trabajo al usarlos con fines de automatización del hogar.
Alternativamente, Ebay puede ser una buena fuente de módulos baratos que también administran el firmware. He tenido una buena experiencia con lo siguiente en proyectos relacionados con la automatización del hogar.
-
Módulos HC-05 , se trata de un dispositivo Bluetooth que se puede usar como un enlace transparente (alimente el nivel ttl async serial en el módulo y obtenga caracteres en una consola Bluetooth en su dispositivo maestro (teléfono, portátil, etc.))
-
Módulos ESP8266 , estos vienen en muchos sabores y variedades, e incluso pueden programarse directamente utilizando el entorno de desarrollo Arduino. Estos pueden conectarse a puntos de acceso wifi normales o incluso transmitir una red. Las bibliotecas de alto nivel también están disponibles, lo que permite su uso como un microservidor web o para conectarse para usar los protocolos de Internet de cosas como MQTT.