Home Automation framboise et Phidgets partie 2 (1 / 2 étapes)

Etape 1: Le code

Le code

Créez un nouveau dossier qui contiendra tous les fichiers

 sudo mkdir /home/pi/domo-emmeshop 

Créer une nouvelle input.html de fichier

 sudo nano /home/pi/domo-emmeshop/input.html 

avec ce contenu

 <!DOCTYPE html> <html> <head> <title>EmmeShop Domotics</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> <script src="input-emmeshop.js"></script> <style type="text/css"> .label1 { display: inline !important; vertical-align: 1.0em; } </style> </head> <body> <div data-theme="a" data-role="header"> <p align="center"><img src="http://www.emmeshop.eu/blog/themes/bartik/Logo-Emmeshop.png" alt="Home"></p> </div> <div class="content-input" > <div class="s-title"><center>Home Automation</center></div> <ul data-role="listview" data-inset="true" > <li> <label for="I00" class="label1"><b>Input 00 </b></label> <select disabled name="I00" id="I00" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I01" class="label1"><b>Input 01 </b></label> <select disabled name="I01" id="I01" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I02" class="label1"><b>Input 02 </b></label> <select disabled name="I02" id="I02" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I03" class="label1"><b>Input 03 </b></label> <select disabled name="I03" id="I03" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I04" class="label1"><b>Input 04 </b></label> <select disabled name="I04" id="I04" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I05" class="label1"><b>Input 05 </b></label> <select disabled name="I05" id="I05" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I06" class="label1"><b>Input 06 </b></label> <select disabled name="I06" id="I06" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> <li> <label for="I07" class="label1"><b>Input 07 </b></label> <select disabled name="I07" id="I07" data-mini="false" data-role="slider"> <option value="0">Open</option> <option value="1">Closed</option> </select> </li> </ul> </div> <div data-theme="a" data-role="footer"> <p align="center"><h2>Emmeshop Electronics</h2></p> </div> </body> </html> 

Créer un nouveau fichier d’entrée-emmeshop.js

 sudo nano /home/pi/domo-emmeshop/input-emmeshop.js 

avec ce contenu

 $(document).ready(function(){ var jqxhr = $.getJSON('action.php?', function(data) { value_update(data); }) }); function value_update(data) { $.each(data, function (index, value) { $('#I'+index).val(value).slider("refresh"); }); } 

Créer un nouveau action.php fichier

 sudo nano /home/pi/domo-emmeshop/action.php 

avec ce contenu

 <?php $read=shell_exec('sudo python /var/www/input-emmeshop.py'); if($read=="") { echo "Error"; } else { $tempArray=explode("\n",$read); // create array with read values for ($i = 0; $i<8; $i++) { $pin = sprintf('%02s', $i); $myArray[$pin]=intval(str_replace("\n","",$tempArray[$i])); } // creato json string echo json_encode($myArray); } ?> 

Faire un lien de domo-emmeshop de /home/pi/domo-emmeshop à /var/ www/domo-emmeshop.

 sudo ln -s /home/pi/domo-emmeshop /var/www/domo-emmeshop 

Enfin, créez un fichier python entrée-emmeshop.py

 sudo nano /var/www/input-emmeshop.py 

avec ce contenu

 #!/usr/bin/env python #Basic imports from ctypes import * import sys import random import os #Phidget specific imports from Phidgets.PhidgetException import PhidgetErrorCodes, PhidgetException from Phidgets.Events.Events import AttachEventArgs, DetachEventArgs, ErrorEventArgs, InputChangeEventArgs, OutputChangeEventArgs, SensorChangeEventArgs from Phidgets.Devices.InterfaceKit import InterfaceKit arrInState=[0,0,0,0,0,0,0,0] #Create an interfacekit object try: interfaceKit = InterfaceKit() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) #Event Handler Callback Functions def interfaceKitAttached(e): attached = e.device def interfaceKitDetached(e): detached = e.device def interfaceKitError(e): try: source = e.device print("InterfaceKit %i: Phidget Error %i: %s" % (source.getSerialNum(), e.eCode, e.description)) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) def interfaceKitInputChanged(e): source = e.device arrInState[int(e.index)]=int(e.state) def interfaceKitSensorChanged(e): source = e.device def interfaceKitOutputChanged(e): source = e.device #Main Program Code try: interfaceKit.setOnAttachHandler(interfaceKitAttached) interfaceKit.setOnDetachHandler(interfaceKitDetached) interfaceKit.setOnErrorhandler(interfaceKitError) interfaceKit.setOnInputChangeHandler(interfaceKitInputChanged) interfaceKit.setOnOutputChangeHandler(interfaceKitOutputChanged) interfaceKit.setOnSensorChangeHandler(interfaceKitSensorChanged) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) try: interfaceKit.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) try: interfaceKit.waitForAttach(10000) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) try: interfaceKit.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Exiting....") exit(1) try: interfaceKit.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) for index in range(len(arrInState)): print ("%i" % arrInState[index]) exit(0) 

Articles Liés

Home Automation framboise et Phidgets partie 3

Home Automation framboise et Phidgets partie 3

Cet article est le troisième dans la domotique avec Phidgets et framboise.Dans les articles précédents nous avons vu comment interagir avec les sorties et les entrées numériques.Maintenant, nous allons voir comment faire pour lire les valeurs de cert
Home Automation framboise et Phidgets

Home Automation framboise et Phidgets

Dans les didacticiels précédents, nous avons utilisé Raspberry Pi au lecteur Phidgets InterfaceKit. Nous avons également mis en place un serveur web sur framboisier.Dans ce tutoriel que nous allons utiliser l'information recueillie pour créer un syst
Le Raspberry Pi-Arduino-SignalR Home Automation moyeu

Le Raspberry Pi-Arduino-SignalR Home Automation moyeu

Suite à un couple de mon prélude IBLEs publié ici et ici, ce projet prend la première étape vers la création d'une version de base d'un Home Automation Hub fonctionnelle.J'ai utilisé différentes technologies dans le but de comprendre comment je peux
Raspberry pi Home Automation Server

Raspberry pi Home Automation Server

Le pi de framboise est un petit ordinateur incroyable pour le prix. Maintenant que vous avez un pi framboise permet de mettre au travail !Un serveur web ne nécessite pas beaucoup d'espace disque ou de la puissance informatique. Avec un peu de php et
Linkit one - Home Automation avec Bluetooth contrôleur Android App

Linkit one - Home Automation avec Bluetooth contrôleur Android App

Toutes les options sont équipées de téléphones intelligents. Les téléphones intelligents rendent notre travail très facile et nous rendent paresseux. Tour et éteindre des appareils ménagers utilisant téléphone intelligent avec dent bleue est dans le
Système de temps de présence & avec framboise et Phidgets

Système de temps de présence & avec framboise et Phidgets

Dans ce tutoriel, nous allons créer une période facile & système de fréquentation à l'aide d'un Pi de framboise et Phidgets RFID en lecture-écriture.Nous allons utiliser une page web pour afficher l'heure actuelle, et un message de confirmation pour
Home Automation/sécurité Prototype

Home Automation/sécurité Prototype

J'ai joué avec les microcontrôleurs pour assez longtemps et puis j'ai mes amis m'a demandé de reprendre ce projet et j'ai était un peu nerveux parce que travailler avec des modules individuels domotique est relativement plus facile que de construire
SMART HOME AUTOMATION

SMART HOME AUTOMATION

À l'heure actuelle il y a beaucoup de types de systèmes Home Automation disponibles dans notre marché. La plupart d'entre eux est électroménagers simples contrôle des systèmes comme DTMF contrôlée des appareils ménagers, RF basé électroménagers contr
Smart Home Automation avec commande vocale

Smart Home Automation avec commande vocale

Il s'agit d'un tutoriel étape par étape construire le circuit pour la fonction « Smart Home Automation avec commande vocale ».Télécharger notre Code libre du projet Arduino ici.Exigences :• Arduino Uno• LED• Résistance (220 ohms)• Module Bluetooth (B
Smart Home Automation avec Android + Ethernet Internet + Arduino

Smart Home Automation avec Android + Ethernet Internet + Arduino

Domotique devient de plus en plus populaire et abordable et fascine les gens. Internet offre de telles possibilités comme jamais auparavant. Impressionnez vos amis montrant sur Smartphone que vous pouvez mise en marche/arrêt lampe dans vos milles app
Home Automation (ou Robot Butler appelé Geoffrey) - iPhone contrôlée, arduino base

Home Automation (ou Robot Butler appelé Geoffrey) - iPhone contrôlée, arduino base

étant capable de contrôler tout de votre poche est depuis longtemps un rêve partagé par beaucoup. Précédemment, nous avons eu des télécommandes universelles qui peuvent tous deux contrôlent nos télévisions et les radios, puis nous avons eu des prises
Comment faire une framboise Pi cas partir un Altoids Tin

Comment faire une framboise Pi cas partir un Altoids Tin

si vous avez une carte d'ordinateur Raspberry Pi, vous pouvez faire une grande affaire pour lui sortir un Altoids tin de menthe.Vous aurez besoin :1 carte de l'ordinateur de raspberry Pi1 boîte de menthe Altoids1 chèque-cadeau en plastique1 perceuse
GROWMAT home automation

GROWMAT home automation

GROWMATest l'unité d'automatisation des maisons, des serres, des champs de plus en plus de fruits, de légumes ou de fleurs. Peut être utilisé comme unité autonome d'automatisation, de télécommande ou de système de surveillance et de sécurité et peut
Home Automation contrôle vocal - analyse micro de multi-salle

Home Automation contrôle vocal - analyse micro de multi-salle

Avez-vous déjà senti la nécessité de suivre vos habitudes de parole, contrôler votre maison avec votre voix, ou simplement enregistrer depuis plusieurs micros en même temps ? Ensuite, vous avez de la chance ! Dans ce Instructable, vous apprendrez com