Básico de domótica con Phidgets (5 / 10 paso)

Paso 5: Más sobre el código

El código utiliza ajax y json para sincronizar la interfaz web a la SBC y la mangosta para el servidor de web (tanto las mangosta y jquery fuente archivos necesarios están en la carpeta de proyecto para usted). Esto permite que la página web Mostrar actualizaciones en tiempo real de la SBC en una forma bastante limpia.

homeAutomation.c es el corazón de él, así que vamos a empezar allí.

GLOBALS

En la parte superior del archivo de homeAutomation.c son las definiciones globales. Usted necesitará definir el número de serie de la SBC está usando, poner en la contraseña del sistema (el que está usado para iniciar sesión en la interfaz web), el índice de los sensores y el índice de la luz que está controlando. En este caso, el número de serie es 250000, la contraseña es contraseña, el sensor de luz está en la entrada 0, el sensor de los sonidos está en la entrada 2 y la luz de la lámpara es de salida 0.

#define SbcSerial 250000
#define SbcSystemPassword "PASSWORD"
#define LightSensorIndex 0
#define SoundSensorIndex 2
#define Output_Light1Index 0

A medida que agrega más Phidgets, puede añadirlos a las macros globales también.

También pusimos algunos números de la calibración y creó una CPhidgetInterfaceKitHandle global por la Sbc, que nombrado McflySbc.

Interpretación de datos y calibración

Algunos valores de calibración también se ponen hasta arriba. Valores del sensor de luz tomar de Phidget Phidget para comprobar la etiqueta adjunta al sensor de m y b valores y los de tipo.

#define LightCalibrationMValue 1.478777
#define LightCalibrationBValue 33.67076

La función get_data se encarga de las peticiones ajax canaliza los mensajes, como valores de los sensores. Al añadir más sensores a ponerlos en este código en otra " else if (!strncmp(request_info->query_string, "sound", reqlen))... " como declaración de la condición. Puede copiar y pegar los ya existentes y editar la fórmula en el interior si es necesario el estado. Compruebe a la guía del usuario del dispositivo para determinadas fórmulas y valores, pero ya se hacen los luz y sonidos.

Control de salida

La función set_data envía mensajes a la SBC para cambiar los Estados de salida (como encender una luz o apagado). Las solicitudes vienen en a través de Ajax, como "light1On" y "light1Off" y el estado de salida correspondiente se encuentra en la SBC. Usted puede conectar más luces en esta moda (sustituir el 1 con ascendente de números), u otra cosa que desea controlar en el hogar (pero tenga cuidado al trabajar con electricidad y asegúrese de que saber lo que estás haciendo, o pedir a alguien que lo hace, antes de jugar con las corrientes eléctricas).

Controlador de eventos

El event_handler conecta el get_data y set_data funciones cuando Ajax se un get_data o send_message solicitud, respectivamente. Nada de meterse aquí.

Colocar el Kit de interfaz

SbcAttachinstala el kit de interfaz en la SBC con la radiométrica, regula el sensor cambio a 1 para los sensores conectados y la tarifa de datos así. A medida que agrega más sensores debe agregar a la lista y poner la tarifa de datos a algo en los cientos más bajos gama. Para las entradas no están en uso, hemos creado la tarifa de datos a 1000ms.

Index.html es la cara del programa... como la mayoría de páginas web, ya sabes cómo funciona.

Utilizamos jquery y algunos css muy sencillo. El archivo de jquery está disponible en línea y en los archivos de origen para este proyecto. style.CSS es bastante básico por lo que no se explica aquí, pero no dude en jugar con él o utilizar su propia hoja de estilos. Usted puede ver un tutorial CSS de W3 escuelas.

Configuración de las peticiones Ajax

Comenzamos con algunos javascript que establece el intervalo para las solicitudes de datos de la CE a través de Ajax. Todos los sensores deberá ser cargado de inmediato y luego revisar periódicamente. Puede establecer diferentes sensores a diferentes intervalos ponerlos en métodos setInterval diferente y cambiando el segundo parámetro para ser el número de milisegundos que desea entre las solicitudes de datos. Asegúrese de dar todos sus sensores un nombre único y descriptivo. Tenga en cuenta que en este ejemplo también vamos a estar detectando si nuestra luz unida a la SBC está activado o desactivado.

También tenemos elementos con el ID "light1On" y "light1Off" que, al hacer clic en, queremos enviar una solicitud a través de Ajax a la SBC. Aquí establecemos la funcionalidad de onclick. Cada elemento (botón o imagen o lo que quieras hacer la salida cambiar) tendrá su propio identificador único y descriptivo.

window.onload = function() {

var turnon1 = document.getElementById("light1On");

var turnoff1 = document.getElementById("light1Off");

turnon1.onclick = function() {

$("light1On").load('/ajax/send_message?light1On');

return false;

}

turnoff1.onclick = function() {

$("light1Off").load('/ajax/send_message?light1Off');

return false;

}

}

Tenga en cuenta que mantener la identificación del nombre del elemento (como "luz", "output_light1" y "light1Off") el mismo que el mensaje que se envía a través de Ajax al c programa. Por lo que el id también aparece al final de la petición Ajax (es decir, /ajax/get_data?light para el elemento "luz" y /ajax/send_message?light1On para el elemento "light1On"). Podría cambiar estos mensajes y luego asegúrese de que la variable al final de la petición Ajax coincide con lo que está en el programa c, pero se puede imaginar cómo confuso esto tendría, por lo que se aconseja mantenerlos en el mismo.

La página web Por último, el cuerpo. Las celdas de la tabla donde queremos los valores de los sensores que se mostrará se dan las identificaciones que sólo utilizamos en la creación las peticiones ajax. Esto hace que su contenido se actualiza con cada nueva solicitud get_data, describe un poco antes.

También, las celdas de la tabla que queremos utilizar para el control de las luces se dan las identificaciones apropiadas ("light1On" y "light1Off") para que cuando se hace clic en la función onclick envía la solicitud Ajax.

Usted puede agregar más filas de la tabla para los diferentes sensores, dando a la celda donde desea que sus datos muestran el id que usted eligió (como "temperatura", si tuviera un sensor de temperatura).

Artículos Relacionados

ESTRAGOS - domótica con Control de voz

ESTRAGOS - domótica con Control de voz

Antes de comenzar la descripción del proyecto, me gustaría agradecer a Audrey y Nicole me dan la placa Intel Edison con un montón de sensores.En este Instructable he utilizado a Intel Edison para implementar domótica con control de voz completa. Bási
Uber domótica con Arduino y Pi

Uber domótica con Arduino y Pi

[EDITAR] He creado un foro para colaborar en el código de puerta de enlace.http://homeautomation.proboards.com/Board/2/openha...Hace unos años me convertí en propietario de un perro por primera vez. Me gustaba salir de Cody en la perrera solo todo el
Domótica con Jetpack

Domótica con Jetpack

Hola, este es un sistema de domótica sencilla con escudo de Jetpack. Hemos añadido un módulo de relé para el escudo, a construir un sistema básico de automatización del hogar. Con la aplicación siguiente encienden o apagar una bombilla con su smartph
Domótica con HomeGenie

Domótica con HomeGenie

¿Así que quieres a tu juego de automatización del hogar? No busques más! Muchos de nosotros trataron de automatización casera por método ad-hoc, ahora aquí es un sistema de fuente abierta que proporciona bases confiables para su próximo proyecto.Home
Bluetooth domótica con arduino:VOICE

Bluetooth domótica con arduino:VOICE

¡ OH! los gastos de la domótica de lujo por vozque siempre quisiste construir un sistema de automatización del hogar que trabajó en el comando de vozBueno no busques más esta es su una parada para Domótica por vozEl sistema se basa en la plataforma d
Gesto basado en domótica con Edison de Intel (Intel IoT))

Gesto basado en domótica con Edison de Intel (Intel IoT))

Domótica en gesto es la nueva forma de interactuar con dispositivos eléctricos disponibles en nuestra casa. En este proyecto utilizaremos sensores en lugar de cámara para reconocimiento de gestos, ya que proporciona mejor consistencia, independencia
Domótica con control de voz eco Amazonia

Domótica con control de voz eco Amazonia

El mes pasado, Amazon lanzó el eco - un pequeño cilindro capaz de reconocimiento de voz de gran alcance.El eco de sí mismo es cerrado fuente. Pero una vez que averiguar secretos de Echo, se convierte en una herramienta increíblemente poderosa para el
Domótica con Arduino parte-me

Domótica con Arduino parte-me

No es como cualquier otro domótica como hemos visto anteriormente. Que está controlando remotamente dispositivos cuál es la diferencia. Es porque puede controlar desde el mundo. Se puede controlar usando cualquier dispositivo que tenga conexión a int
Sistema de domótica con 1SHEELD basado en SMS

Sistema de domótica con 1SHEELD basado en SMS

Hola amigos, este mi primero instructable y apenas convertido 16 año viejo hace dos meses.En este instructable mostrará cómo hacer 5 canal SMS basado en sistema de domótica mediante 1sheeld. En vez de utilizar Relés electromagnéticos que he construid
Domótica con nodo js, frambuesa pi y heimcontrol

Domótica con nodo js, frambuesa pi y heimcontrol

En tutorial hará Resumen de plataforma heimcontrol (es NodeJs aplicación domótica Open Source bajo licencia MIT)Algunas de las características allí:Eficaz : el diseño permite control cómodo de sus hogar dispositivos usando tu smartphone o tablet.En t
Domótica con Edison de Intel

Domótica con Edison de Intel

El propósito de este proyecto es activar una salida cuando se presiona la tecla "Arriba" en un transmisor de control remoto y apague el mismo resultado cuando se presiona la tecla "Abajo". Tal experimento tiene varios usos asociados a
Cómo: Agregar comentarios de voz a su domótica con un enlace uno!

Cómo: Agregar comentarios de voz a su domótica con un enlace uno!

Hola a todos,Hoy te mostraré, cómo agregar comentarios de voz a tu Home Automation.Este siempre será un buen añadido para su hogar automatización proyecto con enlace uno porque tu un Linkit dejaría una regeneración como un "Me he convertido en luces
Domótica con ATTiny y teléfono móvil

Domótica con ATTiny y teléfono móvil

En nuestra cabaña en el bosque no tiene una conexión de internet confiable. En el invierno es muy frío cuando entramos y toma un par de horas antes de que la casa se calienta al encender la calefacción de piso después de que vienen en.Quería ser capa
Domótica con Raspberry Pi, Arduino, Domoticz, MySensors.

Domótica con Raspberry Pi, Arduino, Domoticz, MySensors.

Hola creadores de compañero,Este es mi primer Instructable sobre domótica. La idea es construir un controlador y nodos inalámbricos para controlar y supervisar.Después de golpe y ensayo con muchos controladores diferentes como OpenHab, DomotiGa, Cont