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( )
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 """
#!/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)
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
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)
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)
#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,
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,
def dweet(self): id = self.id.replace("/", "") Dweet.dweet_by_name(name="{}".format(id), data=self.payload)
#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)
#!/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")
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)