def main(): # Initialization stuff sense = SenseHat() sense.low_light = True # Display a random pixel matrix pixelValues = [ [ random.randint( 0, 255 ) for j in range( 3 ) ] for i in range( 64 ) ] sense.set_pixels( pixelValues ) time.sleep( 3 ) # Create a colour 'beat' for i in range( 3 ): sense.clear( 255, 0, 0 ) time.sleep ( 0.333 ) sense.clear( 0, 255, 0 ) time.sleep ( 0.333 ) sense.clear( 0, 0, 255 ) time.sleep ( 0.333 ) # Toy around with text display message = "Einfach Mensch..." sense.show_message( message, 0.05 ) rotation = 0 for letter in message: sense.set_rotation( rotation, False ) rotation += 90 if rotation == 270: rotation = 0 sense.show_letter( letter ) time.sleep( 0.24 ) sense.clear()
class SenseHatLedActivator(threading.Thread): enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None def __init__(self, rotateDeg=270, rateInSec=1): super(SenseHatLedActivator, self).__init__() if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) def run(self): if self.enableLed: if self.displayMsg != None: self.sh.show_message(str(self.displayMsg)) else: self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() def getRateInSeconds(self): return self.rateInSec def setEnableLedFlag(self, enable): self.sh.clear() self.enableLed = enable def setDisplayMessage(self, msg): self.displayMsg = msg
class SenseHatLedActivator(threading.Thread): ''' classdocs ''' def __init__(self): ''' Constructor ''' self.sh = SenseHat() self.red = (255, 0, 0) self.blue = (0, 0, 255) ''' If current temperature exceeds the 'nominalTemp, a red letter 'H' representing 'Hot' will show on the LED for 1 second, If current temperature falls below the 'nominalTemp, a blue letter 'C' representing 'Cool' will show on the LED for 1 second, After that, the LED will show current Temperature value ''' def run(self, temp): self.sh.show_letter("H") #self.sh.show_letter("H",self.red) sleep(1) self.msg = str(temp) + ' ' + chr(176) + 'C' self.sh.show_message(self.msg) #self.sh.show_message(self.msg,scroll_speed=0.3) def run2(self, temp): self.sh.show_letter("C") #self.sh.show_letter("C",self.blue) sleep(1) self.msg = str(temp) + ' ' + chr(176) + ' C' self.sh.show_message(self.msg)
def run(self): while True: if self.flag == True: sense = SenseHat() tempData = sense.get_temperature() if tempData > 0: sense.show_letter("A", red) print("Sending notification...") # sen. sen.publishMessage("topic", 'data') # sen.publishMessage("Alert:","Temperature read") print("Message sent...") else: sense.clear() # acceleration = sense.get_accelerometer_raw() # x = acceleration['x'] # y = acceleration['y'] # z = acceleration['z'] # # x = abs(x) # y = abs(y) # z = abs(z) # # if x > 1 or y > 1 or z > 1: # sense.show_letter("A", red) # print("Sending notification...") # sen.publishMessage("Alert:", "Intruder detected") # print("Message sent.!") # else: # sense.clear() print('Please wait for ') sleep(self.rateInSec)
class ledManager: def __init__(self): rospy.init_node('led_node', anonymous=False) rospy.on_shutdown(self.shutdown) self.sub_plc = rospy.Subscriber('/plc', plc_msgs, self.plc_handler) self.plc = plc_msgs() self.sense = SenseHat() self.sense.clear() self.flag = False rate = rospy.Rate(10) while not rospy.is_shutdown(): if self.plc.flag: call("sudo shutdown -h now", shell=True) self.sense.show_message('Shutdown', text_colour=[255, 255, 255]) rospy.signal_shutdown('') else: self.sense.set_rotation(led_dat[self.plc.adrs][1]) if led_dat[self.plc.adrs][3]: self.sense.show_message( '<-', text_colour=led_dat[self.plc.adrs][2]) else: self.sense.show_letter( led_dat[self.plc.adrs][0], text_colour=led_dat[self.plc.adrs][2]) rate.sleep() def shutdown(self): pass def plc_handler(self, msg): self.plc = msg
def run(self): while True: if self.flag == True: sense = SenseHat() acceleration = sense.get_accelerometer_raw() tempData = sense.get_temperature() humidData = sense.get_humidity() pressureData = sense.get_pressure() x = acceleration['x'] y = acceleration['y'] z = acceleration['z'] x = abs(x) y = abs(y) z = abs(z) print("Temperature - ", tempData, "Pressure - ", pressureData, "Humidity - ", humidData) if x > 1 or y > 1 or z > 1: sense.show_letter("!", blue) print("Sending notification...") sen.publishMessage("Alert", humidData) print("Message sent.!") else: sense.clear() print('Please wait for ') sleep(self.rateInSec)
class SenseHatLedActivator(threading.Thread): ''' This class is designed to display the appropriate message on SenseHat @param enableLed: boolean to set the led flag @param sleepTimeLed: Thread sleep duration @param senseHatInst: SensorHat instance @param screenMsg: The message to display ''' enableLed = False sleepTimeLed = 1 rotateDeg = 270 senseHatInst = None screenMsg = None def __init__(self): ''' Constructor ''' ''' This method is used to set the display message and set up the Sensehat LED Matrix ''' super(SenseHatLedActivator, self).__init__() if self.sleepTimeLed > 0: self.sleepTimeLed = self.sleepTimeLed if self.rotateDeg >= 0: self.rotateDeg = self.rotateDeg self.senseHatInst = SenseHat() self.senseHatInst.set_rotation(self.rotateDeg) def run(self): ''' function called when thread starts this method is used to display the message based on the input conditions ''' while True: if self.enableLed: if self.screenMsg != None: self.senseHatInst.show_message(str(self.screenMsg), scroll_speed = 0.05) else: self.senseHatInst.show_letter(str('X')) sleep(self.sleepTimeLed) self.senseHatInst.clear() sleep(self.sleepTimeLed) def getSleepTimeLed(self): return self.sleepTimeLed def setEnableLedFlag(self, enable): self.senseHatInst.clear() self.enableLed = enable def setDisplayMessage(self, msg): self.screenMsg = msg
def app(text): sense = SenseHat() for letter in text: sense.show_letter(letter, text_colour=random_color()) time.sleep(0.4) sense.show_message(text, scroll_speed=0.05, text_colour=random_color())
class SenseHatLedActivator(threading.Thread): ''' Configuration for display on SenseHat ''' enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None ''' Constructor ''' def __init__(self, rotateDeg=270, rateInSec=1): super(SenseHatLedActivator, self).__init__() if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) ''' Thread for displaying LED messages. When nothing to display in displayMsg, it will show R else it will show displayMsg content ''' def run(self): if self.enableLed: if self.displayMsg != None: self.sh.show_message(str(self.displayMsg)) else: self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() sleep(self.rateInSec) ''' This function returns the rate at which reading is fetched per seconds ''' def getRateInSeconds(self): return self.rateInSec ''' Enables the LED Flag adaptor ''' def setEnableLedFlag(self, enable): self.sh.clear() self.enableLed = enable ''' Sets the display message to be shown on LED display ''' def setDisplayMessage(self, msg): self.displayMsg = msg
class SenseHatLedActivator(threading.Thread): enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None ''' Constructor @param rotateDeg: Orientation for senseHat (default) @param rateInSec: Rate of obtaining data from sense hat @summary: Initialize sense hat sensor and set the orientation ''' def __init__(self, rotateDeg = 270, rateInSec = 1): super(SenseHatLedActivator, self).__init__() if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) ''' Running thread @summary: Continuously obtain data from code at defined rate to display on sense hat. Set condition for displaying data on sense hat ''' def run(self): while True: if self.enableLed: if self.displayMsg != None: self.sh.show_message(str(self.displayMsg)) else: self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() sleep(self.rateInSec) ''' Define frequency of obtaining data @return: rate of sensing data ''' def getRateInSeconds(self): return self.rateInSec ''' Switch for sense hat @param enable: Switch status - ON or OFF ''' def setEnableLedFlag(self, enable): self.sh.clear() self.enableLed = enable ''' Method to display message ''' def setDisplayMessage(self, msg): self.displayMsg = msg
def main(): topic = "{}{}".format(TOPIC, DEVICE_LABEL) mqtt_client = mqttClient.Client() while True: ''' Create sense hat object''' sense = SenseHat() acceleration = sense.get_accelerometer_raw() tempData = sense.get_temperature() humidData = sense.get_humidity() pressureData = sense.get_pressure() ''' Obtain acceleration information''' x1 = acceleration['x'] y1 = acceleration['y'] z1 = acceleration['z'] ''' Obtain absolute value to indicate motion''' x = abs(x1) y = abs(y1) z = abs(z1) ''' Send data to sensor object in order to send to email''' sensor.addValue(tempData, pressureData, humidData) print("Sending sensor data...") sen.publishMessage("Updated sensor information", sensor) print("Temperature - ", tempData, "Pressure - ", pressureData, "Humidity - ", humidData) ''' Condition to send intrusion detection information''' if x > 1 or y > 1 or z > 1: sense.show_letter("!", red) print("Sending notification...") sen.publishMessage("Alert", "Intruder Detected") print("Message sent.!") ''' Turn the speaker ON and start playing music''' # pygame.mixer.music.play() # time.sleep(10) # pygame.mixer.music.pause() ''' Create payload by dumping sensor data information in json object and publish''' payload = json.dumps({"Temperature": tempData, "Pressure":pressureData, "Humidity":humidData, "acc_x":x, "acc_y":y, "acc_z":z}) if not connect(mqtt_client, MQTT_USERNAME, MQTT_PASSWORD, BROKER_ENDPOINT, TLS_PORT): return False publish(mqtt_client, topic, payload) time.sleep(5) ''' Clear the information from sense hat''' sense.clear() return True
def display(file_Json): sense = SenseHat() temperature_max, temperature_min = display.read_Json(file_Json) sensehat_temp = database.getData() if (sensehat_temp < temperature_min): sense.show_letter(display.cold) elif (sensehat_temp > temperature_min and sensehat_temp < temperature_max): sense.set_pixels(display.comfortable) elif (sensehat_temp > temperature_max): sense.set_pixels(display.hot)
async def handle(self, context: RequestContext, responder: BaseResponder): """ Message handler logic for basic messages. Args: context: request context responder: responder callback """ self._logger.debug( f"DisplayMessageHandler called with context {context}") assert isinstance(context.message, DisplayLetter) self._logger.info("Received letter: %s", context.message.letter) letter = context.message.letter back_colour = context.message.back_colour text_colour = context.message.text_colour meta = { "letter": letter, "text_colour": text_colour, "back_colour": back_colour } conn_mgr = ConnectionManager(context) await conn_mgr.log_activity( context.connection_record, "display_letter", context.connection_record.DIRECTION_RECEIVED, meta, ) await responder.send_webhook( "display_letter", { "message_id": context.message._id, "letter": letter, "state": "received" }, ) sense = SenseHat() sense.clear() sense.show_letter(letter, text_colour=text_colour, back_colour=back_colour) reply_msg = BasicMessage(content="DisplayLetter message received") await responder.send_reply(reply_msg) await conn_mgr.log_activity( context.connection_record, "message", context.connection_record.DIRECTION_SENT, {"content": "reply"}, )
def main(): sense = SenseHat() option = "1" sense.clear() task1 = AnimatedEmoji() task2 = Temperature() task3a = ElectronicDie() task3b = Game() exit = False sense.show_message("Menu - Use Joystick") sense.show_message("Exit - Hold down joystick") while exit==False: for event in sense.stick.get_events(): # Check for when the jostick is pressed if event.action == "held": if event.direction == "down": sense.show_message("Exiting system") exit = True return if event.action == "pressed": sense.clear() # Check the button direction # 1. Left for Task 1 if event.direction == "left": option = "1" sense.show_message("1. Emoji") # 2. Up for Task 2 elif event.direction == "up": option = "2" sense.show_message("2. Temp") # 3. Right for Task 3.A elif event.direction == "right": option = "3" sense.show_message("3. Dice") # 4. Down for Task 3.B elif event.direction == "down": option = "4" sense.show_message("4. Game") # Select for the option elif event.direction == "middle": sense.show_letter(option) if option == "1": task1.runEmojis() elif option == "2": task2.execute() elif option == "3": task3a.runDie() elif option == "4": task3b.runGame() # Wait a while and then clear the screen sleep(0.5) sense.clear()
class SenseHatLedActivator(threading.Thread): ''' Initializing values to be used in the SensehatLED activation sequence Will be used if there are no values set by the actuator ''' enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None #Sets the activator to perform a specific sequence at a certain rate def __init__(self, rotateDeg=270, rateInSec=1): super(SenseHatLedActivator, self).__init__() if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) #Function to run the entire logic for switching LED on the senseHAT module def run(self): while True: if self.enableLed: if self.displayMsg != None: self.sh.show_message(str(self.displayMsg)) else: self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() sleep(self.rateInSec) #Function to get time cycle/ intervals def getRateInSeconds(self): return self.rateInSec #To set enabler flags def setEnableLedFlag(self, enable): self.sh.clear() self.enableLed = enable #To display message def setDisplayMessage(self, msg): self.displayMsg = msg
def show_message(message, sleep_time): print('Showing message:', message) sense = SenseHat() red = (255, 0, 0) blue = (0, 0, 255) green = (0, 255, 0) white = (255, 255, 255) yellow = (255, 255, 0) for letter in message: sense.show_letter(letter, red) sleep(sleep_time) sense.clear()
def main(): sense = SenseHat() """ sense.show_message("Hello World!!"); sense.set_rotation(180) sense.show_message("Hello World!!"); """ sense.flip_v() list = sense.get_pixels() #print list sense.set_pixel(0,0,255,0,0) sense.clear() for i in range(0, 5): sense.show_letter(str(i)) time.sleep(1) sense.clear()
def main(): sense = SenseHat() filename = 'compass.txt' #open file for write (rewrite its content) file = open(filename, 'w') sense.stick.direction_middle = stop print('Start data acquisition...') #calibration process while calibration: magnet = sense.get_compass_raw() x = magnet['x'] y = magnet['y'] file.write(str(x) + ',' + str(y) + '\n') file.close() xmax, xmin, ymax, ymin = plot(filename) while True: magnet = sense.get_compass_raw() x = magnet['x'] y = magnet['y'] #range transform xz = -1 + ((1 - (-1)) / (xmax - xmin)) * (x - xmin) yz = -1 + ((1 - (-1)) / (ymax - ymin)) * (y - ymin) #degree (a) calculation if xz == 0 and yz < 0: deg = 90 elif xz == 0 and yz > 0: deg = 270 elif yz < 0: deg = 360 + math.atan2(yz, xz) * (180 / 3.14159) else: deg = math.atan2(yz, xz) * (180 / 3.14159) #points if deg < 22.5 or deg > 337.5: sense.show_letter('N') elif deg < 67.5: sense.show_message(' NE') elif deg < 112.5: sense.show_letter('E') elif deg < 157.5: sense.show_message('SE') elif deg < 202.5: sense.show_letter('S') elif deg < 247.5: sense.show_message('SW') elif deg < 292.5: sense.show_letter('W') else: sense.show_message('NW') time.sleep(0.2) sense.clear()
class SenseHatLedActivator(threading.Thread): enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None #Constructor def __init__(self, rotateDeg = 270, rateInSec = 1): super(SenseHatLedActivator, self).__init__() if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) def run(self): once = True while once: print('in run' + str(self.enableLed)) if self.enableLed: print('in self.enableled') if self.displayMsg != None: print('in self.displaymsg') self.sh.show_message(str(self.displayMsg))#show message in the sensorHat once = False else: self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() once = False sleep(self.rateInSec) def getRateInSeconds(self): return self.rateInSec def setEnableLedFlag(self, enable): self.sh.clear() self.enableLed = enable def setDisplayMessage(self, msg): self.displayMsg = msg
class SkyScanner: def __init__(self, transformer: OrientationTransformer): self.sense = SenseHat() self.sense.set_rotation(90) self.transformer = transformer self.polaris = SkyCoord.from_name('polaris') def scan(self): time = Time.now() o = self.sense.get_orientation() pitch = o['pitch'] yaw = o['yaw'] observation = self.transformer.get_sky_coord(pitch, yaw, time) separation = observation.separation(self.polaris) print(separation) if separation.is_within_bounds(upper=Angle(9.9, unit='deg')): self.sense.show_letter(str(math.floor(separation.dms.d)), text_colour=[0, 0, 255]) else: self.sense.clear()
class Sense(): ''' This class has methods to connect and get sensor values from SenseHat ''' def __init__(self): self.clearFlag = False self.sens = SenseHat() print("Sense Hat object successfully created") def clear(self): self.sens.clearFlag = True def get_humidity(self): return self.sens.get_humidity() def get_temperature(self): return self.sens.get_temperature_from_humidity() def get_temperature_from_humidity(self): return self.sens.get_temperature_from_humidity() def get_temperature_from_pressure(self): return self.sens.get_temperature_from_pressure() def get_pressure(self): return self.sens.get_pressure() def show_letter(self, val): self.sens.show_letter(val) def get_light_intensity(self): lit = 0 tim = random.randint(0, 24) if (tim > 10 and tim < 16): lit = random.randint(1075, 107527) else: lit = random.randint(0, 1075) return lit def show_message(self, msg): self.sens.show_message(str(msg))
class SOSLed(object): def __init__(self): self.sensehat = SenseHat() self.green = (0, 255, 0) '''display burglar alert message''' def show_burglarmsg(self): self.sensehat.show_message("! Burglar Alert", text_colour=[255, 0, 0]) '''clear message display "G" for good and no issues''' def clearmessage(self): self.sensehat.clear() self.sensehat.show_letter("G", self.green) '''display sos alert message''' def show_sosmsg(self): self.sensehat.show_message("*SOS*", text_colour=[255, 0, 0])
class SenseHatLedActivator(threading.Thread): enableLed = False rateInSec = 1 rotateDeg = 270 sh = None displayMsg = None def __init__(self, rotateDeg=270, rateInSec=1): #parameterized constructor super(SenseHatLedActivator, self).__init__( ) # _init_() is called during object initialization. if rateInSec > 0: self.rateInSec = rateInSec if rotateDeg >= 0: self.rotateDeg = rotateDeg self.sh = SenseHat() self.sh.set_rotation(self.rotateDeg) def run( self ): #overriding run method is used to perform the desired functionality while True: if self.enableLed: if self.displayMsg != None: #print(self.displayMsg); self.sh.show_message(str(self.displayMsg)) else: print('R') self.sh.show_letter(str('R')) sleep(self.rateInSec) self.sh.clear() sleep(self.rateInSec) def getRateInSeconds(self): #returns the rate of display in seconds return self.rateInSec def setEnableLedFlag(self, enable): #sets the flag value to high self.enableLed = True def setDisplayMessage(self, msg): #displays the message in the sense HAT self.displayMsg = msg
def run(self): while True: if self.flag == True: sense = SenseHat() acceleration = sense.get_accelerometer_raw() x = acceleration['x'] y = acceleration['y'] z = acceleration['z'] x = abs(x) y = abs(y) z = abs(z) if x > 1 or y > 1 or z > 1: sense.show_letter("A", red) print("Sending notification...") sen.publishMessage("Alert:", "Intruder detected") print("Message sent.!") else: sense.clear() print('Please wait for ') sleep(self.rateInSec)
def main(): from sense_hat import SenseHat sense = SenseHat() sense.clear() sense.low_light = True sense.set_imu_config(True, True, True) sensor_start = sense.get_accelerometer() sensor_sensitivity = .0001 move_list = [] ex_coll = get_db('zs5_mongo', 'sensor')['freezer'] while True: sensor_in = sense.get_accelerometer() move_size = (sensor_in['roll'] - sensor_start['roll'])**2 + ( sensor_in['pitch'] - sensor_start['pitch'])**2 + ( sensor_in['yaw'] - sensor_start['yaw'])**2 sensor_start = sensor_in if move_size >= sensor_sensitivity: sense.show_letter('M') move_dict = {'move_ts': datetime.utcnow().timestamp(), **sensor_in} ex_coll.insert_one(move_dict) time.sleep(.2) sense.clear()
def main(): """Present a question mark (?) and allow to choose a game. The left/right button increments/decrements the index number. The up button displays the game name. The middle button starts the selected game. """ active = True sense = SenseHat() games = ['morpion', '2048', 'mines', 'connect4', 'tetris', 'labyrinth'] functions = [ morpion.main, game2048.main, mines.main, connect4.main, tetris.main, labyrinth.main ] i = 0 n = len(games) sense.show_message('games', text_colour=BLUE) sense.show_letter('?') while active: event = sense.stick.wait_for_event() if event.action == 'pressed': if event.direction == 'right': i = (i + 1) % n elif event.direction == 'left': i = (i - 1) % n elif event.direction == 'up': sense.show_message(games[i], text_colour=GREEN) elif event.direction == 'middle': functions[i]() elif event.direct == 'down': active = False sense.stick.get_events() sense.show_letter(str(i), text_colour=RED)
from sense_hat import SenseHat import time import random sense = SenseHat() r=random.randint(0,255) #these variables could also be set once above r1=random.randint(0,255) #and then just have the order changed r2=random.randint(0,255) #instead of being called fresh each time. sense.show_letter("O",text_colour=[r, r1, r2]) time.sleep(1) r=random.randint(0,255) r1=random.randint(0,255) r2=random.randint(0,255) sense.show_letter("M",text_colour=[r2, r1, r]) time.sleep(1) r=random.randint(0,255) r1=random.randint(0,255) r2=random.randint(0,255) sense.show_letter("G",text_colour=[r1, r, r2]) time.sleep(1) sense.show_letter("!", text_colour=[0, 0, 0], back_colour=[255, 255, 255]) time.sleep(1) sense.clear()
from sense_hat import SenseHat sense = SenseHat() # set up the colours (white, green, red, empty) green = [0,255,0] orange = [255, 128, 0] red = [255,0,0] sense.show_letter("O",text_colour=red)
from sense_hat import SenseHat sense = SenseHat() import time sense.show_letter("A") while True: x, y, z = sense.get_accelerometer_raw().values() x = round(x, 0) y = round(y, 0) if x == -1: sense.set_rotation(180) elif y == -1: sense.set_rotation(90) elif y == 1: sense.set_rotation(270) else: sense.set_rotation(0) time.sleep(0.1)
#!/usr/bin/env python from sense_hat import SenseHat import time import random sense = SenseHat() r = random.randint(0, 255) sense.show_letter("H", (r, 0, 0)) time.sleep(1) sense.show_letter("i", (0, r, 0)) time.sleep(1) sense.show_letter("!", (0, 0, r)) time.sleep(1) time.sleep(1) sense.clear()
r = g = b = 255 red = (255, 0, 0) blue = (0, 0, 255) green = (0, 255, 0) white = (255, 255, 255) yellow = (255, 255, 0) black = (0, 0, 0) back_clr = (0, 0, 0) sense.clear((0, 0, 0)) GO=WARN=ALARM=STOP=False sense.show_letter("A", blue) sleep(1) sense.show_letter("W", blue) sleep(1) sense.show_letter("S", blue) sleep(1) #sense.show_message("AWS IoT Prototype", text_colour=red, back_colour=back_clr, scroll_speed=.05) AllowedActions = ['both', 'publish', 'subscribe'] # Custom MQTT message callback def customCallback(client, userdata, message): #print("Received a new command: ") global WARN, ALARM, GO, STOP print(message.payload)
import sys from sense_hat import SenseHat sense = SenseHat() arga = str(sys.argv[1]) if arga == "show_message": sense.show_message(str(sys.argv[2])) elif arga == "show_letter": sense.show_letter(str(sys.argv[2])) elif arga == "get_pressure": print(sense.get_pressure()) elif arga == "get_humidity": print(sense.get_humidity()) elif arga == "get_all": print(str(sense.get_pressure()) + "," + str(sense.get_humidity()) + "," + str(sense.get_temperature()))
BROADCAST_TO_PORT = 57054 s = socket(AF_INET, SOCK_DGRAM) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) sense = SenseHat() sense.set_imu_config(True, True, True) red = (255, 0, 0) green = (0, 255, 0) counter=0 sense.clear() sense.show_message("WAIT", text_colour=[255, 0, 0]) for i in reversed(range(0,10)): sense.show_letter(str(i)) time.sleep(1) sense.show_message("GO", text_colour=[255, 0, 0]) o = sense.get_orientation() resting_yaw = round(o["yaw"],3) print("Resting yaw: {0}".format(resting_yaw)) while True: o = sense.get_orientation() yaw = round(o["yaw"],3) print("yaw: {0}".format(yaw)) if yaw>resting_yaw+30: print("-------------Door opened") sense.clear(red) counter += 1 else:
from sense_hat import SenseHat import time import random sense = SenseHat() sense.show_message("Hallo", scroll_speed=0.05, text_colour=[255, 255, 0], back_colour=[0, 0, 255]) sense.show_letter("F", text_colour=[255, 0, 0]) time.sleep(1) sense.show_letter("+", text_colour=[0, 255, 0]) time.sleep(1) sense.show_letter("M", text_colour=[0, 0, 255]) time.sleep(1) a = 0 while a < 3: a = a + 1 z = random.randint(0, 255) y = random.randint(0, 255) x = random.randint(0, 255) sense.show_message("Bunt", scroll_speed=0.05, text_colour=[z, y, x]) sense.set_pixel(1, 1, [255, 0, 0]) sense.set_pixel(6, 6, [0, 0, 255]) time.sleep(1) r = [255, 0, 0] g = [0, 255, 0] b = [0, 0, 255] image = [
from sense_hat import SenseHat import time # https://www.raspberrypi.org/learning/getting-started-with-the-sense-hat/worksheet/ sense = SenseHat() sense.show_message("Hello World") sense.show_letter("O", text_colour=[255, 0, 0]) time.sleep(1) sense.show_letter("M", text_colour=[0, 0, 255]) time.sleep(1) sense.show_letter("G", text_colour=[0, 255, 0]) time.sleep(1) sense.show_letter("!", text_colour=[0, 0, 0], back_colour=[255, 255, 255]) time.sleep(1) sense.clear() t = sense.get_temperature() p = sense.get_pressure() h = sense.get_humidity() t = round(t, 1) p = round(p, 1) h = round(h, 1) msg = "Temperature = %s, Pressure=%s, Humidity=%s" % (t, p, h)
e,e,e,w,w,e,e,e ] # Print it once sh.set_pixels(arrow) while True: x_full, y_full, z_full = sh.get_accelerometer_raw().values() x=round(x_full, 0) y=round(y_full, 0) z=round(z_full, 0) print ("x=%s, y=%s, z=%s" % (x_full,y_full,z_full)) if x == -1: # works sh.set_pixels(arrow) sh.set_rotation(180) elif x == 1: # works sh.set_pixels(arrow) sh.set_rotation(0) elif y == 1: sh.set_pixels(arrow) sh.set_rotation(270) elif y == -1: sh.set_pixels(arrow) sh.set_rotation(90) else: sh.show_letter("*")
from sense_hat import SenseHat sense = SenseHat() # set up the colours (white, green, red, empty) green = [0,255,0] orange = [255, 128, 0] red = [255,0,0] sense.show_letter("F",text_colour=green)
""" print("Press Ctrl-C to quit") sense = SenseHat() sense.clear((0,50,200)) stick = SenseStick() try: while True: press = stick.read() # (time, code, up/down) up_down = press[2] key_code = press[1] if key_code == stick.KEY_UP: sense.show_letter("U", back_colour = (150,150,0)) elif key_code == stick.KEY_DOWN: sense.show_letter("D", back_colour = (150,0,150)) elif key_code == stick.KEY_RIGHT: sense.show_letter("R", back_colour = (0,150,150)) elif key_code == stick.KEY_LEFT: sense.show_letter("L", back_colour = (0,0,0), \ text_colour = (200,0,0)) elif key_code == stick.KEY_ENTER: sense.show_letter("E", back_colour = (200,200,200), \ text_colour = (0,0,0)) except KeyboardInterrupt: pass sys.exit()
#Multi-coloured flash message - MrC's version from sense_hat import SenseHat import random import time sense=SenseHat() message = [“H”,”a”,”c”,”k”,”l”,”a”,”b”,” “,”I”,”s”,” “,”A”,”w”,”e”,”s”,”o”,”m”,”e”,”!”] #create a list of terms we want to cycle through as our message #Create a loop which displays each term in order, and picks a new colour for each term. while True: for i in message: r=random.randint(0,255) #Defining these variables inside the while loop but r1=random.randint(0,255) #above the for statement will result in the whole message r2=random.randint(0,255) #being one colour, but changing colour between messages. sense.show_letter( i, text_colour = [r,r1,r2]) #Putting them here gives each letter a new colour. time.sleep(0.5)
rate = 60 #sample frecuency in seconds samples = 900 #number of samples stabilization = True #Allow for termometer to stabilize report = True #send email at the end of the process? smtpUser = "******" #email account smtpPass = "******" #email password fromAdd = smtpUser toAdd = "recipient" #completion email recipient #initialization read from the sensor. This is neccesary since sometimes the sensors return #a 0 value for pressure on the first read t = round(sense.get_temperature_from_humidity(),1) p = round(sense.get_pressure(),1) h = round(sense.get_humidity(),1) sense.show_letter("W") time.sleep(5) sense.clear() #stabilize temperature readings by waiting 7 min if stabilization: sense.show_letter("W") time.sleep(420) sense.clear() #open the sampling file sensefile = open("sensefile.dat", "w") #write the header line in the logging file timestamp = time.asctime(time.localtime(time.time())) #timestamp header = timestamp+","+str(rate)+","+str(samples)+"\n"
import time from sense_hat import SenseHat from datetime import datetime from azure.storage.table import TableService __author__ = "Anatoly Mironov @mirontoli" sense = SenseHat() table_service = TableService(account_name='tolle', account_key='ho2zakf/8rmDckS3pGOTPWwIwCzNwVJxd5hDb3R15wms2fZJG/aX53PDsTWBYsuTPwF7802IKk2QcrJ5FO7i6w==') table_name = 'climateData' partition_key = 'climate2' table_service.create_table(table_name, False) while True: sense.show_letter('S', text_colour=[0, 114, 198]) date = datetime.now() iso_date = date.isoformat() raw_temp = sense.temp #calculate temperature https://www.raspberrypi.org/forums/viewtopic.php?t=111457&p=769672 calctemp = 0.0071 * raw_temp * raw_temp + 0.86 * raw_temp - 10.0 temp = "{0:.2f}".format(calctemp) humidity = "{0:.2f}".format(sense.humidity) pressure = "{0:.2f}".format(sense.pressure) entry = {'PartitionKey': partition_key, 'RowKey': iso_date, 'Temperature': temp, 'Humidity':humidity, 'Pressure':pressure} table_service.insert_entity(table_name, entry) time.sleep(2) sense.clear() time.sleep(58) # wait one minute
from sense_hat import SenseHat import time import random sense = SenseHat() sense.set_rotation(180) r = random.randint (0, 255) sense.show_letter("O",text_colour = [0, r, r]) time.sleep(2) r = random.randint(0, 255) sense.show_letter("M",text_colour = [r, r, 0]) time.sleep(2) r = random.randint(0, 255) sense.show_letter("G",text_colour = [r, r, 0]) time.sleep(2) r = random.randint(0, 255) sense.show_letter("!",text_colour = [0, r, r]) time.sleep(1) sense.clear()
import time from sense_hat import SenseHat sh = SenseHat() for i in reversed(range(0,10)): sh.show_letter(str(i)) time.sleep(1)
from sense_hat import SenseHat import time sense = SenseHat() sense.clear() dt = 0.05 x,y,z = sense.get_accelerometer_raw().values() while (x**2+y**2+z**2 < 8): sense.show_letter("|") time.sleep(dt) sense.show_letter("/") time.sleep(dt) sense.show_letter("-") x,y,z = sense.get_accelerometer_raw().values() time.sleep(dt) sense.show_letter("\\") time.sleep(dt) sense.clear()
from sense_hat import SenseHat import random sense = SenseHat() while True: x, y, z = sense.get_accelerometer_raw().values() x = abs(x) y = abs(y) z = abs(z) if x > 1 or y > 1 or z > 1: sense.show_letter(random.randint(1,6),text_colour=[255,0,0])
w = [150, 150, 150] g = [0, 255, 0] r = [255, 0, 0] e = [0, 0, 0] sad = [ e,e,e,e,e,e,e,e, e,r,r,e,e,r,r,e, e,r,r,e,e,r,r,e, e,e,e,e,e,e,e,e, e,e,e,e,e,e,e,e, e,e,r,r,r,r,e,e, e,r,e,e,e,e,r,e, r,e,e,e,e,e,e,r ] sense = SenseHat() sense.show_message("Shutdown", scroll_speed=(0.05), text_colour=(255, 0, 0), back_colour=(0, 0, 0)) sense.show_letter("3") sleep(1) sense.show_letter("2") sleep(1) sense.show_letter("1") sleep(1) sense.set_pixels(sad) sys.exit(0)
time.sleep(0.4) sense.clear(255,255,255) time.sleep(0.05) sense.set_pixels(xplod6) time.sleep(0.75) # Warning flash for i in range(50): sense.clear(255,255,255) time.sleep(0.05) sense.clear() time.sleep(0.05) # Message sense.show_message("10..9..8..7..6..5..4..3..2..1..", scroll_speed=0.08, text_colour=[204,0,0]) sense.show_message("HAPPY NEW YEAR!", scroll_speed=0.04, text_colour=[204,0,204]) sense.show_letter("2") time.sleep(0.25) sense.show_letter("0") time.sleep(0.25) sense.show_letter("1") time.sleep(0.25) sense.show_letter("6") time.sleep(0.25) # Bombs Away for i in range(7): fireworks() sense.clear()
from sense_hat import SenseHat import time sense = SenseHat() sense.show_letter(">") angles = [0, 90, 180, 270, 0, 90, 180, 270] for r in angles: sense.set_rotation(r) time.sleep(0.5)
#!/usr/bin/python from sense_hat import SenseHat import time sense = SenseHat() while True: x, y, z = sense.get_accelerometer_raw().values() x = abs(x) y = abs(y) z = abs(z) if x > 1 or y > 1 or z > 1: sense.show_letter("!", text_colour=[255,0,0]) else: sense.clear() time.sleep(0.1)
elif y == 1: sense.set_rotation(270) elif y == -1: sense.set_rotation(90) else: sense.set_rotation(0) if currentMode == 3: if lastRun is not currentMode: # first execution stuff here if needed sense.set_rotation(0) lastRun = currentMode sense.show_message("Raspberry Pi Loves Maker Faire", scroll_speed=.04, text_colour=(255,0,0)) currentMode = 0 if currentMode == 4: if lastRun is not currentMode: sense.show_message("ASK ME ANYTHING AND SHAKE!", scroll_speed=.03, text_colour=(255,0,0)) lastRun = currentMode sense.show_letter("?", text_colour=(255,0,0)) while currentMode == 4: x, y, z = sense.get_accelerometer_raw().values() if x > 2.5 or x < -2.5 or y > 2.5 or y < -2.5 or z > 2.5 or z < -2.5: sense.show_message(random.choice(replies), scroll_speed=.03, text_colour=(255,0,0)) sense.show_letter("?", text_colour=(255,0,0)) sleep(0.1)
print ("VOLUME CONTROL") sense.show_message("Volume", text_colour = [0, 255, 0]) volume_running = True while volume_running == True: for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_b: volume = volume + volume_change print volume pygame.mixer.music.set_volume(volume) sense.show_letter(str("+")) time.sleep(0.2) if event.type == KEYDOWN: if event.key == K_a: volume = volume - volume_change print volume pygame.mixer.music.set_volume(volume) sense.show_letter(str("-")) time.sleep(0.2) if event.type == KEYDOWN: if event.key == K_RETURN:
import json import gspread import time, string import pyowm from sense_hat import SenseHat from oauth2client.client import GoogleCredentials # Connect to senseHat sense = SenseHat() sense.low_light = True # display on sesnse HAT script start # R - reading sensors sense.show_letter("R") # SenseHat sensor readings pressure = sense.get_pressure() humidity = sense.get_humidity() temperature = sense.get_temperature() # read actual weather from openweathermap. You need a API Key from OpenWeatherMap owm = pyowm.OWM('API_key_here') observation = owm.weather_at_place('Timisoara,ro') w = observation.get_weather() wind=w.get_wind() # {'speed': 4.6, 'deg': 330} Whumid=w.get_humidity() # 87 temp=w.get_temperature('celsius') # {'temp_max': 10.5, 'temp': 9.7, 'temp_min' Wstatus= w.get_status() Wwind = wind.get('speed') Wtemp = temp.get('temp')
random_red = randint(0, 255) random_green = randint(0, 255) random_blue = randint(0, 255) return (random_red, random_green, random_blue) def spain_flag(): pixels = [ red, red, red, green, red, red, red, red, red, red, red, red, red, red, red, red, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, blue, yellow, yellow, yellow, yellow, yellow, yellow, yellow, yellow, red, red, red, red, red, red, red, red, red, red, red, red, red, red, red, red ] sense.set_pixels(pixels) return while True: a = sense.get_accelerometer_raw() x = abs(a['x']) y = abs(a['y']) z = abs(a['z']) if x > 1 or y > 1 or z > 1: sense.show_letter("!", red) else: sense.clear()
#Multi-coloured flash message - MrC's version from sense_hat import SenseHat import random import time sense=SenseHat() message = "flashy letters" #Create a loop which displays each term in order, and picks a new colour for each term. while True: for i in list(message): r=random.randint(0,255) r1=random.randint(0,255) r2=random.randint(0,255) sense.show_letter( i, text_colour = [r,r1,r2]) time.sleep(0.2)
print("Welcome") time.sleep(1) S = [49, 49, 49] ### change to 000 '''Creates a grid of 64 blue pixels, the sea''' Sea = [ S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S ] sense.set_pixels(Sea) time.sleep(1) for num in reversed(range(1, 4)): sense.show_letter(str(num)) time.sleep(1) ### Begin the main game ### main() ### Play again? ### print("Would you like to play again? ") sense.load_image("choice.png") pygame.mixer.music.load("sounds/playagain.mp3") pygame.mixer.music.play() while play_again == 1: for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_DOWN:
from sense_hat import SenseHat sense = SenseHat() import time sense.show_letter("J") while True: x, y, z = sense.get_accelerometer_raw().values() x = round(x, 0) y = round(y, 0) if x == -1: sense.set_rotation(180) elif y == -1: sense.set_rotation(90) elif y == 1: sense.set_rotation(270) else: sense.set_rotation(0) time.sleep(0.1)
from time import sleep from subprocess import check_output from sense_hat import SenseHat blue = [0,0,255] green = [0, 255, 0] red = [255,0,0] color = green sense = SenseHat() output = check_output(['hostname', '-I']) ipaddr = output.decode("utf-8").rstrip() try: for i in range(10): sense.show_message(ipaddr, scroll_speed=0.03, text_colour=color) sense.show_letter(ipaddr[-1], text_colour=color) sleep(1) finally: sense.clear()
from sense_hat import SenseHat from time import sleep from random import randint sense = SenseHat() sense.set_pixel(0,2,[0,0,255]) sense.set_pixel(7,4,[255,0,0]) sleep(1) r = randint(0,255) sense.show_letter("T", text_colour=[0,r,0]) sleep(2) sense.show_message("Hello Dad, I'm tallulah", scroll_speed=0.12, text_colour=[0,251,0], back_colour=[0,0,0]) sense.clear()
from sense_hat import SenseHat sense = SenseHat() # Display the letter J sense.show_letter("J") while True: acceleration = sense.get_accelerometer_raw() x = acceleration['x'] y = acceleration['y'] z = acceleration['z'] x=round(x, 0) y=round(y, 0) z=round(z, 0) print("x={0}, y={1}, z={2}".format(x, y, z)) # Update the rotation of the display depending on which way up the Sense HAT is if x == -1: sense.set_rotation(180) elif y == 1: sense.set_rotation(90) elif y == -1: sense.set_rotation(270) else: sense.set_rotation(0)
from sense_hat import SenseHat sense = SenseHat() # set up the colours (white, green, red, empty) green = [0,255,0] orange = [255, 128, 0] red = [255,0,0] sense.show_letter("R",text_colour=orange)