Hem Automation hallon och Phidgets del 3 (1 / 2 steg)
Steg 1: Koden
Koden
Skapa en ny mapp som ska innehålla alla filer
sudo mkdir /home/pi/domo-emmeshop
Skapa en ny fil sensor.html
sudo nano /home/pi/domo-emmeshop/sensor.html
med detta innehåll
<! DOCTYPE html >
< html >
< head >
< title > EmmeShop Domotics < / title >
< meta http-equiv = "Content-Type" content = "text/html; charset = UTF-8 ">
< meta namn = "vyport" content = "bredd = enhet-bredd, initial-skala = 1, användaren-scalable = no" >
< länka 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 = "sensor-emmeshop.js" >< / script >
< style type = "text/css" >
.Label1 {Visa: inline! viktigt; vertical-align: 1.0em;}
< / stil >
< / head >
< body >
< div data-tema = "en" data-roll = "huvud" >
< p align = "center" >< img src = "http://www.emmeshop.eu/blog/themes/bartik/Logo-Emmeshop.png" alt = "Hem" >< /p >
< / div >
< div class = "innehåll-ingång" >
< div class = "s-titel" >< center > Home Automation < / center >< / div >
< ul data-roll = "listview" data-indrag = true >
< li >
< label >< b > SEN 00 < /b >< / etikett >
< span class = "inputvalue" namn = "S00" id = "S00" > 0 < / span >
< /li >
< li >
< label >< b > SEN 01 < /b >< / etikett >
< span class = "inputvalue" namn = "S01" id = "S01" > 0 < / span >
< /li >
< li >
< label >< b > SEN 02 < /b >< / etikett >
< span class = "inputvalue" namn = "S02" id = "S02" > 0 < / span >
< /li >
< li >
< label >< b > SEN 03 < /b >< / etikett >
< span class = "inputvalue" namn = "S03" id = "S03" > 0 < / span >
< /li >
< li >
< label >< b > SEN 04 < /b >< / etikett >
< span class = "inputvalue" namn = "S04" id = "S04" > 0 < / span >
< /li >
< li >
< label >< b > SEN 05 < /b >< / etikett >
< span class = "inputvalue" namn = "S05" id = "S05" > 0 < / span >
< /li >
< li >
< label >< b > SEN 06 < /b >< / etikett >
< span class = "inputvalue" namn = "S06" id = "S06" > 0 < / span >
< /li >
< li >
< label >< b > SEN 07 < /b >< / etikett >
< span class = "inputvalue" namn = "S07" id = "S07" > 0 < / span >
< /li >
< /ul >
< / div >
< div data-tema = "en" data-roll = "sidfot" >
< p align = "center" >< h2 > Emmeshop elektronik < / h2 >< /p >
< / div >
< / body >
< / html >
Skapa en ny fil sensor-emmeshop.js
sudo nano /home/pi/domo-emmeshop/sensor-emmeshop.js
med detta innehåll
$(document).ready(function() {
var jqxhr = $.getJSON ("action.php?", function(data) {
value_update(data);
})
});
funktion value_update(data) {
$.each (data, funktion (index, värde) {
Switch(index)
{
fall '00':
var temperatur = (parseFloat(value) * 0.22222)-61.11;
$(' #S'+index).text(temperature.toFixed(2) + '° C');
bryta;
fall '01':
var luftfuktigheten = (parseFloat(value) * 0.1906)-40.2;
$(' #S'+index).text(humidity.toFixed(2) + '%');
bryta;
fall '02':
var luminositet = (parseFloat(value) * 1.15269) + 40.061;
$("#S'+index).text(luminosity.toFixed(2) +"lux");
bryta;
}
});
}
Skapa en ny fil action.php
sudo nano /home/pi/domo-emmeshop/action.php
med detta innehåll
<? php
$read = shell_exec ("sudo python /var/ www/domo-emmeshop/sensor-emmeshop.py');
IF($Read=="")
{
ECHO "Fel";
}
annat
{
$tempArray=explode("\n",$read);
Skapa matrisen med värden som Läs
för ($i = 0; $i < 8; $i ++)
{
$pin = sprintf ('% 02s', $i);
$myArray[$pin]=intval(str_replace("\n","",$tempArray[$i]));
}
skapa json-sträng
ECHO json_encode($myArray);
}
? >
Skapa en länk av domo-emmeshop från /home/pi/domo-emmeshop till /var/ www/domo-emmeshop.
sudo ln -s /home/pi/domo-emmeshop /var/ www/domo-emmeshop
Slutligen skapa en python filen sensor-emmeshop.py
sudo nano /var/ www/domo-emmeshop/sensor-emmeshop.py
med detta innehåll
#! / usr/bin/env python
#Basic import
ctypes importera *
importera sys
importera slumpmässiga
importera os
#Phidget särskilda import
importera från Phidgets.PhidgetException PhidgetErrorCodes, PhidgetException
från Phidgets.Events.Events importera AttachEventArgs, DetachEventArgs, ErrorEventArgs, InputChangeEventArgs, OutputChangeEventArgs, SensorChangeEventArgs
importera InterfaceKit från Phidgets.Devices.InterfaceKit
arrSenState = [0,0,0,0,0,0,0,0]
#Create ett interfacekit objekt
försök:
interfaceKit = InterfaceKit()
utom RuntimeError som e:
skriva ut ("Runtime undantag: %s" % e.details)
Print("Exiting...")
Exit(1)
#Event handler återkopplingsfunktioner
def interfaceKitAttached(e):
Fäst = e.device
def interfaceKitDetached(e):
fristående = e.device
def interfaceKitError(e):
försök:
Source = e.device
skriva ut ("InterfaceKit % i: Phidget fel % i: %s" % (source.getSerialNum(), e.eCode, e.description))
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
def interfaceKitInputChanged(e):
Source = e.device
def interfaceKitSensorChanged(e):
Source = e.device
arrSenState[int(e.index)]=int(e.value)
def interfaceKitOutputChanged(e):
Source = e.device
#Main programkod
försök:
interfaceKit.setOnAttachHandler(interfaceKitAttached)
interfaceKit.setOnDetachHandler(interfaceKitDetached)
interfaceKit.setOnErrorhandler(interfaceKitError)
interfaceKit.setOnInputChangeHandler(interfaceKitInputChanged)
interfaceKit.setOnOutputChangeHandler(interfaceKitOutputChanged)
interfaceKit.setOnSensorChangeHandler(interfaceKitSensorChanged)
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)
försök:
interfaceKit.openPhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)
försök:
interfaceKit.waitForAttach(10000)
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
försök:
interfaceKit.closePhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)
Print("Exiting...")
Exit(1)
försök:
interfaceKit.closePhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)
för indexet i range(len(arrSenState)):
skriva ut ("%i" % arrSenState[index])
Exit(0)