Hem Automation hallon och Phidgets (1 / 3 steg)
Steg 1: Koden
Skapa en ny mapp som ska innehålla alla filer
sudo mkdir /home/pi/domo-emmeshop
Skapa en ny fil index.php
sudo nano /home/pi/domo-emmeshop/index.php
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 = "domo-emmeshop.js" >< / script >
< / 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-output" >
< div class = "s-titel" >< center > Home Automation < / center >< / div >
< ul data-roll = "listview" data-indrag = true >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "0" > utgång 0 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "1" > utgång 1 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "2" > utgång 2 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "3" > utgång 3 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "4" > utgång 4 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "5" > utgång 5 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "6" > utgång 6 < / knapp >
< /li >
< li >
< knappen klass = "ui-btn ui-hörn-all" id = "7" > utgång 7 < / knapp >
< /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 domo-emmeshop.js
sudo nano /home/pi/domo-emmeshop/domo-emmeshop.js
med detta innehåll
$(document).ready(function() {
$("button").click(function() {
$.post ("action.php",
{
outId:(this.id)
},
function(data,status) {
Alert ("Data:" + data + "\nStatus:" + status);
});
});
});
Skapa en ny fil action.php
sudo nano /home/pi/domo-emmeshop/action.php
med detta innehåll
<? php
$gpin = "0";
om (isset($_POST['outId']))
{
$gpin = $_POST ['outId'];
}
shell_exec ("sudo python /var/ www/domo-emmeshop.py". " $gpin);
? >
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 domo-emmeshop.py
sudo nano /var/ www/domo-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
outId = int(sys.argv[1])
#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
skriva ut ("InterfaceKit %i fristående!" % (detached.getSerialNum()))
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
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)
annat:
om interfaceKit.getOutputState (outId) == 1:
interfaceKit.setOutputState(outId,0)
annat:
interfaceKit.setOutputState(outId,1)
försök:
interfaceKit.closePhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)
Exit(0)