Beispiel #1
0
 def final(self, bright):
     self.payload = {
         "timestamp": self.timestamp,
         "mode": bright,
         "DeviceID": self.id
     }
     publish.single("switch/" + self.id,
                    json.dumps(self.payload),
                    hostname=self.brokerIP)
     name = self.id.replace("/", "")
     name = name + "S"
     Dweet.dweet_by_name(name="{}".format(name), data=self.payload)
     return """ The selected node will run on MANU mode with brightness : %s """ % bright + self.index(
     )
Beispiel #2
0
 def modeselect(self, zone, node, mode):
     if "zone" + zone not in self.actives:
         return "The selected node does not exist, please select a new one" + self.index(
         )
     self.id = "zone" + zone + "/" + "node" + node
     if int(mode) == 1:  # auto mode
         self.payload = {
             "timestamp": self.timestamp,
             "mode": '5',
             "DeviceID": self.id
         }
         publish.single("switch/" + self.id,
                        json.dumps(self.payload),
                        hostname=self.brokerIP)
         name = self.id.replace("/", "")
         name = self.id + "S"
         Dweet.dweet_by_name(name="{}".format(name), data=self.payload)
         return """ The selected node will be run on AUTO mode""" + self.index(
         )
     else:  # manu mode
         return """
Beispiel #3
0
Datei: sender.py Projekt: t27/iot
#!/usr/bin/python
from dweet import Dweet
from datetime import datetime
from time import sleep
import sys


if __name__ == "__main__":
    devicename='t27_testing'
    if len(sys.argv)>1:
        devicename=sys.argv[1]

    dweet = Dweet()
    while 1==1:
        timenow=str(datetime.now())
        print dweet.dweet_by_name(name=devicename, data={ "timenowis": timenow } )
        sleep(5)
Beispiel #4
0
class Fkondenz(object):
    GPIO_DHT = 22

    DHT_HUM_ID = 0
    DHT_TEMP_ID = 0

    PROJECT_NAME = "Fluxuskondenzator"
    DWEET_ID = PROJECT_NAME + "_2017"

    DB_NAME = PROJECT_NAME
    DB_HOST = 'localhost'
    DB_USERNAME = '******'
    DB_PASSWORD = '******'

    STR_HUMIDITY = 'Humidity'
    STR_TEMPERATURE = 'Temperature'
    STR_DISTANCE = 'Distance'

    def __init__(self, _isTest):
        self.testData = None
        self.testData1 = None
        self.testData2 = None

        self.isTest = _isTest
        self.dweet = Dweet()
        try:
            self.ser = serial.Serial('/dev/ttyUSB0', 9600)
        except NameError:
            pass

    def Fkondenz(self, _isTest):
        self.isTest = _isTest
        self.dweet = Dweet()
        try:
            self.ser = serial.Serial('/dev/ttyUSB0', 9600)
        except NameError:
            pass

    def conn(self):
        """
		Creates connection with the database
		Returns connection and cursor
		:return:
		"""
        con = mdb.connect(self.DB_HOST, self.DB_USERNAME, self.DB_PASSWORD,
                          self.DB_NAME)
        cur = con.cursor()
        return cur, con

    def getSensorTypeByName(self, name):
        """
		Returns the type of the sensor by name
		:param name:
		:return:
		"""
        if self.isTest == False:
            cur, con = self.conn()
            query = "SELECT sensorTypeID FROM SensorTypes where sensorName='%s'" % (
                name)
            cur.execute(query)
            type = cur.fetchone()
            return type[0]
        else:
            return self.testData

    def getSensorValuesByID(self, id):
        """
		Returns all the values for the Sensor with id
		:param id:
		:return:
		"""
        if self.isTest == False:
            cur, con = self.conn()
            query = "SELECT date,value FROM Datas where sensorTypeID='%s'" % (
                id)
            cur.execute(query)
            values = cur.fetchall()
            listDatas = []
            for value in values:
                listDatas.append(value)
            return listDatas
        else:
            return self.testData

    def getSensorLastValueByID(self, id):
        """
		Returns the last value for the sensor with id
		:param id:
		:return:
		"""
        if self.isTest == False:
            cur, con = self.conn()
            query = "SELECT date,value FROM Datas where sensorTypeID='%s' order by date desc" % (
                id)
            cur.execute(query)
            type = cur.fetchone()
            return type[0], type[1]
        else:
            return self.testData, self.testData1

    def insertDataBySensorID(self, id, value):
        """
		Insert received or sent messages in the database
		:param id:
		:param value:
		:return:
		"""
        if self.isTest == False:
            cur, con = self.conn()
            query = "INSERT INTO Datas (sensorTypeID,value, date) VALUES ('%s', '%s', NOW())" % (
                id, value)
            cur.execute(query)
            con.commit()
        else:
            self.testData = id
            self.testData1 = value

        return

    def insertDataBySensorName(self, name, value):
        if self.isTest == False:
            print name, " ", value
            id = self.getSensorTypeByName(name)
            self.insertDataBySensorID(id, value)
        else:
            self.testData = name
            self.testData1 = value

        return

    def readDht(self):
        """
		Reads the data from the DHT sensor
		:return:
		"""
        if self.isTest == False:
            humidity, temperature = Adafruit_DHT.read_retry(
                Adafruit_DHT.AM2302, self.GPIO_DHT)
            return humidity, temperature
        else:
            return self.testData, self.testData1

    def readSensors(self):
        """
		Reads all the sensors
		:return:
		"""
        if self.isTest == False:
            resp = ""
            try:
                resp = self.ser.readline()
            except NameError:
                pass
            resp_splitted = resp.split(',')

            hum = 0
            temp = 0
            dist = 0

            for word in resp_splitted:
                if word.find(':') != -1:
                    type, data = word.split(':', 1)
                    self.insertDataBySensorName(type, data)
                    if type == self.STR_HUMIDITY:
                        hum = data
                    elif type == self.STR_TEMPERATURE:
                        temp = data
                    elif type == self.STR_DISTANCE:
                        dist = data

            return hum, temp, dist
        else:
            return self.testData, self.testData1, self.testData2

    def insertDataIntoDatabase(self, hum, temp):
        """
		Inserts the data into the database
		:param hum:
		:param temp:
		:return:
		"""
        self.insertDataBySensorID(self.DHT_HUM_ID, hum)
        self.insertDataBySensorID(self.DHT_TEMP_ID, temp)

    def sendData(self, hum, temp, dist):
        """
		Sends the sensor data to dweet.io and returns 'success' on success and 'failed' on failure
		:param hum:
		:param temp:
		:param dist:
		:return:
		"""
        try:
            resp = self.dweet.dweet_by_name(name=self.DWEET_ID,
                                            data={
                                                self.STR_HUMIDITY: hum,
                                                self.STR_TEMPERATURE: temp,
                                                self.STR_DISTANCE: dist
                                            })
            return resp['this']
        except requests.exceptions.ConnectionError:
            return "Connection error"

    def uploadToDweet(self, hum, temp, dist):
        """
		Test method wichi will print the data, send it to dweet.io and print the result
		:param hum:
		:param temp:
		:param dist:
		:return:
		"""
        if self.isTest == False:
            print "Sending"
            print "\tHumidity: ", hum
            print "\tTemperature: ", temp
            print "\tDistance: ", dist

            resp = self.sendData(hum, temp, dist)
            print "Result: " + resp + '\n'
        else:
            self.testData = "Uploaded"

    def mainLoop(self):
        """
		Loop which will read the sensors, save the data in databas and send it to dweet.io
		:return:
		"""
        while True:
            hum, temp, dist = self.readSensors()
            self.insertDataIntoDatabase(hum, temp)
            self.uploadToDweet(hum, temp, dist)
            time.sleep(1)

    def setTestData(self, _testData):
        self.testData = _testData

    def getTestData(self):
        return self.testData

    def setTestData1(self, _testData):
        self.testData1 = _testData

    def getTestData1(self):
        return self.testData1

    def setTestData2(self, _testData):
        self.testData2 = _testData

    def getTestData2(self):
        return self.testData2
Beispiel #5
0
spi.bits_per_word = 8

system_status = 1

dweet = Dweet()


def readTemp(gpio):

    gpio.digital_write(GPIO_CS, GPIO.HIGH)
    time.sleep(0.0002)
    gpio.digital_write(GPIO_CS, GPIO.LOW)
    r = spi.xfer2([0x01, 0xA0, 0x00])
    gpio.digital_write(GPIO_CS, GPIO.HIGH)

    adcout = (r[1] << 8) & 0b1100000000
    adcout = adcout | (r[2] & 0xff)
    adc_temp = (adcout * 5.0 / 1023 - 0.5) * 100
    return adc_temp


#def readDweet():

if __name__ == '__main__':
    with GPIO(pins) as gpio:
        while True:
            temp = readTemp(gpio)
            print "Temp: %2.1f\n" % (temp)
            dweet.dweet_by_name(name="inatel_ead", data={"Temperatura": temp})
            time.sleep(5)
Beispiel #6
0
if __name__ == '__main__':
    with GPIO(pins) as gpio:
        while True:
            digital = [0, 0]
            resposta = dweet.latest_dweet(name="murilo_inatel")
            digital[0] = resposta['with'][0]['content']['iluminacao']
            digital[1] = resposta['with'][0]['content']['irrigacao']
            # era aqui writeDigital(gpio, digital)

            sol = readLumi(gpio)
            vol = readVol(gpio)
            hum = readHum(gpio)
            writeDigital(gpio, digital)
            #digital = readDigital(gpio)
            temp = readTemp(gpio)

            print "\n\nLEITURA: Sistema iRRigacao\nTemperatura: %2.1f\nSol: %d\nIluminacao: %d\nIrrigacao: %d\nVolume Dagua:%d\nHumidade do Ar:%d" % (
                temp, sol, digital[0], digital[1], vol, hum)

            dweet.dweet_by_name(name="murilo_inatel",
                                data={
                                    "iluminacao": digital[0],
                                    "irrigacao": digital[1],
                                    "temperatura": temp,
                                    "sol": sol,
                                    "volume": vol,
                                    "humidade": hum
                                })

            time.sleep(5)
Beispiel #7
0
    #resposta = dweet.latest_dweet(name="iplug_sabrina_q3")
    #print resposta['content']


while True:
    with GPIO(pins) as gpio:
        vtemp = temperatura(gpio)
        vlumi = luminosidade(gpio)
        if status == 1:
            if vtemp > 23.0 and vlumi < sensibilidade:

                ligarele()
                ligaled()
                dweet.dweet_by_name(name="iplug_sabrina_q3",
                                    data={
                                        "led": 1,
                                        "rele": 1
                                    })
                print("Temperatura: %2.1f" % vtemp)
                print "Ar condiciondo ligado!"
                print("Luminosidade: %d" % vlumi)
                print "Luz Ligada! Agora e noite!"
                time.sleep(1)

            elif vtemp > 23.0 and vlumi > sensibilidade:

                ligarele()
                desligaled()
                dweet.dweet_by_name(name="iplug_sabrina_q3",
                                    data={
                                        "led": 0,
Beispiel #8
0
	gpio.digital_write(RELE, GPIO.LOW)



while True:
	with GPIO(pins) as gpio:
		botao_valor = gpio.digital_read(BOTAO)
		vtemp = readtemp(gpio)
		vlumi = readLumi(gpio)
		#resposta = dweet.latest_dweet(name="bm_temp")
		#cloud = resposta['with'][0]['content']['botao']
		if botao_valor == 0:
			if vtemp > 23:
				liga()
				alarme = 1
				dweet.dweet_by_name(name="bm_temp", data={"alarme":alarme, "temp":vtemp, "lumi":vlumi})
				print "Sistema Automatico! \n"		
				print "Ar Condicionado Ligado"		
				print ("Temperatura: %2.1f" %vtemp)
				print ("Luminosidade: %2.1f \n" %vlumi)
				time.sleep(5)
			else:
				desliga()	
				alarme = 0
				dweet.dweet_by_name(name="bm_temp", data={"alarme":alarme, "temp":vtemp, "lumi":vlumi})	
				#print ("botao: %d" %cloud)	
				print "Sistema Automatico! \n"				
				print "Ar Condicionado Desligado"		
				print ("Temperatura: %2.1f" %vtemp)
				print ("Luminosidade: %2.1f \n" %vlumi)
				time.sleep(5)         		
        dwligatoque = resposta['with'][0]['content']['toque']
        dwligaled = resposta['with'][0]['content']['led']
        dwligarele = resposta['with'][0]['content']['rele']

        if button_value == 0 and dwligatoque == 0:
            vtemp = temperatura(gpio)
            vlumi = luminosidade(gpio)
            print "Sua casa esta sendo controlada automaticamente"
            #time.sleep(5)
            if vtemp > 23 and vlumi < sensibilidade:
                ligarele()
                ligaled()
                dweet.dweet_by_name(name="iplug_sabrina_q4",
                                    data={
                                        "led": 1,
                                        "rele": 1,
                                        "toque": dwligatoque,
                                        "Temperatura": vtemp,
                                        "Luminosidade": vlumi
                                    })
                print("Temperatura: %2.1f" % vtemp)
                print "Ar condiciondo ligado!"
                print("Luminosidade: %d" % vlumi)
                print "Luz Ligada! Agora e noite!"
                time.sleep(5)
            elif vtemp > 23 and vlumi > sensibilidade:
                ligarele()
                desligaled()
                dweet.dweet_by_name(name="iplug_sabrina_q4",
                                    data={
                                        "led": 0,
                                        "rele": 1,
Beispiel #10
0
 def dweet(self):
     id = self.id.replace("/", "")
     Dweet.dweet_by_name(name="{}".format(id), data=self.payload)
Beispiel #11
0
    #print("Luminosidade: %d" %adcout)
    return adcout


#def readDweet():

if __name__ == '__main__':
    with GPIO(pins) as gpio:
        while True:
            digital = [0, 0]
            if detectaButton(gpio) == 1:
                resposta = dweet.latest_dweet(name="inatel_ead")
                digital[0] = resposta['with'][0]['content']['led']
                digital[1] = resposta['with'][0]['content']['rele']
                writeDigital(gpio, digital)
                temp = readTemp(gpio)
                lumi = readLumi(gpio)
                digital = readDigital(gpio)
                print "Temp: %2.1f\nlumi: %d\nled: %d\nrele: %d" % (
                    temp, lumi, digital[0], digital[1])
                dweet.dweet_by_name(name="inatel_ead",
                                    data={
                                        "led": digital[0],
                                        "rele": digital[1],
                                        "Temperatura": temp,
                                        "Luminosidade": lumi
                                    })

            time.sleep(10)
Beispiel #12
0
#!/usr/bin/env python
from dweet import Dweet


if __name__ == "__main__":

    dweet = Dweet()
    
    #dweet an dweet without a thing name. Returns a a thing name in the response
    print dweet.dweet({"hello": "world"})
    
    #dweet with a thing name
    print dweet.dweet_by_name(name="test_thing", data={"hello": "world"})
    
    #get the latest dweet by thing name. Only returns one dweet.
    print dweet.latest_dweet(name="test_thing")
    
    #get all the dweets by dweet name.
    print dweet.all_dweets(name="test_thing")
Beispiel #13
0
def readTemp(gpio):

	gpio.digital_write(TEMP, GPIO.HIGH)
	time.sleep(0.0002)
	gpio.digital_write(TEMP, GPIO.LOW)
	r = spi.xfer2([0x01, 0xA0, 0x00])
	gpio.digital_write(TEMP, GPIO.HIGH)

	adcout = (r[1] << 8) & 0b1100000000
	adcout = adcout | (r[2] & 0xff)
	adc_temp = (adcout *5.0/1023-0.5)*100

	return adc_temp

if __name__=='__main__':
	with GPIO(pins) as gpio:
		while True:
			dados = [0,0]
			resposta = dweet.latest_dweet(name="minhacasa")
	        dados[0] =  resposta['with'][0]['content']['led']
	        dados[1] =  resposta['with'][0]['content']['rele']
			writeDigital(gpio, digital)
			temp = readTemp(gpio)
			digital = readDigital(gpio)
			print "Monitoramento Residencial\n"
			print "Temp: %2.1f\n led: %d\nrele: %d" %(temp, digital[0], digital[1])
			print "Registrando na Nuvem\n"
			dweet.dweet_by_name(name="minhacasa", data={"led":digital[0],"rele": digital[1], "Temperatura":temp})

			time.sleep(30)