Example #1
0
def doorbell_callback(client, userdata, msg):
    if lock_status:
        with lock:
            grove_rgb_lcd.setRGB(0, 0, 255)
            grove_rgb_lcd.setText_norefresh(
                "Doorbell Rung   \nStatus: Unlocked")
            grovepi.digitalWrite(buzzer, 1)
            time.sleep(0.3)
            grovepi.digitalWrite(buzzer, 0)
            time.sleep(0.1)
            grovepi.digitalWrite(buzzer, 1)
            time.sleep(0.1)
            grovepi.digitalWrite(buzzer, 0)
    else:
        with lock:
            grove_rgb_lcd.setRGB(0, 0, 255)
            grove_rgb_lcd.setText_norefresh(
                "Doorbell Rung   \nStatus: Locked  ")
            grovepi.digitalWrite(buzzer, 1)
            time.sleep(0.5)
            grovepi.digitalWrite(buzzer, 0)
            time.sleep(0.1)
            grovepi.digitalWrite(buzzer, 1)
            time.sleep(0.1)
            grovepi.digitalWrite(buzzer, 0)
    time.sleep(1)
Example #2
0
def tempF():
	time.sleep(0.5)
	try:
		#temperatuur en humindity

		[temp,hum] = grovepi.dht(temphum,0)
		if math.isnan(temp)==False and math.isnan(hum)==False:
			if canEdit==True:
				lcd.setText("Temp:" + str(temp) + "C\n" + "Hum:" + str(hum) + " %")

				global isNight
				isNight=in_between(datetime.datetime.now().time(), datetime.time(23, 0, 0), datetime.time(4, 0, 0))

				if isNight==True:
					lcd.setRGB(0,0,0)
				else:
					lcd.setRGB(100,100,100)
				
				display_status=""
			client.publish("temp", temp)
			client.publish("hum", hum)
			print('temperatuur: ' + temp)


	except (IOError,TypeError) as ex:
		error="Error: " + str(ex)
Example #3
0
def collect_sensor_data():
    """Collects temperature and humidity data
    :return: The temperature and humidity data collected, formated with
             atmospheric pressure, air speed, metabolic rate, and clothing level.
    :rtype: list of tuples
    """
    sensor_data = []
    try:
        for y in range(3):
            [temp, humid] = grovepi.dht(DHT_SENSOR_PORT, BLUE_DHT)
            if not math.isnan(temp) and not math.isnan(humid):
                t_str = str(temp)
                h_str = str(humid)
                grove_rgb_lcd.setRGB(127, 127, 127)
                grove_rgb_lcd.setText_norefresh("Tmp: {} C\nHmd: {} %".format(
                    t_str, h_str))
                sensor_data.append(([[1013.25, 0.1, humid, 1.0, 0.61, temp]]))
            # For DHT11, wait three seconds before next reading
            time.sleep(3)
            grove_rgb_lcd.setRGB(0, 0, 0)
    except (IOError, TypeError) as ex:
        print("Error: {}".format(str(ex)))
        shutdown_board()
    except KeyboardInterrupt:
        shutdown_board()
    for index, data in enumerate(sensor_data):
        print("Sample #{0} collected: {1}".format(index + 1, data))
    shutdown_board()
    return sensor_data
Example #4
0
def exit():
	

	time.sleep(0.50)
	grovepi.digitalWrite(led1,0)
	time.sleep(0.50)
	grovepi.digitalWrite(led2,0)
	time.sleep(0.50)
	grovepi.digitalWrite(led3,0)
	time.sleep(0.50)
	grovepi.digitalWrite(buzzer,0)
	time.sleep(0.50)
	grovepi.digitalWrite(relay,0)
	time.sleep(0.50)
	client.publish("online", 0)
	client.publish("led1_status", 0)
	client.publish("led2_status", 0)
	client.publish("led3_status", 0)
	client.publish("relay_status", 0)
	client.publish("display_status", "")
	

	lcd.setRGB(100,100,100)
	lcd.setText("IOT-DEVICE \nSTOPPING")
	time.sleep(1)
	lcd.setRGB(0,0,0)
	lcd.setText("")
	time.sleep(0.50)
Example #5
0
def lose():
    global LoseFlag
    global EndFlag
    EndFlag = True
    lcd.setText("You lose!")
    lcd.setRGB(32, 0, 0)
    LoseFlag = False
Example #6
0
def win():
    global WinFlag
    global EndFlag
    EndFlag = True
    lcd.setText("You win!")
    lcd.setRGB(0, 32, 0)
    WinFlag = False
Example #7
0
def shutdown_board():
    """Turns off LEDs and clears LCD screen"""
    grovepi.digitalWrite(RED_LED, OFF)
    grovepi.digitalWrite(GREEN_LED, OFF)
    grove_rgb_lcd.setRGB(0, 0, 0)
    grove_rgb_lcd.setText("")
    print("Job complete. Have an excellent day.")
Example #8
0
def hello_msg(client, userdata, message):
    msg = str(message.payload, "utf-8")
    if msg == "Hello!":
        print("Received hello message from phone! Printing to LCD...")
        grovepi
        lcd_fail = 5
        while lcd_fail > 0:
            try:
                grove_rgb_lcd.setText(msg)
                grove_rgb_lcd.setRGB(50, 100, 100)
                lcd_fail = 0
            except:
                grove_rgb_lcd.textCommand(0x01)
                time.sleep(0.2)
                print("lcd write error, retrying...")
                lcd_fail -= 1
    elif msg == "Goodbye!":
        print("Received goodbye message from phone! Printing to LCD...")
        lcd_fail = 5
        while lcd_fail > 0:
            try:
                grove_rgb_lcd.setText(msg)
                grove_rgb_lcd.setRGB(0, 0, 0)
                lcd_fail = 0
            except:
                grove_rgb_lcd.textCommand(0x01)
                time.sleep(0.2)
                print("lcd write error, retrying...")
                lcd_fail -= 1
    else:
        print("Invalid message")
Example #9
0
def setColor(time, w, temp, humid):
    ## Hour factor (brightness)
    hr = 0
    ## Temp factor (inc. red)
    tm = 0
    # Humidity factor (inc. blue)
    hm = (clamp(0,humid,100) - 50) * 1.5
    l.setRGB(e(128 + hr + tm), e(128 + hr), e(128 + hr + hm))
Example #10
0
def exit():
    reset()

    lcd.setRGB(100, 100, 100)
    lcd.setText("IOT-DEVICE \nSTOPPING")
    sleep(0.1)
    lcd.setRGB(0, 0, 0)
    lcd.setText("")
Example #11
0
def cleanup():
    print("Cleanup")
    try:
        grovepi.digitalWrite(led, 0)
        lcd.setRGB(0, 0, 0)
        lcd.setText("")
        fobj.close()
    except:
        pass
Example #12
0
def cleanup():
    print("Cleanup")
    try:
        grovepi.digitalWrite(led, 0)
        lcd.setRGB(0, 0, 0)
        lcd.setText("")
        fobj.close()
    except:
        pass
Example #13
0
 def lcd_backlight_color(color_tuple):
     try:
         tuple_colors = color_tuple.split(",")
         setRGB(int(tuple_colors[0]), int(tuple_colors[1]),
                int(tuple_colors[2]))
     except:
         logger.error(
             "Could not set color. Invalid color string: '{}'".format(
                 color_tuple))
Example #14
0
def display(in_str, bgcol=(255, 255, 255), in_lcd=use_lcd):
    print(in_str)
    try:
        if in_lcd:
            lcd.setRGB(bgcol[0], bgcol[1], bgcol[2])
            lcd.setText(in_str)
    except KeyboardInterrupt:
        sys.exit()
    except:
        pass
Example #15
0
def display(in_str, bgcol=(255, 255, 255), in_lcd=use_lcd):
    print(in_str)
    try:
        if in_lcd:
            lcd.setRGB(bgcol[0], bgcol[1], bgcol[2])
            lcd.setText(in_str)
    except KeyboardInterrupt:
        sys.exit()
    except:
        pass
Example #16
0
 def write(self, value):
     self.value = value
     try:
         r, g, b = value["rgb"]
         grove_rgb_lcd.setRGB(r, g, b)
     except KeyError:
         pass
     try:
         text = value["text"]
         grove_rgb_lcd.setText(text)
     except KeyError:
         pass
Example #17
0
 def notify(self, data):
     super(GroveLcdObserver, self).notify(data)
     txt = []
     items = self.latest.items()[self.index : self.index + 4]
     self.index = 0 if self.index + 4 >= len(self.latest) else self.index + 4
     for key, val in items:
         txt += ['{k}:{v}'.format(k=key.upper(),v=int(val['value']))]
     if len(txt) > 1:
         txt = sorted(txt, key=lambda x: len(x))
         grove_rgb_lcd.setText(txt[-1] + " " + txt[0] + "\n" + " ".join(txt[1:-1]))
     else:
         grove_rgb_lcd.setText(txt[0])
     rgb = self.get_level_color(self.get_highest_level(self.latest))
     grove_rgb_lcd.setRGB(*rgb)
Example #18
0
def init():

	lcd.setRGB(0,0,0)
	lcd.setText("IOT-DEVICE \nBOOTING")
	time.sleep(5)

	lcd.setRGB(100,100,100)

	s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	s.connect(("gmail.com",80))
	text=str(s.getsockname()[0])
	s.close()

	while True:

		lcd.setText("IP: " +str(text))
		time.sleep(0.2)
def lcdcallback(client, userdata, msg):
    keyvalue = str(msg.payload, "utf-8")  #w, a, s, or d
    print(keyvalue)
    with lock:
        grove_rgb_lcd.setText_norefresh(f"{keyvalue}")  #display key on lcd
        if keyvalue == "w":
            grove_rgb_lcd.setRGB(255, 255, 255)  #make white
        if keyvalue == "a":
            grove_rgb_lcd.setRGB(255, 0, 0)  #make red
        if keyvalue == "s":
            grove_rgb_lcd.setRGB(0, 255, 0)  #make green
        if keyvalue == "d":
            grove_rgb_lcd.setRGB(0, 0, 255)  #make blue
Example #20
0
def init():
    global started
    global client
    lcd.setRGB(0, 0, 0)
    lcd.setText("IOT-DEVICE \nSTARTING")

    client.on_connect = on_connect
    client.on_message = on_message
    client.connect_async(MQTT_BROKER, 1883, 60)
    client.loop_start()

    # INIT
    reset()
    client.publish("online", makeJsonOnlineObject('Box'))

    sleep(0.1)
    lcd.setRGB(100, 100, 100)
    lcd.setText("LOADING ... ")
    lcd.setText("")
    started = True
Example #21
0
def sensors_test():
    """Test the GrovePi DHT sensor, LEDs and RGB LCD screen."""
    try:
        for y in range(3):
            # Get sensor data and actuate LEDs and RGB LCD screen
            [temp, humid] = grovepi.dht(DHT_SENSOR_PORT, BLUE_DHT)
            if not math.isnan(temp) and not math.isnan(humid):
                if temp >= 20.0:
                    # Temperature is good: Everything is green.
                    grove_rgb_lcd.setRGB(0, 255, 0)
                    grovepi.digitalWrite(GREEN_LED, ON)
                    time.sleep(2)
                    grovepi.digitalWrite(GREEN_LED, OFF)
                else:
                    # Temperature is too low: Turn to red.
                    grove_rgb_lcd.setRGB(255, 0, 0)
                    grovepi.digitalWrite(RED_LED, ON)
                    time.sleep(2)
                    grovepi.digitalWrite(RED_LED, OFF)
                t_str = str(temp)
                h_str = str(humid)
                print("Temperature: {}C | Humidity: {}%".format(t_str, h_str))
                grove_rgb_lcd.setText_norefresh("Tmp: {} C\nHmd: {} %".format(
                    t_str, h_str))
            # For DHT22, wait three seconds before next reading
            time.sleep(3)
            grove_rgb_lcd.setRGB(0, 0, 0)
    except (IOError, TypeError) as ex:
        print("Error: {}".format(str(ex)))
        shutdown_board()
    except KeyboardInterrupt:
        shutdown_board()
    shutdown_board()
Example #22
0
def index():
        try:
                if request.method == "POST":
                        print("Command received")

                        # captures inputted message and clicked color on web page
                        message = request.form['message']
                        color = request.form['color']

                        # takes user's info to print out message and color on screen
                        if message == '':
                                return "No message entered"
                        elif color == 'red':
                                grove_rgb_lcd.setRGB(255, 0, 0)
                                grove_rgb_lcd.setText(message)
                        elif color == 'green':
                                grove_rgb_lcd.setRGB(0, 255, 0)
                                grove_rgb_lcd.setText(message)
                        elif color == 'blue':
                                grove_rgb_lcd.setRGB(0, 0, 255)
                                grove_rgb_lcd.setText(message)

                        print("Command processed")

                        return render_template('monitor.html')

                elif request.method == "GET":
                        return render_template('monitor.html')
        except ValueError:
                return "Not found"
Example #23
0
def init():
	global started
	global client
	client.on_connect = on_connect
	client.on_message = on_message
	client.connect_async("raspberrypi.local", 1883, 60)
	client.loop_start()

	# INIT
	time.sleep(0.50)
	grovepi.digitalWrite(led1,0)
	time.sleep(0.50)
	grovepi.digitalWrite(led2,0)
	time.sleep(0.50)
	grovepi.digitalWrite(led3,0)
	time.sleep(0.50)
	grovepi.digitalWrite(buzzer,0)
	time.sleep(0.50)
	grovepi.digitalWrite(relay,0)
	time.sleep(0.50)
	client.publish("led1_status", 0)
	client.publish("led2_status", 0)
	client.publish("led3_status", 0)
	client.publish("relay_status", 0)
	client.publish("display_status", "")
	client.publish("online", 1)
	time.sleep(2)


	lcd.setRGB(0,0,0)
	lcd.setText("IOT-DEVICE \nSTARTING")
	time.sleep(1)
	lcd.setRGB(100,100,100)
	lcd.setText("LOADING ... ")

	print("\n\nIOT is online\n\n")
	started=True
Example #24
0
def motion():
	time.sleep(0.22)
	try:
		if grovepi.digitalRead(pir_sensor):
			global canEdit
			if canEdit==True:
				lcd.setText("Welkom thuis")
				global isNight
				isNight
				if isNight==True:
					lcd.setRGB(0,0,0)
				else:
					lcd.setRGB(100,100,100)

				display_status=""
			client.publish("motion", 1)

			#time.sleep(5)
		else:
			client.publish("motion", 0)
 
	except (IOError,TypeError) as ex:
		error="Error: " + str(ex)
		print(error)
Example #25
0
def on_message(client, userdata, msg):
    emotion = str(msg.payload, "utf-8")
    
    
    if emotion == "positive":
        lcd.setRGB(255,165,0) #orange
        lcd.setText_norefresh('positive')
    elif emotion == "negative":
        lcd.setRGB(255,255,0) #yellow
        lcd.setText_norefresh('negative')
    else: #neutral
        lcd.setRGB(0,255,0) #green
        lcd.setText_norefresh('neutral')
Example #26
0
def set_display(settings):
        try:
                if settings['display_mode'] == 'post':
                        # sets color on monitor
                        if settings['color'] == 'red':
                                grove_rgb_lcd.setRGB(255, 0, 0)
                        elif settings['color'] == 'green':
                                grove_rgb_lcd.setRGB(0, 255, 0)
                        elif settings['color'] == 'blue':
                                grove_rgb_lcd.setRGB(0,0, 255)

                        # prints out message on display monitor
                        grove_rgb_lcd.setText(settings['message'])

        except ValueError:
                return "Not found"
Example #27
0
def set_display(settings):
    try:
        if settings['display_mode'] == 'post':
            # sets color on monitor
            if settings['color'] == 'red':
                grove_rgb_lcd.setRGB(255, 0, 0)
            elif settings['color'] == 'green':
                grove_rgb_lcd.setRGB(0, 255, 0)
            elif settings['color'] == 'blue':
                grove_rgb_lcd.setRGB(0, 0, 255)

            # prints out message on display monitor
            grove_rgb_lcd.setText(settings['message'])

    except ValueError:
        return "Not found"
Example #28
0
def process_sensor_data(label_names, selected_model, sensor_data):
    """Classify unlabeled sensor data against the selected model and get a prediction.

    :param label_names: The list of labels.
    :type label_names: list
    :param selected_model: The most accurate classifer model in the form of a history object.
    :type selected_model: object
    :param sensor_data: The temperature and humidity data collected, formated with
                        atmospheric pressure, air speed, metabolic rate, and clothing level.
    :type sensor_data: list of tuples
    """
    try:
        sensor_data = ast.literal_eval(sensor_data)
        sensation = 0
        for j, data in enumerate(sensor_data, start=1):
            print("Sensor data #{}: Prediction: {}".format(
                j, label_names[int(selected_model[1].predict(data))]))
            sensation += int(selected_model[1].predict(data))
        sensation = int(sensation / len(sensor_data))
        print("Overall sensation: {} ({})".format(
            sensation, label_names[sensation]))
        grove_rgb_lcd.setText_norefresh(
            "Sensation:\n{} ({})".format(sensation, label_names[sensation]))
        if sensation == 3:
            # Temperature is good: Everything is green.
            grove_rgb_lcd.setRGB(0, 255, 0)
            grovepi.digitalWrite(GREEN_LED, ON)
            time.sleep(2)
            grovepi.digitalWrite(GREEN_LED, OFF)
            grove_rgb_lcd.setRGB(0, 0, 0)
            grove_rgb_lcd.setText_norefresh("")
        else:
            # Temperature is too low: Turn to red.
            grove_rgb_lcd.setRGB(255, 0, 0)
            grovepi.digitalWrite(RED_LED, ON)
            time.sleep(2)
            grovepi.digitalWrite(RED_LED, OFF)
    except (IOError, TypeError) as ex:
        print("Error: {}".format(str(ex)))
        shutdown_board()
    except KeyboardInterrupt:
        shutdown_board()
    time.sleep(3)
    shutdown_board()
Example #29
0
def sensor_test():
    """Collects and displays temperature and humidity data"""
    sensor_data = []

    for x in range(10):
        try:
            for y in range(3):
                [temp, humid] = grovepi.dht(DHT_SENSOR_PORT, BLUE_DHT)
                if not math.isnan(temp) and not math.isnan(humid):
                    if temp >= 20.0:
                        # Temperature is good: Everything is green.
                        grove_rgb_lcd.setRGB(0, 255, 0)
                        grovepi.digitalWrite(GREEN_LED, ON)
                        time.sleep(2)
                        grovepi.digitalWrite(GREEN_LED, OFF)
                    else:
                        # Temperature is too low: Turn to red.
                        grove_rgb_lcd.setRGB(255, 0, 0)
                        grovepi.digitalWrite(RED_LED, ON)
                        time.sleep(2)
                        grovepi.digitalWrite(RED_LED, OFF)
                    t_str = str(temp)
                    h_str = str(humid)
                    print("Temperature: {}C | Humidity: {}%".format(t_str, h_str))
                    grove_rgb_lcd.setText_norefresh(
                        "T: {} C\nH: {} %".format(temp, humid))
                    sensor_data.append([temp, humid])
                # For DHT11, wait three seconds before next reading
                time.sleep(3)
        except (IOError, TypeError) as ex:
            print("Error: {}".format(str(ex)))
            shutdown_board()
        except KeyboardInterrupt:
            shutdown_board()
        print(sensor_data)
        # Wait 30 seconds before collecting next set of data
        grove_rgb_lcd.setRGB(0, 0, 0)
        time.sleep(30)
    shutdown_board()
Example #30
0
def door_status_callback(client, userdata, msg):
    door_status = str(msg.payload, "utf-8")
    if lock_status is 0:
        if door_status == "Motion Detected":
            with lock:
                grove_rgb_lcd.setRGB(255, 165, 0)
                grove_rgb_lcd.setText_norefresh(
                    "Motion Detected \nStatus: Locked  ")
            with lock:
                grovepi.digitalWrite(buzzer, 0)
        elif door_status == "SAFETY MODE":
            with lock:
                grove_rgb_lcd.setRGB(255, 0, 0)
                grove_rgb_lcd.setText_norefresh(
                    "SAFETY MODE     \nStatus: Locked  ")
            with lock:
                grovepi.digitalWrite(buzzer, 1)
        else:
            with lock:
                grove_rgb_lcd.setRGB(255, 255, 255)
                grove_rgb_lcd.setText_norefresh(
                    "No Motion       \nStatus: Locked  ")
            with lock:
                grovepi.digitalWrite(buzzer, 0)
Example #31
0
# read temp
grovepi.temp(7)
grovepi.dht(7, 0)

# module_type:
#             DHT11 0
#             DHT22 1
#             DHT21 2
#             DHT2301 3

# read ultrasonic
grovepi.ultrasonicRead(4)

import grove_rgb_lcd as lcd
# set background to red, green and blue
lcd.setRGB(200, 0, 0)
time.sleep(1)
lcd.setRGB(0, 200, 0)
time.sleep(1)
lcd.setRGB(0, 0, 200)
time.sleep(1)

# write text to RGB
lcd.setText('Hello There')
time.sleep(1)
lcd.setRGB(255, 113, 181)
time.sleep(1)


def ReadDHTandText(dhtport=7):
    [t, h] = grovepi.dht(dhtport, 0)
def lcd_write_str(value):
	#print "Write string: "
	#print value
	grove_rgb_lcd.setRGB(0, 255, 0)
	grove_rgb_lcd.setText(value)
	return 0
Example #33
0
 def setColor(self, r, g, b):
     try:
         grove_rgb_lcd.setRGB(r, g, b)
     except:
         pass
Example #34
0
				print msg
				print "humidity:",humidity
		
		elif msg[:8].lower()=="distance".lower():
			if en_grovepi:
				port=int(msg[8:])
				dist=grovepi.ultrasonicRead(port)
				s.sensorupdate({'distance':dist})
			if en_debug:
				print msg
				print "distance=",dist	
		
		elif msg[:3].lower()=="lcd".lower():
			if en_grovepi:
				import grove_rgb_lcd 
				grove_rgb_lcd.setRGB(0,128,0)
				grove_rgb_lcd.setText(msg[3:])
			if en_debug:
				print msg
			
		elif msg[:10].lower()=="setOutput".lower():
			if en_grovepi:
				port=int(msg[10:])
				a_read=grovepi.analogRead(port)
				s.sensorupdate({'analogRead':a_read})
			if en_debug:
				print msg
				print "Analog Reading: " + str(a_read)		
				
		else:
			if en_debug:
Example #35
0
def on_connect(client, userdata, flags, rc):
    print("Connected to server (i.e., broker) with result code " + str(rc))
    client.subscribe("anrg-pi1/led")
    client.message_callback_add("anrg-pi1/led", ledCallBack)
    client.subscribe("anrg-pi1/lcd")
    client.message_callback_add("anrg-pi1/lcd", lcdCallBack)
    client.subscribe("anrg-pi1/tempreture")
    client.subscribe("anrg-pi1/humidity")


def on_message(client, userdata, msg):
    print("on_message: " + msg.topic + " " + str(msg.payload))


if __name__ == '__main__':
    #this section is covered in publisher_and_subscriber_example.py
    grove_rgb_lcd.setRGB(0, 64, 128)
    client = mqtt.Client()
    client.on_message = on_message
    client.on_connect = on_connect
    client.connect(host="eclipse.usc.edu", port=11000, keepalive=60)
    client.loop_start()
    while True:
        #read tempreture sensor
        #publish it

        #read humidity sensor
        #publish it

        time.sleep(1)
Example #36
0
 def lcd_backlight(state):
     """ Turn the backlight on or off """
     if state:
         setRGB(255, 255, 255)
     else:
         setRGB(0, 0, 0)
Example #37
0
 def lcd_init():
     """ Initialize LCD display """
     setRGB(255, 255, 255)
    client = mqtt.Client()
    client.on_message = on_message
    client.on_connect = on_connect
    client.connect(host="eclipse.usc.edu", port=11000, keepalive=60)
    client.loop_start()

    #initiate ports
    button = 2
    ultrasonic_ranger = 3
    led = 4

    grovepi.pinMode(button, "INPUT")

    #splashscreen
    with lock:
        grove_rgb_lcd.setRGB(255, 255, 255)
        grove_rgb_lcd.setText("Tim & Andrew\nEE 250")
        time.sleep(2)
        grove_rgb_lcd.setText("")

    while True:
        with lock:
            rangervalue = grovepi.ultrasonicRead(
                ultrasonic_ranger)  #check ranger reading
        client.publish("timandrew/ultrasonicRanger",
                       rangervalue)  #publish value to ultrasonicRanger topic
        with lock:
            buttonvalue = grovepi.digitalRead(button)  #check button reading
        if buttonvalue:
            client.publish(
                "timandrew/button", "Button pressed!"
Example #39
0
is, if you run `python3 grovepi_sensors.py` in terminal, this if-statement will 
be true"""
t = grove_i2c_temp_hum_mini.th02()
t.getTemperature = protect(t.getTemperature)
t.getHumidity = protect(t.getHumidity)

if __name__ == '__main__':
    PORT = 4  # D4
    PORTR = 0
    PORTW = 1
    ldis = -1
    lsen = -1
    while True:
        #So we do not poll the sensors too quickly which may introduce noise,
        #sleep for a reasonable time of 200ms between each iteration.
        time.sleep(0.8)
        #try:
        temp = t.getTemperature()
        humid = t.getHumidity()
        #except TypeError:
        #        print ("Error")
        time.sleep(0.1)
        grove_rgb_lcd.setText(" " + str(temp) + "cm \n " + str(humid) + "cm")
        grove_rgb_lcd.setRGB(0, 255, 0)
        buf = list("Grove -Update without erase")
        grove_rgb_lcd.setText("".join(buf))
        for i in range(len(buf)):
            buf[i] = "."
            grove_rgb_lcd.setText_norefresh("".join(buf))
            time.sleep(.1)
Example #40
0
                print msg
                print "humidity:", humidity

        elif msg[:8].lower() == "distance".lower():
            if en_grovepi:
                port = int(msg[8:])
                dist = grovepi.ultrasonicRead(port)
                s.sensorupdate({'distance': dist})
            if en_debug:
                print msg
                print "distance=", dist

        elif msg[:3].lower() == "lcd".lower():
            if en_grovepi:
                import grove_rgb_lcd
                grove_rgb_lcd.setRGB(0, 128, 0)
                grove_rgb_lcd.setText(msg[3:])
            if en_debug:
                print msg

        elif msg[:10].lower() == "setOutput".lower():
            if en_grovepi:
                port = int(msg[10:])
                a_read = grovepi.analogRead(port)
                s.sensorupdate({'analogRead': a_read})
            if en_debug:
                print msg
                print "Analog Reading: " + str(a_read)
        elif msg.lower() == "READ_IR".lower():
            print "READ_IR!"
            if en_ir_sensor == 0:
Example #41
0
def shutdown_board():
    """Turns off LEDs and clears LCD screen"""
    grovepi.digitalWrite(RED_LED, OFF)
    grovepi.digitalWrite(GREEN_LED, OFF)
    grove_rgb_lcd.setRGB(0, 0, 0)
    grove_rgb_lcd.setText_norefresh("")
Example #42
0
			if en_debug:
				print msg
				print "distance=",dist	
		
		elif msg[:3].lower()=="lcd".lower():
			if en_grovepi:
				if en_debug:
					print msg[:3], msg[3:6],msg[6:]
				import grove_rgb_lcd 
				if msg[3:6].lower() == "col".lower():
					rgb = []
					for i in range(0,6,2): 
						rgb.append(int(msg[6:][i:i+2],16))  # convert from one hex string to three ints
					if en_debug:
						print "colours are:",rgb[0],rgb[1],rgb[2]
					grove_rgb_lcd.setRGB(rgb[0],rgb[1],rgb[2])
				elif msg[3:6].lower() == "txt".lower():
					txt = msg[6:]
					grove_rgb_lcd.setText(txt)
				else:
					pass
			if en_debug:
				print msg
			
		elif msg[:10].lower()=="setOutput".lower():
			if en_grovepi:
				port=int(msg[10:])
				a_read=grovepi.analogRead(port)
				s.sensorupdate({'analogRead':a_read})
			if en_debug:
				print msg
Example #43
0
def main():
    global desired_temp_min 
    global desired_temp_max    
    global indoor_temp 
    global outdoor_temp 
    global temp 
    global desired_temp 
    global mode 
    global hvac 
    global wind_on
    global wind_off
    global i
    global flag

    read()

    while True:
        try:
            # Get indoor temp
            indoor_temp = int(get_indoor_temp())
            
            # lcd sleep after 5 seonds
            time.sleep(.2)
            button_status = grovepi.digitalRead(button)
            i = i + 1

            # if lcd is off turn on, if lcd is on change mode and sound buzzer
            # lcd sleep after 5 seconds
            if i < 6:
                if button_status:     
                    i = 0
                    lcd.setRGB(0,122,0)
                    grovepi.digitalWrite(buzzer_pin, 1)
                    time.sleep(.1)
                    grovepi.digitalWrite(buzzer_pin, 0)                    
                    if (mode <= 2):
                        mode = mode + 1
                    else:
                        mode = 0
            else:
                lcd.setRGB(0,0,0)
                print("asleep")
                if button_status:
                    i = 0
                    lcd.setRGB(0,122,0)
     
            # state machine for window
            if (indoor_temp > desired_temp):
                if (outdoor_temp < desired_temp):
                    if hvac != "wind":
                        # send open window
                        client.publish("rpi-jaeishin/HVAC", str(wind_on))
                        print(wind_on)
                    hvac = "wind"
                else:
                    if hvac == "wind":
                        # send close window
                        client.publish("rpi-jaeishin/HVAC", str(wind_off))
                        print(wind_off)
                    hvac = "AC"

            if (indoor_temp < desired_temp):
                if (outdoor_temp < desired_temp):
                    if hvac == "wind":
                        # send close window
                        client.publish("rpi-jaeishin/HVAC", str(wind_off))
                        print(wind_off)
                    hvac = "heat"
                else:
                    if hvac != "wind":
                        # send open window
                        client.publish("rpi-jaeishin/HVAC", str(wind_on))
                        print(wind_on)
                    hvac = "wind"

            if (indoor_temp == desired_temp):
                # send message close window
                if hvac == "wind":
                    client.publish("rpi-jaeishin/HVAC", str(wind_off))
                    print(wind_off)
                hvac = "fan"

            # measure outdoor temp from API
            outdoor_temp = int(get_weather(DEFAULT_ZIP))


            # Set LED to print in correct format

            #default
            if (mode == 1):
                print ("\nmode = 1 - Default")
                print("Temp: {:>3}F  {:>4}".format(indoor_temp, hvac))
                print("Desired: {:>3}F".format(desired_temp))
                lcd.setText_norefresh("Temp: {:>3}F {:>4}\nDesired: {:>3}F".format(indoor_temp, hvac, desired_temp))
                f=open('save.txt', 'w+')
                f.write(str(desired_temp))
                f.close()           
 
            #outdoor
            if (mode == 2):
                print("\nmode = 2 - Outdoor")
                print("Temp: {:>3}F {:>4}".format(indoor_temp, hvac))
                print("Outdoor: {:>3}F".format(outdoor_temp))
                lcd.setText_norefresh("Temp: {:>3}F {:>4}\nOutdoor: {:>3.2f}F".format(indoor_temp, hvac, outdoor_temp))
            
            #edit
            if (mode == 0):
                print("\nmode = 0 - Edit")
                # get rotary angle set desired temp
                desired_temp = get_rotary_angle()
                print("Set Temp: {:>3}F".format(desired_temp)) 
                lcd.setText_norefresh("Set Temp:{:>3}F".format(desired_temp))

        except KeyboardInterrupt:
            lcd.setRGB(0,0,0)
            setText_norefresh("")
            break