Paso 14: Aplicación Web e interfaz de Smartphone
La capacidad para controlar y monitorear el estado del panel solar fue una meta clave del diseño. Para ser claros, no necesita esta funcionalidad para el tracker trabajar. Es una funcionalidad adicional que permite supervisar remotamente el estado del rastreador.
Para utilizar el código, necesitará un servidor Web configurado con IIS versión 7 o posterior. Puede ejecutar el servidor Web en tu PC o usar un servicio de alojamiento externo como http://1and1.com (yo uso 1and1). Si utilizas tu propio servidor web en casa, usted necesitará registrarse con un servicio de DNS dinámico para que su PC está localizable desde el servidor Imp.
La interfaz en el panel es creada por Index.html. Esta página web utiliza JQuery Mobile http://jquerymobile.com/ para crear la apariencia de una aplicación nativa para el iPhone. La única limitación con JQuery Mobile es que no pueden acceder a hardware específico de smartphone como el acelerómetro y el GPS. Hay 3 plataformas de terceros que le permitirá cerrar esta brecha como Phonegap http://phonegap.com/
Lo bueno de Phonegap es que puede tener el código compilado para plataformas Android y iOS. Si evita dependencias de hardware de teléfono tal como lo he hecho para esta aplicación, usted no necesita estas 3 plataformas de partido y el código se ejecutará en cualquier Smartphone, Tablet o PC con un navegador adecuadamente hasta la fecha. Navegador debe ser compatible con HTML5.
La aplicación de seguidor Solar no necesita hardware de teléfono, JQuery Mobile es la única dependencia.
Cómo funciona
El archivo Index.html tiene dos principales internas "páginas"
- Página de monitoreo de Estado – consulta periódicamente los valores de hardware actuales de la base de datos SQL para que puedan ver el estado del sistema.
- Página de control de movimiento – le permite conducir el panel motores específico elevación y acimut. Por ejemplo, podría enviar el panel a una posición de fuerte tormenta.
- Página de configuración - esto no se aplicaba sino en el futuro contendrá parámetros específicos que pueden almacenarse en el Imp como Lat y Lon.
La página de monitorización de estado periódicamente (una vez cada 2 segundos para el desarrollo-se ser retrasado más adelante) consulta el servidor de Web para los datos que se muestran en forma de cuadrícula. Esta información se proporciona desde el servidor de SQL (también organizada por 1and1.com). La interfaz es a través de la página web TrackerStatus.aspx que consulta los datos de la base de datos de SQL Server y devuelve la respuesta a la consulta AJAX realizado por Index.html en el Smartphone. Index.html luego actualiza la visualización de los valores últimos.
Para controlar el movimiento del panel manualmente, la página de control de movimiento realiza una llamada AJAX a la página de Services.Aspx . Esta página interpreta la llamada y pasa un objeto JSON para el Imp eléctrico "HTTP en" nodo alojado por el servidor Imp eléctrico. El nodo "HTTP en" conecta con el firmware a través de un puerto de entrada llamado HTMLCommands. El código de ardilla apoyando este puerto extrae la información del ángulo objetivo y utiliza objetos de Tracker en el firmware para conducir los motores en la posición manual requerida.
El firmware es capaz de actualizar la base de datos de SQL Server mediante el envío de datos en el nodo de solicitud HTTP. Este nodo está configurado para pasar los datos a DatabaseUpdater.aspx que escribe la información en la base de datos. Toda la información de estado se escribe SQL usando DatabaseUpdater.aspx.
Puede copiar los archivos suministrados al directorio de destino de tu sitio web. Para resumir:
- Index.html : archivo cargado por el navegador del smartphone. Proporciona la interfaz de usuario para el sistema de seguimiento y la interfaz de usuario para el control manual de los ángulos de rastreo, si es necesario
- Services.apsx – archivo de ASP.Net que recibe ángulos de rastreo manual de Index.html. Proporciona estos ángulos al HTTP Imp en nodo, que dirige el firmware via HTTP. Este archivo puede parecer redundante pero evita problemas con cruz intercambio de recursos de origen. Los navegadores son en general no feliz hacer llamadas AJAX a un dominio distinto del dominio que la página que está usando actualmente. Por ejemplo, MyWebServ.com sirve el archivo index.html. Index.html es usar AJAX para hacer una solicitud a electricimp.com... navegador asusta. Llamada a veces consigue hacer pero se devuelve un error. Hacer todas las llamadas en el mismo servidor web evita esto. Estoy seguro que hay otras formas pero no los conozco!
- TrackerStatus.aspx – archivo de ASP.Net que interroga a la base de datos sobre la solicitud de los datos más recientes del estado de la Imp. Se soliciten por index.html AJAX llamar. TrackerStatus.aspx consulta la base de datos, paquetes el resultado como una cadena JSON y devuelve la respuesta al index.html
- DatabaseUpdater.aspx – Peridodically el firmware escribe que tiene salida puerto (CompassPort). El planificador del Imp está configurado con un nodo de solicitud HTTP que se conecta a CompassPort. Cuando se recibe un paquete de datos, el nodo de solicitud HTTP hará una solicitud a la página de destino con el que se configuró. Esta página es DatabaseUpdater.aspx que escribe los valores actuales del estado en la base de datos mediante una consulta SQL de actualización.
Usted necesitará configurar su cadena de conexión de base de datos así como sus características de URL electric imp. El archivo adjunto WebFiles.PDF contiene todo el código fuente para los servicios web. Renombrar el archivo a archivo .pdf a .zip y descomprimirlo.