Phidgets WhatsApp - be status för dina sensorer (2 / 3 steg)

Steg 2: Förbered system att arbeta med Python

Filen ifkit.py är en modifierad version av filen InterfaceKit-simple.py ingår i exemplen släpptes av Phidgets och sedan hämta de bibliotek och exempel från Phidgets.

Hämta Python-bibliotek:

wget http://www.phidgets.com/downloads/libraries/PhidgetsPython.zip

Eftersom biblioteken kommer som en zip-arkiv, behöver vi sannolikt du installera zip stöd

apt-get install zip unzip

Packa upp PhidgetsPython.zip

CD PhidgetsPython /

Nu kan vi installera Python-bibliotek:

python setup.py installera

Och hämta exemplen:

wget http://www.phidgets.com/downloads/examples/Python.zip

Packa upp Python.zip

CD Python /

CP InterfaceKit-simple.py /yowsup/src/ifkit.py

Redigera filen som har detta innehåll

#! / usr/bin/env python
"" "Copyright 2010 Phidgets Inc.
Detta arbete är licensierat under Creative Commons Attribution 2.5 Canada License.
Om du vill visa en kopia av denna licens, besök http://creativecommons.org/licenses/by/2.5/ca/
"""
__author__ = "Adam Stelmack"
__version__ = "2.1.8"
__date__ = "Maj 17 2010"
#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
#Create ett interfacekit objekt
försök:
interfaceKit = InterfaceKit()
utom RuntimeError som e:
skriva ut ("Runtime undantag: %s" % e.details)
Print("Exiting...")
Exit(1)
#Information med funktionen
def displayDeviceInfo():
print("|------------|----------------------------------|--------------|------------|")
skriva ut ("| - anslutna-| - typ-| - serienr-| - Version-|")
print("|------------|----------------------------------|--------------|------------|")
skriva ut ("| - %8s-| - % 30s-| - % 10d-| - %8 d-|" % (interfaceKit.isAttached(), interfaceKit.getDeviceName(), interfaceKit.getSerialNum(), interfaceKit.getDeviceVersion()))
print("|------------|----------------------------------|--------------|------------|")
skriva ut ("nummer av digitalingångar: %i" % (interfaceKit.getInputCount()))
skriva ut ("nummer av digitala utgångar: %i" % (interfaceKit.getOutputCount()))
skriva ut ("antal sensoringångar: %i" % (interfaceKit.getSensorCount()))
#Event handler återkopplingsfunktioner
def interfaceKitAttached(e):
Fäst = e.device
skriva ut ("InterfaceKit %i bifogad!" % (attached.getSerialNum()))

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
# Skriv ut ("InterfaceKit % i: Input % i: %s" % (source.getSerialNum(), e.index, e.state))

def interfaceKitSensorChanged(e):
Source = e.device
# Skriv ut ("InterfaceKit % i: Sensor % i: %i" % (source.getSerialNum(), e.index, e.value))

def interfaceKitOutputChanged(e):
Source = e.device
# Skriv ut ("InterfaceKit % i: utdata % i: %s" % (source.getSerialNum(), e.index, e.state))
#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)
skriva ut ("öppning phidget objekt...")

försök:
interfaceKit.openPhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)

skriva ut ("väntar på Bifoga...")

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:
# displayDeviceInfo()

temperatur = (interfaceKit.getSensorValue (0) * 0.22222)-61.11
fukt = (interfaceKit.getSensorValue (1) * 0.1906)-40.2
Print("Closing...")

försök:
interfaceKit.closePhidget()
utom PhidgetException som e:
skriva ut ("Phidget undantag % i: %s" % (e.code, e.details))
Print("Exiting...")
Exit(1)

Print("Done.")

OS.system ('sh./send.sh "+ str(temperature) +" "+str(humidity))
Exit(0)

Några av ändringarna i den ursprungliga koden, är läsningen av de analoga ingångarna 0 och 1 i förhållande till temperatur och luftfuktighet. Konvertering-formler är från Phidgets för varje sensor. Den sista raden kalla filen send.sh som hanterar whatsapp.

Skapa en ny fil /yowsup/src/send.sh med detta innehåll

#! / bin/bash

ECHO "aktuell temperatur är $1 ° C"
ECHO "aktuell luftfuktighet är $2%"

python yowsup-cli - c config.example -w -s 39xxxxxxxxxx "aktuell temperatur är $1 och aktuella luftfuktigheten är $2"
python yowsup-cli - c config.example -k - a -l
utgång 0

Ersätta xxxxxxxx med ditt mottagarnummer.

Denna fil är ansvarig att skicka variabler temperaturen och luftfuktigheten via WhatsApp, sedan sätter systemet i lyssna av nya meddelanden.

Se Steg
Relaterade Ämnen

Smart Home-styrenhet med Sensorflare och Spark kärna av partikel: Läs din sensor värden på Sensorflare

Hej alla! Detta instructable visar dig hur du kan kontrollera din smartenheter med Sensorflare och partikel kärna. Möjligheterna är många... Du kan använda partikel core - lite Wi-Fi utveckling styrelsen för att ansluta din hårdvara (t.ex. givare, st...

Rädda världen en droppe i taget, del 3: Nätverk din sensorer

För detta projekt arbetat jag tillsammans med Will Buchanan - delarna 1 och 2 - att skapa ett hem automationssystem som spår vatten användning över fixturer i hemmet, (handfat, dusch, WC etc). Med hjälp av visuella köer (inklusive ljus färg, längd oc...

WhatsApp på Raspberry Pi

I den här guiden kommer vi se hur man använder WhatsApp med Raspberry Pi.Vi kommer att använda Yowsup biblioteket vi hade redan används i dessa tutorials: WhatsApp meddelande från Phidgets SBC , Phidgets WhatsApp - fråga status för dina sensorer.Dess...

Fixa din skrivbord ljus Sensor

Wow, kom ditt nya skrivbord med fancy lysrör med fancy rörelsesensorer - Awww Ja! spara energi för att rädda planeten - cool!Förutom det inte fungerar så bra gör det... Ja, det är en bra idé på papper när du skapar nya utrymmen för människor... men j...

Hur att rengöra din DSLR sensor

även om bra digitala systemkameror har förseglade organ och ofta en sofistikerad Ultraljuds rengöring mekanism på sensorn, kommer du ändå att köra i damm problem efter en tid. Detta tidsintervall kan vara mycket lång, eftersom damm kommer in när du ä...

Göra en DIY sensor för att förstora och Visa mätningen på din Android-telefon via Bluetooth

behöver du en sensor för att mäta något som kroppstemperatur, utanför temperatur, UV-strålning, ljusintensitet, solar irradians, magnetfält, tryck, etc. etc.? Med dagens teknik blir det mycket lätt att göra en sensor och Visa den på din mobiltelefon...

Plan i en jordglob - Hacking en PIR-Sensor gör din budgivning

Hej alla.Någonsin hade en idé dyker in i ditt huvud och du kan inte sluta tänka på det? Väl var min idé att ha en liten plan snurrar inuti en glödlampa, aktiveras av en sensor! Ja jag vet - inte mycket av en idé men det det är.Först jag strök interne...

Basic Home Automation med Phidgets

Detta enkla projekt tar dig igenom grunderna i att få några interiör avkänning och hemautomation inrättas. Projektet löper från en Phidgets SBC, kommer läsa ljus och ljud och sätta ett ljus på och stänga distans. Du kan verkligen växa detta projekt a...

En SK450 död katt Quadcopter att kalla din egen

Innan vi börjar vill jag bara ta den första meningen i detta Instructable att du vet att det finns inga döda katter inblandade i att göra den quadcopter som beskrivs i de kommande stegen. Anledningen till att titeln på detta Instructable innehåller "...

Fjärrkontroll med Raspberry Pi och Phidget WebService

Aktivera din hallon Styrrelä, ledde, sensor och digital ingång med Phidget WebService. "Phidget WebService är en bakgrundsprocess som sänder alla händelser och data från ett USB-Phidget över nätverket: den använder länken lokala adressering där du ka...

Arduino animatörerna-gör din awesome kostymer mer awesome!

Här gör du att lägga till åtgärder, ljus och ljud i din favorit Halloween projekt med öppen källkod Arduino mikrokontroller. Arduino är lätt att lära sig att använda och det öppnar upp en helt ny värld för kostym byggare och varelse skaparna. Om du v...

Bygg din egen (billigt!) multi-function Trådlös kamera controller.

IntroductionNågonsin tyckte att bygga din egen kamera controller?VIKTIGT: Kondensatorer för MAX619 är 470n eller 0.47u. Schematiskt är korrekt, men komponentlistan var fel - uppdaterad.Detta är en post i Digital dagar tävlingen så om du tycker det är...

Garage dörren registeransvarige med hallon-Pi: övervaka status och kontrollera ditt garage från var som helst i världen!

** Har din någonsin körde ur ditt garage och efter några minuter i enheten, fruktade du inte stängde dörren?** Tänk om du verkligen lämna dörren öppen?Garageporten kan nära sig själv efter några minuter, men det betyder att ditt hem säkerhet har även...

Kontrollera din iRobot skapa med en Palm Pilot

i detta instructable jag ska beskriva hur gränssnittet en Palmpilot med iRobot skapa. Jag har använt en Palm IIIxe i mitt projekt, men någon PDA som kör Palm OS och har en seriell port bör fungera. Jag har också designat detta projekt att arbeta med...

Arduino ultraljud vattennivån Sensor för espressomaskiner

Jag har en mycket bra men ganska gammal espressomaskin med en avtagbar vattentank, problemet är den inte ger en varning ljus för låg vattennivå, så jag inte kan veta sådan nivå innan du kör ur vattnet! ELLER åtminstone utan att öppna locket tank, dra...

CyberSafe: Din personliga moln IoT plattform

Förvandla din gamla Raspberry Pi till en privat, Cloud ansluten IoT plattform som Thingspeak eller PubNub! Stream sensordata smidigt!Modeordet för de senaste två åren har varit IoT, och stora företag har varit snabba att hoppa på tåget. För programva...

Analoga sensorer - beräkna nunnedok infördes genom en belastning eller dra ner Resistor

Har du någonsin haft den fruktansvärda känslan att lägga en belastning motstånd eller "dra" till din sensor är Messina upp alla dina analoga avläsningar?Du undrar kanske varför vi vill förstöra en perfekt bra krets genom att sätta i en belastnin...

Arduino Motion Sensor kontroll ledde ljus

i behov av en lite bra handledning om hur man tråd och programmera din nya rörelsesensor med din arduino? Väl se längre. Denna handledning kommer att ge dig ett enkelt exempel på hur man ställer in en rörelsesensor till din arduino och aktivera en le...

Kapacitiv Sensor för flytande

För nästa våren planerar jag att göra en helautomatisk hydroponiska installationsprogrammet. Medan våren är över 6 månader kvar nu (det är ganska mycket höst just nu), det finns fortfarande mycket att göra. En av de saker jag behöver för automation ä...