Ingeniería inversa: USB controlado hack de automatización del hogar (15 / 19 paso)

Paso 15: Software

Antes de quita el chip de la placa, necesita algún software.

El software está escrito en C y basado en un proyecto de ejemplo de lib objetivo evolución V-USB. Esta es una gran pieza de software, y es libre y de código abierto para el uso personal no comercial.

http://www.obdev.at/Products/vusb/index.html

No voy a entrar en grandes detalles sobre cómo funciona el software. La ingeniería inversa es el énfasis de este Instructable. Aquí está la versión corta:

Necesitas dos programas para hacer este trabajo. Un programa en la computadora y el firmware para el microcontrolador.

Microcontrolador:

Las transmisiones de RF reales realiza una rutina de interrupción. Utilizar una interrupción de contador de tiempo porque esta es la forma más fácil de obtener sincronización precisa. La interrupción de temporizador lee desde un búfer global donde se almacenan los tiempos de retardo. No almacenar el estado de encendido/apagado del transmisor RF desde el encendido y apagado siempre suplentes. Comienza con un pulso apagado, luego alternan y apagar impulsos.

El búfer contiene valores de 42. Hay 21 bits a transmitir, y cada uno tiene un período de bajo y un período de alta. Esta configuración no es muy eficiente de RAM, pero el ATmega8 tiene un montón. A operar RAM para legibilidad de código en lugar de tener ram sin usar!

El búfer se rellena por la función send_rf_frame (red, capacidad de carga). Llena en los tiempos de la derecha en la matriz de búfer de rf, empezando con el bit de inicio, seguido por el identificador de red de 12 bits y 8 bits de carga útil + suma de comprobación. Cuando el buffer se llena, la variable de posición de búfer se restablece a 0, para que la rutina de interrupción comenzará trabajo de bit 0 en el búfer.

Cuando se enviaron datos al microcontrolador por el puerto USB, se llama la función usbFunctionSetup(). Esta es una función que cree y donde pones el código USB entrado.

Dependiendo del tipo de solicitud enviado desde la PC, puede hacer cosas diferentes dentro de esta función. Tengo pedido dos tipos configurados, set_network_id y send_command.

La solicitud de set_network_id sólo toma el identificador de red de 12 bits enviado desde el ordenador y almacena en un valor entero global.

La solicitud de send_command llama send_rf_frame() y pasa el byte de comando recibido a él. Después de eso, se asume la rutina de interrupción.

Dentro del bucle de main():
usbPoll(); tiene que ser llamado cada pocos milisegundos (10 o 50, no estoy seguro) para el USB para que funcione correctamente.
Después de hecho esto, se comprueba el comparador analógico. Si el voltaje de la bomba de carga es demasiado bajo, se encienda la bomba de carga. Si es a la tensión deseada, se apaga la bomba de carga.

Por último, un LED de estado está activada si se activa la bandera de rf_busy.

Computadora:

En el lado de la computadora también he modificado el ejemplo proporcionado por el desarrollo objetivo. He añadido algo de código para analizar los argumentos de la línea de comandos. También escribí una función para crear los bytes de carga útil. Toma argumentos como el número de la lámpara, encendido, difusión.

Los programas informáticos utiliza libusb para comunicarse con el microcontrolador.

También he creado un script de php pequeña para llamar el programa de computadora de la línea de comandos cuando se pulsa el botón en una página web. Abra la Página Web de tu Android/iPhone y controlar las luces! : D

Artículos Relacionados

Web-Enabled termostato casero (y centro de automatización del hogar)

Web-Enabled termostato casero (y centro de automatización del hogar)

Este Instructable explica cómo construí termostatos WiFi habilitado para mi casa. Los termostatos programables con 6 diferentes períodos de tiempo durante el día, a pesar de aumento a un número arbitrario sería bastante triviales. Que pueden ser prog
Edison de Intel basado en monitor de sonido para la automatización del hogar!

Edison de Intel basado en monitor de sonido para la automatización del hogar!

Hola todo el mundo!Soy Geeve George un fabricante con orgullo de la INDIA! Empecé a hacer en la edad de 10 y mi afán por hacer todavía continúa como estoy fascinado por las infinitas posibilidades y oportunidades que la tecnología ofrece.Sombrero! es
Servidor de automatización del hogar con router

Servidor de automatización del hogar con router

convertir un router barato en un servidor de automatización del hogar!Este proyecto permitirá cambiar enchufes y luces desde su iPhone, o cualquier navegador.También podrás enviar comandos serie control remoto.Este proyecto se basa en SmartLinc.http:
Creación de un sistema de automatización del hogar!

Creación de un sistema de automatización del hogar!

Aquí es cómo había automatizado mi casa. Necesitaba un medio para;-administrar mi sistema de energía solar incluyendo la habilidad de cambiar de fuente de utilidad debo necesitarlo.-administrar el alimento y el agua a mis tres perritos.-controlar las
Linux: empezando en un servidor de automatización del hogar.

Linux: empezando en un servidor de automatización del hogar.

Linux: empezando en un servidor de automatización del hogar.Esto es sólo un quickie prueba de concepto sobre el uso de un servidor web para Domótica remotamente. a todos nos va a hacer es encender algunos leds, pero el plan de acción estará allí para
Automatización del hogar Datura 6 - mejoras de 2015

Automatización del hogar Datura 6 - mejoras de 2015

Noticias: En estos últimos meses he hecho algunos importantes correcciones y mejoras al código y al servidor Web del proyecto. Ver datura_mega_v19.ino para el último código.El proyecto más funcional en internet, utilizarlo como un sistema de riego co
Compruebe que está en casa! Automatización del hogar. Vigilancia. Gran hermano tecnología frambuesa PI.

Compruebe que está en casa! Automatización del hogar. Vigilancia. Gran hermano tecnología frambuesa PI.

En este instructable brevemente explicaré cómo se puede construir una página web para ver quién está en casa o utilizar el script para la automatización del hogar.Se necesita:* Un router con posibilidad de configurar la dirección ip dirección mac* Fa
Automatización del hogar usando MQTT y NodeMcu o arduino

Automatización del hogar usando MQTT y NodeMcu o arduino

Domótica es un rumor nuevo hoy en día... hay tantos hardware de código abierto disponibles para construir su propia automatización del hogar. Muchas herramientas, es fáciles de confundir para decidir cual es mejor / conveniente para usted. Manteniend
Bluetooth basado en automatización del hogar

Bluetooth basado en automatización del hogar

Bluetooth basado en automatización del hogar, proyecto permite controlar aparatos eléctricos utilizando su teléfono móvil android. Consiste en el microcontrolador ATmega8, módulo Bluetooth HC-06, Relays.There son muchos Inicio sistemas de automatizac
Guía para principiantes en el uso Webhooks para automatización del hogar con Prota OS

Guía para principiantes en el uso Webhooks para automatización del hogar con Prota OS

TL:DR: webhooks son fáciles de usar y configurar con Prota OS. Utilice webhooks para cientos de flujos de trabajo de automatización.Aprender a configurar y utilizar OS Prota para Raspberry Pi aquí.Descargar OS Prota para Raspberry Pi aquí.¿Cuáles son
DIY IoT $10 base de automatización del hogar

DIY IoT $10 base de automatización del hogar

Se realiza IOT basado en proyecto de automatización del hogar con bajo costo ESP8266 ESPino ESP-12 módulo de WiFi, utiliza relés y algunos componentes simples, se suministra completa código y pcb layout, para más detalles sobre la configuración del s
Automatización del hogar con un Smartphone (TV, Arduino, luz, seguridad, proyector, reproductor de DVD...)

Automatización del hogar con un Smartphone (TV, Arduino, luz, seguridad, proyector, reproductor de DVD...)

Estos días los dispositivos de domótica y el hogar sistemas de control son muy populares. Incluso en la comunidad de DIY-ers. Así decidí hacer mi propio dispositivo de control Inicio con Arduino. El dispositivo puede controlarse con un teléfono celul
Dispositivos de Internet para la automatización del hogar

Dispositivos de Internet para la automatización del hogar

Este instructivo muestra los principios involucrados en la fabricación de dispositivos para el control domótico por internet. Estamos va a construir un dispositivo (o varios de ellos), habla uno al otro por internet para controlar luces, motores para
Simple Wireless salida de control remoto para Ardunio a Serial (para la automatización del hogar)

Simple Wireless salida de control remoto para Ardunio a Serial (para la automatización del hogar)

he encontrado un antiguo conjunto de Kambrook inalámbrico de salida, que consistió en 3 enchufe inalámbrico y un control remoto inalámbrico de 433mhz y quería 'automatizar' mi habitación.Mientras que yo pude han intentado inversa diseñado el protocol