Étape 14 : Web App et Interface Smartphone
La capacité de contrôler et de surveiller l’état du panneau solaire est un objectif clé. Pour être clair, vous ne devez pas cette fonctionnalité pour le tracker travailler. C’est une fonctionnalité supplémentaire qui permet de surveiller l’état du tracker à distance.
Pour utiliser le code, vous aurez besoin d’un serveur Web configuré en exécutant IIS Version 7 ou ultérieure. Vous pouvez exécuter le serveur Web sur votre propre PC ou utiliser un service d’hébergement externe comme http://1and1.com (j’utilise 1and1). Si vous utilisez votre propre serveur web hébergé à la maison, vous devrez vous inscrire avec un service de DNS dynamique afin que votre PC est localisable à partir du serveur Imp.
L’interface pour le groupe d’experts est créé par Index.html. Cette page web utilise JQuery Mobile http://jquerymobile.com/ pour créer l’apparence d’une application native iPhone. La seule limitation avec JQuery Mobile est que vous ne pouvez pas accéder smartphone matériel spécifique comme l’accéléromètre et GPS. Il y a 3 partis qui vous permettra de combler cette lacune comme Phonegap http://phonegap.com/
La chose gentille au sujet Phonegap, c’est que vous pouvez avoir votre code compilé pour iOS et Android. Si vous évitez des dépendances sur matériel de téléphonie tels que j’ai fait pour cette application, vous n’avez pas besoin de ces 3 partis et votre code s’exécute sur n’importe quel Smartphone, tablette ou votre PC avec un navigateur correctement à jour. Navigateur doit prendre en charge HTML5.
L’application de traqueur solaire n’a pas besoin de matériel de téléphonie, donc JQuery Mobile est la seule dépendance.
Comment ça marche
Le fichier Index.html a deux principaux internes "pages"
- Page d’État de surveillance – interroge périodiquement les valeurs matérielles actuelles de la base de données SQL afin que vous puissiez voir l’état du système.
- Page de contrôle de mouvement – vous permet de conduire le panneau moteurs à une altitude spécifique et l’azimut. Vous pourriez par exemple envoyer le panneau à une position de tempête-safe.
- Page paramètres - ce n’était pas mis en œuvre, mais à l’avenir contient des paramètres spécifiques qui peuvent être stockés dans l’Imp comme Lat et Lon.
La page de suivi de statut périodiquement (une fois toutes les 2 secondes pour le développement – sera ralentie par la suite) interroge le serveur Web de données affichées dans une grille-comme la mode. Ces données sont fournies par le serveur SQL (également hébergé par 1and1.com). L’interface est à travers le site web TrackerStatus.aspx qui interroge les données de la base de données SQL Server et retourne la réponse à la requête AJAX faite par Index.html en cours d’exécution sur le périphérique Smartphone. Index.html puis met à jour l’affichage d’avec les dernières valeurs.
Pour contrôler manuellement la requête du panneau, la page de contrôle du mouvement a fait un appel AJAX à la page Services.Aspx . Cette page interprète l’appel et transmet un objet JSON à l’Imp électrique « HTTP en » nœud hébergée par le serveur Imp électrique. Le nœud « HTTP In » se connecte au firmware via un Port d’entrée appelé HTMLCommands. Le code d’écureuil soutenant ce port extrait les informations sur l’angle dans la cible et utilise des objets de Tracker dans le firmware pour piloter les moteurs à la position manuelle requise.
Le firmware est en mesure de mettre à jour la base de données SQL Server par envoi de données vers le nœud de demandes HTTP. Ce nœud est configuré pour transmettre les données à DatabaseUpdater.aspx , qui écrit les informations dans la base de données. Toutes les informations de statut sont écrite dans SQL à l’aide de DatabaseUpdater.aspx.
Vous pouvez copier les fichiers fournis vers le répertoire cible de votre site web. Pour résumer :
- Index.html – fichier chargé par le navigateur du smartphone. Fournit l’interface utilisateur pour le système de suivi et l’interface utilisateur pour un contrôle manuel des angles suivi si nécessaire
- Services.apsx – fichier ASP.Net qui reçoit le suivi manuel des angles de Index.html. Fournit ces angles pour le HTTP Imp dans le nœud qui les achemine vers le firmware via HTTP. Ce fichier peut sembler redondant, mais il évite les problèmes avec Cross origine partage des ressources. Les navigateurs sont en général pas heureux de faire des appels AJAX à un domaine autre que le domaine qui a servi vers le haut de la page qu’ils utilisent actuellement. Par exemple, MyWebServ.com servi le fichier index.html. Index.html utilise AJAX pour faire une demande à electricimp.com... navigateur freaks dehors. Appel obtient parfois fait, mais une erreur est renvoyée. Tous les appels dans le même serveur web permet d’éviter cela. Je suis sûr qu’il y a d’autres façons, mais je ne les connais pas !
- TrackerStatus.aspx – fichier ASP.Net qui interroge la base de données sur demande pour les dernières données de l’état de la PMI. Données sont demandées par index.html AJAX appeler. TrackerStatus.aspx interroge la base de données, programmes le résultat sous forme d’une chaîne au format JSON et retourne la réponse à index.html
- DatabaseUpdater.aspx – Peridodically le firmware écrit lui a sortie port (CompassPort). Le planificateur de l’Imp est configuré avec un nœud de requête HTTP qui se connecte à CompassPort. Lorsqu’un paquet de données est reçu, le nœud de demandes HTTP fera une demande pour la page cible avec lequel il a été configuré. Cette page est DatabaseUpdater.aspx, qui écrit les valeurs de statut actuel dans la base de données via une requête SQL UPDATE.
Vous devrez configurer votre chaîne de connexion de base de données ainsi que vos détails d’URL imp électrique. Le fichier joint WebFiles.PDF contient tout le code source pour les services web. Renommez le fichier en fichier .pdf .zip et décompresser.