Exemple #1
0
def lose():
    global LoseFlag
    global EndFlag
    EndFlag = True
    lcd.setText("You lose!")
    lcd.setRGB(32, 0, 0)
    LoseFlag = False
Exemple #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)
Exemple #3
0
def win():
    global WinFlag
    global EndFlag
    EndFlag = True
    lcd.setText("You win!")
    lcd.setRGB(0, 32, 0)
    WinFlag = False
Exemple #4
0
    def display(self):
	global messages
        global address
	for message in messages:
	    if not message: message = address
            grove_rgb_lcd.setText("%s" %  message)
 	    os.sleep(self.delay)
Exemple #5
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.")
Exemple #6
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)
Exemple #7
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")
Exemple #8
0
def exit():
    reset()

    lcd.setRGB(100, 100, 100)
    lcd.setText("IOT-DEVICE \nSTOPPING")
    sleep(0.1)
    lcd.setRGB(0, 0, 0)
    lcd.setText("")
Exemple #9
0
def cleanup():
    print("Cleanup")
    try:
        grovepi.digitalWrite(led, 0)
        lcd.setRGB(0, 0, 0)
        lcd.setText("")
        fobj.close()
    except:
        pass
Exemple #10
0
def cleanup():
    print("Cleanup")
    try:
        grovepi.digitalWrite(led, 0)
        lcd.setRGB(0, 0, 0)
        lcd.setText("")
        fobj.close()
    except:
        pass
Exemple #11
0
def reset():
    global realtimeData

    for port in ports:
        digitalWrite(port, 0)
        sleep(0.1)

    realtimeData = []
    isReading = False
    lcd.setText("")
Exemple #12
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
Exemple #13
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
 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
Exemple #15
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)
Exemple #16
0
 def lcd_write_lines(line_1, line_2, line_3, line_4):
     msg = ""
     if line_1:
         msg += line_1
     msg += "\n"
     if line_2:
         msg += line_2
     msg += "\n"
     if line_3:
         msg += line_3
     msg += "\n"
     if line_4:
         msg += line_4
     setText(msg)
Exemple #17
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"
Exemple #18
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"
def lcdcallback(client,userdata,msg):
    freq = int(str(msg.payload, "utf-8"))
    while True:
        buttonpress = grovepi.digitalRead(button)
        if(buttonpress):
            print("buttonpressed")
            for i in tones:
                #if(note_produced == tones[i]):
                #if(freq - 20 < tones[i] < freq + 20):
                if(abs(freq - tones[i]) <= 20):
                    grove_rgb_lcd.setText(i)
                    
                    break 


    client.subscribe("theduo/defaultCallback")
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)
Exemple #21
0
def main(file):
    print("Importing {}".format(file))
    audio = AudioSegment.from_mp3(file)

    sample_count = audio.frame_count()
    sample_rate = audio.frame_rate
    samples = audio.get_array_of_samples()

    print("Number of channels: " + str(audio.channels))
    print("Sample count: " + str(sample_count))
    print("Sample rate: " + str(sample_rate))
    print("Sample width: " + str(audio.sample_width))

    period = 1 / sample_rate  #the period of each sample
    duration = sample_count / sample_rate  #length of full audio in seconds

    slice_sample_size = int(
        SLICE_SIZE * sample_rate
    )  #get the number of elements expected for [SLICE_SIZE] seconds

    n = slice_sample_size  #n is the number of elements in the slice

    #generating the frequency spectrum
    k = np.arange(n)  #k is an array from 0 to [n] with a step of 1
    slice_duration = n / sample_rate  #slice_duration is the length of time the sample slice is (seconds)
    frq = k / slice_duration  #generate the frequencies by dividing every element of k by slice_duration

    #max_frq_idx = int(MAX_FRQ*slice_duration)       #get the index of the maximum frequency (2000)
    frq = frq[range(
        5000)]  #truncate the frequency array so it goes from 0 to 5000 Hz
    note_produced = int(statistics.mean(frq))
    print(note_produced)
    #grovepi.pinMode(buzzer,"OUTPUT")
    while True:
        buttonpress = grovepi.digitalRead(button)
        if (buttonpress):
            print("buttonpressed")
            for i in tones:
                if (note_produced == tones[i]):
                    grove_rgb_lcd.setText(i)
                    break
Exemple #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"
Exemple #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
Exemple #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)
Exemple #25
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
Exemple #26
0
#!/usr/bin/env python
import time
from grovepi import pinMode, digitalRead
from grove_rgb_lcd import setText, setRGB

# Connect the Grove Button to digital port D3
# SIG,NC,VCC,GND
button = 3

pinMode(button, "INPUT")

setText("READY")
setRGB(0, 0, 255)

while True:
    try:
        state = digitalRead(button)

    except IOError:
        print("Button Error")

    time.sleep(.1)
    if state == 1:
        print("button pushed")
        break

setText("Done!")
setRGB(0, 255, 0)
Exemple #27
0
# 3-axis digital accelerometer 16g at address 53
from adxl345 import ADXL345

adxl345 = ADXL345()
print("ADXL345 on address 0x%x:" % (adxl345.address))

# Shock sensor 
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
SHOCK_PIN = 17
GPIO.setup(SHOCK_PIN, GPIO.IN)

from netifaces import interfaces, ifaddresses, AF_INET
address = ifaddresses('wlan0').setdefault(AF_INET, [{'addr':'No IP addr'}])[0]['addr']
import grove_rgb_lcd 
grove_rgb_lcd.setText("%s" % address)
print("%s Sensors starting up" % datetime.datetime.now().isoformat())

while True:
    try:
        # Read the sound level
        loudness = grovepi.analogRead(loudness_sensor)
        #if debug: print("loudness sensor value =", loudness)

        # Get accelerometer values
        if False:  # disable because always returns 0
            acc=acc_mag.getRealAccel()
            # Read the heading (6-axis accelerometer/gyro)
            heading= acc_mag.getHeading()
            if debug: print("Acceleration of X,Y,Z is %.3fg, %.3fg, %.3fg" %(acc[0],acc[1],acc[2]))
            if debug: print("Heading %.3f degrees\n" %(heading))
def lcd_write_str(value):
	#print "Write string: "
	#print value
	grove_rgb_lcd.setRGB(0, 255, 0)
	grove_rgb_lcd.setText(value)
	return 0
    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!"
            )  #if button is pressed, publish string to button topic
Exemple #30
0
def readTH():
    temp = float("nan")
    humid = float("nan")
    while (math.isnan(temp) or math.isnan(humid)):
        try:
            [temp,humid]=g.dht(7,0)
        except:
            print(time.ctime(t))
            print(traceback.format_exc())
    return [temp, humid]

while True:
    try:
	[temp, humid] = readTH()
	t = time.time()
        s = time.localtime(t)
        w = Weather("Neuilly-Plaisance", "fr")
        w.update(t)
        w.bulletin[u"home"] = {u"temp": temp, u"humidity": humid}
        w.bulletin[u"time"] = props(s)
	setColor(s, w, temp, humid)
	l.setText("Ext: {:s}C {:s}%\nInt: {:s}C {:s}%".format( \
                  *repl0((w.m["temp"], w.m["humidity"], temp, humid))))
        logAll(t, w, temp, humid)
    except:
        print(time.ctime(t))
        print(traceback.format_exc())
    time.sleep(60)

                "temperature": tempc,
                "humidity": hum,
                "range": ranger,
                "degrees": degrees
            }
        }
        #local_client.publish('SNHU/IT697/sensor/data/json', json.dumps(publish_data))
        local_client.publish('SNHU/IT697/sensor/data/' + uuid,
                             json.dumps(publish_data))
        # remote_client.publish('SNHU/IT697/jeffrey_cutter_snhu_edu/sensor/data/json', json.dumps(publish_data))

        # Delay between updates.
        time.sleep(10)

        # Keep line spacing consistent in debug mode.
        if debug:
            print

except KeyboardInterrupt as e:
    if debug:
        print type(e)

finally:
    print "Turning display off"
    grove_rgb_lcd.setText('')
    grove_rgb_lcd.setRGB(0, 0, 0)
    print "Turning LEDs off"
    grovepi.analogWrite(RED_LED, 0)
    grovepi.analogWrite(GREEN_LED, 0)
    grovepi.analogWrite(BLUE_LED, 0)
Exemple #32
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)
Exemple #33
0
 def display(self):
     grove_rgb_lcd.setText(self.memory)
                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:
                import lirc
def display(word):
    grove_rgb_lcd.setText(word)
    grove_rgb_lcd.setRGB(250, 128, 114)
Exemple #36
0
#             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)
    msg = f'temp: {t}C\nhumidity: {h}%'
    print(msg)
    lcd.setText_norefresh(msg)


def FadeLed(pin=5):
    # set pin mode to output
    grovepi.pinMode(pin, 'OUTPUT')
Exemple #37
0
def lcdCallBack(client, userdata, message):
    grove_rgb_lcd.setText(str(message.payload, "utf-8"))
def shutdown():
    lcd.setText('')
    lcd.setRGB(0, 0, 0)
Exemple #39
0
				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:
				print "m",msg
Exemple #40
0
def on_message(client, userdata, msg):
	global led1_status
	global led2_status
	global led3_status
	global relay_status
	global display_status

	#print(msg.topic+" "+str(msg.payload))
	if msg.topic=="load_status":
		if str(msg.payload)=="true":
			print('led1:' + str(led1_status))
			print('led2:' + str(led2_status))
			print('led3:' + str(led3_status))
			client.publish("led1_status", getStatusBool(led1_status))
			client.publish("led2_status", getStatusBool(led2_status))
			client.publish("led3_status", getStatusBool(led3_status))
			client.publish("relay_status", getStatusBool(led3_status))
			client.publish("display_status", display_status)


	if msg.topic=="led1":
		ok=grovepi.digitalRead(led1)
		time.sleep(1.5)
		if str(msg.payload)=="true" :

			if str(ok)=="0":
				grovepi.digitalWrite(led1,1)
			if str(ok)=="1":
				grovepi.digitalWrite(led1,1)
			else:
				grovepi.digitalWrite(led1,1)

			time.sleep(0.5)
			client.publish("led1_status", 1)
			led1_status=True

		if str(msg.payload)=="false":

			if str(ok)=="0":
				grovepi.digitalWrite(led1,0)
			if str(ok)=="1":
				grovepi.digitalWrite(led1,0)
			else:
				grovepi.digitalWrite(led1,0)

			time.sleep(0.8)
			client.publish("led1_status", 0)
			led1_status=False

	if msg.topic=="led2":
		ok=grovepi.digitalRead(led2)
		time.sleep(1.5)
		if str(msg.payload)=="true":

			if str(ok)=="0":
				grovepi.digitalWrite(led2,1)
			if str(ok)=="1":
				grovepi.digitalWrite(led2,1)
			else:
				grovepi.digitalWrite(led2,1)

			time.sleep(0.5)
			client.publish("led2_status", 1)
			led2_status=True

		if str(msg.payload)=="false":

			if str(ok)=="0":
				grovepi.digitalWrite(led2,0)
			if str(ok)=="1":
				grovepi.digitalWrite(led2,0)
			else:
				grovepi.digitalWrite(led2,0)

			time.sleep(0.8)
			client.publish("led2_status", 0)
			led2_status=False


	if msg.topic=="led3":
		ok=grovepi.digitalRead(led3)
		time.sleep(1.5)
		if str(msg.payload)=="true":

			if str(ok)=="0":
				grovepi.digitalWrite(led3,1)
			if str(ok)=="1":
				grovepi.digitalWrite(led3,1)
			else:
				grovepi.digitalWrite(led3,1)

			time.sleep(0.8)
			client.publish("led3_status", 1)
			led3_status=True

		if str(msg.payload)=="false":

			if str(ok)=="0":
				grovepi.digitalWrite(led3,0)
			if str(ok)=="1":
				grovepi.digitalWrite(led3,0)
			else:
				grovepi.digitalWrite(led3,0)

			time.sleep(0.8)
			client.publish("led3_status", 0)
			led3_status=False


	if msg.topic=="display":
		if str(msg.payload)=="":
			global canEdit
			canEdit=True
		else:
			global canEdit
			canEdit=False
			lcd.setText(str(msg.payload))
			display_status=str(msg.payload)
			client.publish("display_status", str(msg.payload))
		time.sleep(0.5)


	if msg.topic=="relay":
		ok=grovepi.digitalRead(relay)
		time.sleep(1.5)
		if str(msg.payload)=="true":

			if str(ok)=="0":
				grovepi.digitalWrite(relay,1)
			if str(ok)=="1":
				grovepi.digitalWrite(relay,1)
			else:
				grovepi.digitalWrite(relay,1)

			time.sleep(0.8)
			client.publish("relay_status", 1)
			relay_status=True
Exemple #41
0
 def _print(self, string):
     self.memory = str(string)
     grove_rgb_lcd.setText(self.toString(string))
Exemple #42
0
 def clear(self):
     self.memory = ""
     grove_rgb_lcd.setText("")
Exemple #43
0
if __name__ == '__main__':

    #LED on D4 port
    LED = 4
    grovepi.pinMode(LED,"OUTPUT")

    #ultrasonic on D3 port
    ultrasonic_ranger = 3

    #button on D2 port
    button = 2
    grovepi.pinMode(button,"INPUT")
    #button_test = 1 # for testing purposes

    #clear screen
    grove_rgb_lcd.setText("")

    #this section is covered in publisher_and_subscriber_example.py
    client = mqtt.Client()
    client.led_callback = led_callback
    client.lcd_callback = lcd_callback
    client.on_connect = on_connect
    client.connect(host="eclipse.usc.edu", port=11000, keepalive=60)
    client.loop_start()

    while True:
        
        # publish ultrasonic ranger distance
        #dist_int = 0 #for testing purposes w/o grovepi
        dist_int = grovepi.ultrasonicRead(ultrasonic_ranger)
        client.publish("tinabao/ultrasonicCallback", dist_int)
Exemple #44
0
 def noDisplay(self):
     grove_rgb_lcd.setText("")
Exemple #45
0
            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
                print "Analog Reading: " + str(a_read)
        elif msg.lower() == "READ_IR".lower():
            print "READ_IR!"
Exemple #46
0
		
		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
				print "Analog Reading: " + str(a_read)		
		elif msg.lower()=="READ_IR".lower():
			print "READ_IR!" 
Exemple #47
0
import grove_rgb_lcd

from netifaces import interfaces, ifaddresses, AF_INET
address = ifaddresses('wlan0').setdefault(AF_INET, [{'addr':'No IP addr'}])[0]['addr']
#print("%s Sensors starting up" % datetime.datetime.now().isoformat())
grove_rgb_lcd.setText("%s" % address)
messages = []

class displayThread(threading.Thread):
    def __init__(self, threadID, name, delay=1):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.delay = delay
    def run(self):
        print "Starting " + self.name
        # Get lock to synchronize threads
        threadLock.acquire()
        self.display()
        # Free lock to release next thread
        threadLock.release()

    def display(self):
	global messages
        global address
	for message in messages:
	    if not message: message = address
            grove_rgb_lcd.setText("%s" %  message)
 	    os.sleep(self.delay)