Example #1
0
    def write(self, text=None, line=1, cursor=0, truncate=True, center=False):
        """
        Function to write text to the LCD Screen.

        Parameters
        ----------
        text : str
            String to be written to the screen.
        line : int, optional
            Line number to write to (default: 1)
        cursor : int, optional
            The cursor position to start at (default: 0)
        truncate : bool, optional
            Boolean flag to indicate whether to truncate the line or not
            (default: True)
        center : bool, optional
            Boolean flag to indicate whether to center the line or not
            (default: False)
        """
        # Force the text to be a string
        # [X] I couldn't find a way to test this variable without making it
        # a variable of the class, look into a way to not have to do
        # this as it's not necessary
        self.text = str(text)

        # If the truncate flag is set and the length of the text is
        # longer than 16 characters then cut it down to size
        if len(self.text) > 16 and truncate:
            self.text = self.text[:16]

        if center:
            self.text = self.text.center(16)

        lcd.set_cursor_position(cursor, line)
        lcd.write(self.text)
def temperatures():
#--------------------------------
    #TEMPERATURE AMBIANTE
    lcd.clear()                             #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)            #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Temp Ambiante:")             #Affichage du String entre guillemet

    
    lcd.set_cursor_position(0,1)            #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(climat_now))              #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
#--------------------------------
    time.sleep(5)
#--------------------------------
    #TEMPERATURE MIN & MAX

    lcd.clear()                         #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)        #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Temp MIN/MAX:")          #Affichage du String entre guillemet

    
    lcd.set_cursor_position(0,1)    #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(climat_min))      #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable

    lcd.set_cursor_position(0,2)    #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(climat_max))      #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
Example #3
0
def showNodeMetrics():
  # Get usage metrics from raw API call to /apis/metrics.k8s.io/v1beta1/nodes
  api_client = client.ApiClient()
  raw_resp = api_client.call_api('/apis/metrics.k8s.io/v1beta1/nodes/', 'GET', _preload_content=False)
  # Crazy conversion required, dunno why this is so hard
  response_metrics = json.loads(raw_resp[0].data.decode('utf-8'))  

  # Call list Nodes
  nodes = v1.list_node()
  count = 0
  for node in nodes.items:
    if count > 2: break
    # Get name and cpu/mem capacity 
    name = node.metadata.name
    mem_capacity = utils.parse_quantity(node.status.allocatable["memory"])
    cpu_capacity = utils.parse_quantity(node.status.allocatable["cpu"])

    # Search node metrics we grabbed before keyed on node name
    node_metrics = next(n for n in response_metrics["items"] if n["metadata"]["name"] == name)
    mem_usage = utils.parse_quantity(node_metrics["usage"]["memory"])
    cpu_usage = utils.parse_quantity(node_metrics["usage"]["cpu"])

    cpu_perc = round((cpu_usage/cpu_capacity)*100)
    mem_perc = round((mem_usage/mem_capacity)*100) 

    lcd.set_cursor_position(7, count)
    lcd.write(f"{cpu_perc: 3}%")
    lcd.set_cursor_position(12, count)
    lcd.write(f"{mem_perc: 3}%")    
    count = count + 1
def showWelcomeMessage():
    lcd.clear()
    lcd.set_cursor_position(0,0)
    lcd.write("Welcome!")
    lcd.set_cursor_position(0,1)
    lcd.write("FruityWiFi " +  __FRUITYWIFI__)
    time.sleep(2)
Example #5
0
    def on_print_progress(self, storage, path, progress):
        lcd.clear()
        start = path.rfind('/')
        end = path.rfind('.')
        # Just want the file name, no path or extension.
        # The rfind gets us the deepest directory so we can truncate that off the string
        # It also gets us the index of the file extension
        # The code below will substring any directories off the path, and remove the extention
        if (start == -1):
            start = 0
        if (end == -1):
            end = path.len() - 1
        lcd.write(path[start:end])
        backlight.set_graph(progress / 100.0)
        backlight.rgb(0, 0, 255)
        backlight.update()
        lcd.set_cursor_position(0, 1)
        lcd.write('Completed: ' + str(progress) + '%')

        if progress == 1:
            self.start_date = time.time()

        if progress > 10 and progress < 100:
            now = time.time()
            elapsed = now - self.start_date
            average = elapsed / (progress - 1)
            remaining = int((100 - progress) * average)
            remaining = str(datetime.timedelta(seconds=remaining))
            lcd.set_cursor_position(0, 2)
            lcd.write('ETC: ')
            lcd.write(remaining)

        if progress == 100:
            self.JobIsDone(lcd)
	def redraw(self, menu):
		lcd.clear()
		lcd.set_cursor_position(3,1)
		lcd.write("Bye (^_^)/")
		for x in reversed(range(127)):
			backlight.rgb(0, x * 2, 0)
		lcd.clear()
		sys.exit(0)
Example #7
0
def lcdInfo(lcdMessage, line, rgb=""):

    lcd.set_cursor_position(0, line)
    lcd.write(lcdMessage)
    if rgb == "red":
        backlight.rgb(200, 0, 0)
    if rgb == "green":
        backlight.rgb(0, 200, 0)
def Vitesse_du_vent():
    #Vitesse du Vent
    #--------------------------------
    lcd.clear()                                 #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)                #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Vitesse Vent m/s")               #Affichage du String entre guillemet

    lcd.set_cursor_position(0,1)                #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(vitesse_du_vent))             #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable    
 def redraw(self, menu):
     print "Bye ;)"
     lcd.clear()
     lcd.set_cursor_position(4, 1)
     lcd.write("Bye Bye!")
     time.sleep(2)
     lcd.clear()
     backlight.rgb(0, 0, 0)
     sys.exit()
Example #10
0
def printNodes():
  nodes = v1.list_node()
  count = 0
  for node in nodes.items:
    if count > 2: break
    name = node.metadata.name
    lcd.set_cursor_position(0, count)
    lcd.write(name+":")
    count = count + 1
    def redraw(self, menu):
        print "Bye ;)"
	lcd.clear()
	lcd.set_cursor_position(4,1)
	lcd.write("Bye Bye!")
	time.sleep(2)
	lcd.clear()
	backlight.rgb(0,0,0)
	sys.exit()
def Taux_Humidite():
    #Taux d'Humidité présent dans l'Environnement actuel
    #--------------------------------
    lcd.clear()                                 #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)                #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Taux d'Humidite")                #Affichage du String entre guillemet

    lcd.set_cursor_position(0,1)                #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(pourcentage_humidite))        #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable  
def Taux_de_Nuage():
    #Taux de Nuages présent dans le ciel
    #--------------------------------
    lcd.clear()                                 #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)                #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Taux Nuage")                     #Affichage du String entre guillemet

    lcd.set_cursor_position(0,1)                #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(couverture_de_nuage))         #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable  
Example #14
0
 def redraw(self, menu):
     lcd.clear()
     menu.write_option(row=0, text="About this App")
     menu.write_option(
         row=1,
         text=
         "Site: https://github.com/Floppynator/FruityDisplay_DisplayOTron3000",
         scroll=True)
     lcd.set_cursor_position(0, 2)
     lcd.write("Twitter: @HA1pe")
Example #15
0
def handle_down(pin):
    print("Down pressed!")
    global image_num
    global reset_initiated

    if reset_initiated == False:
        reset_initiated = True
        print("first time")
    else:
        lcd.set_cursor_position(0, 0)
        lcd.write("SHUTTING DOWN   ")
        os.system("sudo shutdown now")
Example #16
0
def handle_down(pin):
    print("Down pressed!")    
    global image_num
    global reset_initiated

    if reset_initiated == False:
        reset_initiated = True
        print("first time")
    else:
        lcd.set_cursor_position(0, 0)
        lcd.write("SHUTTING DOWN   ")
        os.system("sudo shutdown now");
def temps_systeme():
    system_time = temps_actuel()

    #Affichage DOT3K
    lcd.clear()  #Nettoyage de la Zone Affichable

    lcd.set_cursor_position(
        0, 0)  #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Temps/Time:")  #Affichage du String entre guillemet

    lcd.set_cursor_position(
        0, 1)  #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(system_time)
def affichage_numero():
    #--------------------------------
    #NUMEROS D'URGENCES INTERNATIONAUX
    lcd.clear()  #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(
        0, 0)  #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Numero Urgence:")  #Affichage du String entre guillemet

    lcd.set_cursor_position(
        0, 1)  #Positionnement du Curseur à la colonne 0 et ligne 1
    print(tel_urgence)
    lcd.write(
        str(tel_urgence)
    )  #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
Example #19
0
def _message(code, credit_balance=None):
    message_lock.acquire()
    _message_output(code)
    lcd.clear()
    lcd.write(message_code[code])
    if credit_balance is not None:
        lcd.set_cursor_position(0,2)
        lcd.write(" ")
        lcd.write(balance)
        credit_balance_string = locale.format('%.2f', credit_balance, monetary=True)
        lcd.set_cursor_position(lcd.COLS-len(credit_balance_string)-1,2)
        lcd.write(credit_balance_string)
        lcd.write(" ")
    time.sleep(2.5)
    message_lock.release()
Example #20
0
	def animate(self):	
		self.get_messages()
		
		message_portion = self.message[self.message_position : self.message_position + self.display_width]
		message_portion = message_portion + " " * (self.display_width - len(message_portion))
		lcd.set_cursor_position(0, self.line)
		lcd.write(message_portion)
	
		if self.progress:
			self.message_position = self.message_position + 1
		
		self.progress = not self.progress
	
		if self.message_position >= len(self.message):
			self.message_position = 0
def loadingScreen():
    lcd.clear()
    
    # set brigthness 
    backlight.set_bar(0, 20)
    
    # write loading message to lcd
    lcd.set_cursor_position(3,1)
    lcd.write("Loading...")
    
    # fire up bargraph leds! Wohoo
    for i in range(100):
        backlight.set_graph(i / 70.0)
        time.sleep(0.005)
        
    # disable leds =(
    backlight.set_graph(0)
Example #22
0
def handle_button(pin):
    print("Button pressed!")
    global image_num
    global reset_initiated
    global picture_waiting

    if picture_waiting!=True:
        picture_waiting = True
        image_num = image_num + 1
        camera.capture('image' + format(image_num,'03') + '.jpg')
        print 'image file: image' + format(image_num,'03') + '.jpg'

        lcd.set_cursor_position(13, 2)
        lcd.write(format(image_num,'03'))
        reset_initiated = False
        picture_waiting = False
    else:
        print 'waiting on image to return'
Example #23
0
def handle_button(pin):
    print("Button pressed!")
    global image_num
    global reset_initiated
    global picture_waiting

    if picture_waiting != True:
        picture_waiting = True
        image_num = image_num + 1
        camera.capture('image' + format(image_num, '03') + '.jpg')
        print 'image file: image' + format(image_num, '03') + '.jpg'

        lcd.set_cursor_position(13, 2)
        lcd.write(format(image_num, '03'))
        reset_initiated = False
        picture_waiting = False
    else:
        print 'waiting on image to return'
def determination_dot3k():

    recup_affichage(
    )  #Demarrage du fichier python Recuperation_Determination.py
    global ville  #Déclaration de la variable GLOBAL 'ville'
    ville = determine_less(
    )  #L'information dtermine par un autre fichier python est stocker dans la variable pour être utiliser apès

    #Using the 'lcd.write' way
    lcd.clear()  #Nettoyage de la Zone Affichable

    lcd.set_cursor_position(
        0, 0)  #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Nous sommes ici:")  #Affichage du String entre guillemet

    lcd.set_cursor_position(
        0, 1)  #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(
        ville
    )  #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
    def right(self):
	# fire cmd
	self.last_update = 1

        cmd = self.config.get('commands', self.cmds[self.selected_cmd])
        time.sleep(1)
	cmd = cmd.split(",")

	lcd.clear()
	lcd.set_cursor_position(0,0)
	lcd.write("Execute CMD")	
	lcd.set_cursor_position(0,1)
	lcd.write(cmd[0])
	time.sleep(1)
        
	# EXECUTE THIS COMMAND
        out = str(self.execCommand(cmd[1]))
        print(out)

	lcd.clear()
	lcd.set_cursor_position(6,1)
	lcd.write("Done.")
	time.sleep(1)
	lcd.clear()
	self.last_update = 0

	return True
    def right(self):
        # fire cmd
        self.last_update = 1

        cmd = self.config.get('commands', self.cmds[self.selected_cmd])
        time.sleep(1)
        cmd = cmd.split(",")

        lcd.clear()
        lcd.set_cursor_position(0, 0)
        lcd.write("Execute CMD")
        lcd.set_cursor_position(0, 1)
        lcd.write(cmd[0])
        time.sleep(1)

        # EXECUTE THIS COMMAND
        out = str(self.execCommand(cmd[1]))
        print(out)

        lcd.clear()
        lcd.set_cursor_position(6, 1)
        lcd.write("Done.")
        time.sleep(1)
        lcd.clear()
        self.last_update = 0

        return True
Example #27
0
def _idle():
    while 1:
        if message_lock.locked() == False:
            lcd.clear()
            if terminal_enabled != True:
                backlight.value = (1, 0.125, 0.125)
                lcd.write(terminal_locked_message)
                lcd.set_cursor_position(0,2)
                lcd.write(unlock)
            else:
                backlight.on()
                lcd.write(terminal_message)
                lcd.set_cursor_position(0,2)
                lcd.write(chr(7))
                if terminal_amount > 0:
                    lcd.write(refill)
                else:
                    lcd.write(amount)
                terminal_amount_string = locale.format('%.2f', abs(terminal_amount), True, True)
                lcd.set_cursor_position(lcd.COLS-len(terminal_amount_string)-1,2)
                lcd.write(terminal_amount_string)
                lcd.write(chr(7))
            lcd.update_animations()
            time.sleep(1)
        else:
            time.sleep(0.25)
Example #28
0
def init_animation():
	hourglass = [
		[0x1F,0x11,0x11,0x11,0x11,0x11,0x11,0x1F],[0x1F,0x1F,0x11,0x11,0x11,0x11,0x11,0x1F],
		[0x1F,0x1F,0x1F,0x11,0x11,0x11,0x11,0x1F],[0x1F,0x1F,0x1F,0x1F,0x11,0x11,0x11,0x1F],
		[0x1F,0x11,0x1F,0x1F,0x1F,0x11,0x11,0x1F],[0x1F,0x11,0x11,0x1F,0x1F,0x1F,0x11,0x1F],
		[0x1F,0x11,0x11,0x11,0x1F,0x1F,0x1F,0x1F],[0x1F,0x11,0x11,0x11,0x11,0x1F,0x1F,0x1F],
		[0x1F,0x11,0x11,0x11,0x11,0x11,0x1F,0x1F],[0x1F,0x11,0x11,0x11,0x11,0x11,0x11,0x1F]
	]
	greetingtext = [
	#	"- - - - - - - - ",
		"     Welcome    ",
		"       To       ",
		"    Yuki-Chan   "
	]
	
	dotc = 0
	texti = 0
	for x in range(127):
		backlight.rgb(x / 2, x * 2, x / 2)
		"""
		lcd.create_char(0, getAnimFrame(hourglass, 5))
		lcd.clear()
		lcd.set_cursor_position(15,2)
		lcd.write(chr(0))
		"""
		lcd.set_cursor_position(0,1)
		lcd.write(greetingtext[texti])
		
		if dotc > 30:
			texti = (texti + 1) % len(greetingtext)
			dotc = 0
		else:
			dotc += 1
		
		lcd.set_cursor_position(6,2)
		for i in range(dotc / 10):
			lcd.write(".")

	lcd.clear()
Example #29
0
def idle():
    #if debug: print "Start idle function." 
    backlight.off()
    lcd.set_cursor_position(0,0)
    lcd.write(txt_security)
    lcd.set_cursor_position(4,1)
    t = datetime.now().strftime("%H:%M:%S")
    lcd.write(t)
    lcd.set_cursor_position(0,2)
    lcd.write(txt_pressme)
    time.sleep(0.5)
def Volumes():
    #Volume de Neige (en m² ?)
    #--------------------------------
    lcd.clear()                                     #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)                    #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Volumes Neige/Pluie")                #Affichage du String entre guillemet

    lcd.set_cursor_position(0,1)            #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(volume_de_neige)              #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable

    lcd.set_cursor_position(0,2)         #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(str(volume_de_pluie))      #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable    
def condition_climatique():
    #Status de la Météo Actuel
    #--------------------------------
    lcd.clear()                                 #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(0,0)                #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Condition Meteo")                #Affichage du String entre guillemet

    lcd.set_cursor_position(0,1)            #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write("Actuel:")                    #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable

    lcd.set_cursor_position(0,2)            #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(status_climat)                #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable    
Example #32
0
    def redraw(self):
        volume = subprocess.check_output("mpc status | grep volume", shell=True, stderr=subprocess.STDOUT)
        volume = volume[7:volume.find("%")]

        lcd.clear()
        lcd.set_cursor_position(0, 0)
        lcd.write(self.channelName[self.selectedStation])

        lcd.set_cursor_position(0, 1)
        lcd.write(time.strftime("%d.%m. %H:%M:%S"))

        lcd.set_cursor_position(0, 2)
        lcd.write('Volume:' + volume + ' %')

        cpu = psutil.cpu_percent()
        backlight.set_graph(float(cpu) / 100.0)
Example #33
0
def showKubeDeploys():
  global deploy_index, deploy_max
  all_deploys = v1Apps.list_deployment_for_all_namespaces()

  deploy_max = 0
  deploys = []
  for deploy in all_deploys.items:
    if deploy.metadata.namespace != "kube-system": 
      deploys.append(deploy)

  deploy_max = len(deploys)
  lcd.set_cursor_position(0, 0)
  lcd.write(deploys[deploy_index].metadata.name[:16])
  lcd.set_cursor_position(0, 1)
  lcd.write(deploys[deploy_index].spec.template.spec.containers[0].image[:16])
  lcd.set_cursor_position(0, 2)
  lcd.write(f"replicas: {deploys[deploy_index].status.replicas}/{deploys[deploy_index].status.ready_replicas}")  
Example #34
0
def queries_thread():
    """Print pihole stats to the lcd"""

    lcd.clear()
    t = threading.currentThread()
    while getattr(t, "running", True):
        pihole = ph.PiHole("192.168.1.32")

        lcd.set_cursor_position(0, 0)
        lcd.write('{} queries'.format(pihole.queries))

        lcd.set_cursor_position(0, 1)
        lcd.write('{}% blocked'.format(pihole.ads_percentage))

        lcd.set_cursor_position(0, 2)
        lcd.write('{} total'.format(pihole.blocked))

        time.sleep(5)
Example #35
0
def affichage_de_la_boussole_dot3k_2():
    #--------------------------------
    #BOUSSOLE 2/2
    lcd.clear()  #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(
        0, 0)  #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("BOUSSOLE 2/2")  #Affichage du String entre guillemet

    lcd.set_cursor_position(
        0, 1)  #Positionnement du Curseur à la colonne 0 et ligne 1
    lcd.write(
        str(round_retourne_longitude)
    )  #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable

    lcd.set_cursor_position(
        0, 2)  #Positionnement du Curseur à la colonne 0 et ligne 2
    lcd.write(
        dir_Longitude_Hemisphere
    )  #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
Example #36
0
def neige_3h():
    #Prochainement de la Neige ?

    #--------------------------------
    lcd.clear()  #Nettoyage de la Zone Affichable
    lcd.set_cursor_position(
        0, 0)  #Positionnement du Curseur à la colonne 0 et ligne 0
    lcd.write("Neige dans 3H?")  #Affichage du String entre guillemet

    if will_snow == True:  #Si il y a de la pluie alors...
        lcd.set_cursor_position(0, 1)
        lcd.write("Neige prevue")  #On affirme cela par un message

    elif will_snow == False:  #Sinon...
        lcd.set_cursor_position(
            0, 1)  #Positionnement du Curseur à la colonne 0 et ligne 1
        lcd.write(
            "Aucune Neige prevue"
        )  #Affichage de la valeur convertis de FLOAT à STRING via une valeur retourné qui a stocker dans une variable
def display():
    forecast = darksky.Forecast(api_key, latitude, longitude, units=units)
    current = forecast.currently
    temp = current.temperature
    temp = str(temp)
    humidity = current.humidity * 100
    humidity = str(humidity)
    rain = current.precipProbability * 100
    rain = str(rain)
    uvIndex = current.uvIndex
    uv = str(uvIndex)
    if uvIndex <= 2.9:
        backlight.rgb(90, 148, 35)  # Green (low)
    elif (uvIndex >= 3) and (uvIndex <= 5.9):
        backlight.rgb(241, 227, 54)  # Yellow (moderate)
    elif (uvIndex >= 6) and (uvIndex <= 7.9):
        backlight.rgb(217, 90, 18)  # Orange (high)
    elif (uvIndex >= 8) and (uvIndex <= 10.9):
        backlight.rgb(185, 2, 34)  # Red (very high)
    else:
        backlight.rgb(99, 74, 195)  # Violet (extreme)
    try:
        lcd.clear()
        lcd.set_cursor_position(0, 0)
        print("Temperture: " + temp + " C")
        lcd.write("Temp: " + temp + "\xf2C")
        lcd.set_cursor_position(0, 1)
        print("Humidity: " + humidity + "%")
        lcd.write("Humidity: " + humidity + "%")
        lcd.set_cursor_position(0, 2)
        print("Rain: " + rain + "%")
        lcd.write("Rain: " + rain + "%")
        print("UV Index: " + uv + "")
    except:
        lcd.write("Connection Error")

    # Press the button on the joystick to exit
    @nav.on(nav.BUTTON)
    def handle_button(pin):
        lcd.clear()
        backlight.rgb(0, 0, 0)
        backlight.set_graph(0)
        os._exit(1)
def update_weather():
    payload = {
        'id': CITY_ID,
        'units': 'metric',
        'appid': API_KEY
    }
    global temp
    try:
        r = requests.get(url=url, params=payload)
        location = r.json().get('name')
        temp = r.json().get('main').get('temp')
        humidity = r.json().get('main').get('humidity')
        lcd.set_cursor_position(0, 0)
        print("City: "+str(location)+" ")
        lcd.write("City: "+str(location)+" ")
        lcd.set_cursor_position(0, 1)
        print("Temperture: "+str(temp)+"°C")
        lcd.write("Temp: "+str(temp)+"\xf2C")
        lcd.set_cursor_position(0, 2)
        print("Humidity: "+str(humidity)+" %")
        lcd.write("Humidity: "+str(humidity)+" %")
    except:
        lcd.write("Connection Error")
Example #39
0
def system_thread():
    """Print system load, memory usage, and temperature to the lcd"""

    lcd.clear()
    t = threading.currentThread()
    while getattr(t, "running", True):
        pihole = ph.PiHole("192.168.1.32")

        one_minute, five_minute, fifteen_minute = [
            x / psutil.cpu_count() * 100 for x in psutil.getloadavg()
        ]
        memory = psutil.virtual_memory()
        temp = psutil.sensors_temperatures(fahrenheit=True)['cpu-thermal'][0]

        lcd.set_cursor_position(0, 0)
        lcd.write('Load {}'.format(one_minute))

        lcd.set_cursor_position(0, 1)
        lcd.write('Memory {}'.format(memory.percent))

        lcd.set_cursor_position(0, 2)
        lcd.write('{} F'.format(temp.current))

        time.sleep(5)
    def redraw(self, menu):
        lcd.clear()
	menu.write_option(row=0, text="About this App")
        menu.write_option(row=1, text="Site: https://github.com/Floppynator/FruityDisplay_DisplayOTron3000", scroll=True)
	lcd.set_cursor_position(0,2)	
	lcd.write("Twitter: @HA1pe")
Example #41
0
def doorbell():
    GPIO.remove_event_detect(gpio_bell) # Ignore multiple clicks
    if debug: print("Start of Doorbell function\n") 
    
    # If pushover is enabled, run as thread and continue
    if push_enabled: 
        t_push = threading.Thread(target=pushover, args=())
        t_push.start()

    # If taking pictures is enabled, run as thread and continue
    if pictures_enabled: 
        t_snap = threading.Thread(target=snapper, args=())
        t_snap.start()
    
    # Log the event in the databse
    if debug: print "Doorbell rang at "+ts() 
    log("Someone was at your door.")
    
    if debug: print "Event logged" 
    
    # ####### #
    # Phase 1 # Ringing.
    # ####### #
    
    # Clear LCD and adjust information
    lcd.clear()
    backlight.rgb(0,0,255)
    lcd.set_cursor_position(0,0)
    lcd.write(txt_security)
    lcd.set_cursor_position(0,1)
    lcd.write(txt_ring)
    lcd.set_cursor_position(0,2)
    lcd.write(txt_ring2)
    if debug: print("Text changed, entering wait_loop*2") 
    wait_loop(200)
    if debug: print("Wait loop done") 
    if debug: print("<< Next Phase >>\n") 
    backlight.set_graph(0)
    
    # ####### #
    # Phase 2 # Trying to contact them.
    # ####### #

    # Clear LCD and adjust information
    lcd.clear()
    backlight.rgb(255,153,0)
    lcd.set_cursor_position(0,0)
    lcd.write(txt_wait1)
    lcd.set_cursor_position(0,1)
    lcd.write(txt_wait2)
    lcd.set_cursor_position(0,2)
    lcd.write(txt_wait3)
    if debug: print("Text changed, entering wait_loop*2") 
    wait_loop(100)
    if debug: print("Wait loop done") 
    if debug: print("<< Next Phase >>\n") 
    backlight.set_graph(0)
    
    # ####### #
    # Phase 3 # No one is there.
    # ####### #

    # Clear LCD and adjust information
    lcd.clear()
    backlight.rgb(255,0,0)
    lcd.set_cursor_position(0,0)
    lcd.write(txt_away1)
    lcd.set_cursor_position(0,1)
    lcd.write(txt_away2)
    lcd.set_cursor_position(0,2)
    lcd.write(txt_away3)
    if debug: print("Text changed, entering wait_loop") 
    wait_loop(80)
    if debug: print("<< Next Phase >>\n") 
    backlight.set_graph(0)
    
    # ####### #
    # Phase 4 # Delivery to the neighbors.
    # ####### #

    # Clear LCD and adjust information
    lcd.clear()
    backlight.rgb(0,255,0)
    lcd.set_cursor_position(0,0)
    lcd.write(txt_package1)
    lcd.set_cursor_position(0,1)
    lcd.write(txt_package2)
    lcd.set_cursor_position(0,2)
    lcd.write(txt_package3)
    if debug: print("Text changed, entering sleep") 
    wait_loop(150)
    if debug: print("Wait loop done") 
    if debug: print("<< End of last Phase >>\n") 
    backlight.set_graph(0)
    lcd.clear()
    
    if debug: print("End of Doorbell function\n") 
    GPIO.add_event_detect(gpio_bell,GPIO.FALLING)
Example #42
0
	def show(self):
		lcd.set_cursor_position(0, self.line)
		t = datetime.datetime.now().strftime(" %d/%m %H:%M:%S")
		lcd.write(chr(1) + t)
Example #43
0

def get_ip_addr():
    ipaddr_command = 'ip address list | grep inet | grep -v 127.0.0 | cut -d " " -f 6 | cut -d "/" -f 1'
    p = subprocess.Popen(ipaddr_command, shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE, stdin=subprocess.PIPE)
    return p.stdout.read()

    



ip = get_ip_addr()

print "ssh to ip: " + ip

lcd.set_cursor_position(0, 0)
lcd.write("IP:" + ip)

lcd.set_cursor_position(0, 1)
lcd.write("CPU: ")

lcd.set_cursor_position(13, 1)
lcd.write("IMG")

cpu_sample_count = 200
cpu_samples = [0] * cpu_sample_count
hue = 0.0


lcd.set_contrast(52)
Example #44
0
    time.sleep(3)
    neige_3h()  #Affichage de l'estimation de Neige (Y/N)
    #----------TIMER----------


if __name__ == "__main__":
    try:  #---!!!GESTION DES ERREURS!!!---
        recuperation_3h_dot3k(
        )  #Fonction de Recuperation des données précedement obtenues via l'API Météo
        timer_affichage_3h(
        )  #Lancement des Affichages des informations avec un Timer définit
        pass  #Si le tout fonctionne alors on continue

    except TypeError:  #Si il y a eu une erreur de TYPE de variables alors...
        lcd.clear()
        lcd.set_cursor_position(0, 0)
        lcd.write("Signal GPS perdu")  #On affiche un Message sur le DOT3K
        lcd.set_cursor_position(0, 1)
        lcd.write("TypeError")  #On affiche le code erreur
        print("Le signal GPS est degradé , veuillez-vous deplacez!"
              )  #On affiche ce message dans la console
        print("Code Erreur: TypeError")  #Affichage Code Erreur Correspondant

    except pyowm.exceptions.not_found_error.NotFoundError:  #Si la recherche n'a donné aucun résultat alors
        lcd.clear()
        lcd.set_cursor_position(0, 0)
        lcd.write("Ville non-trouve")  #On affiche un Message sur le DOT3K
        lcd.set_cursor_position(0, 2)
        lcd.write("not_found_error")  #On affiche le code erreur
        confirme_erreur_ville()  #On met un booléan a la valeur True
        print("La ville ou vous situez n'a pas ete trouver!"
Example #45
0
#!/usr/bin/env python
import dot3k.lcd as lcd
import dot3k.backlight as backlight
import time, datetime, copy, math, psutil
import time
from datetime import datetime, timedelta


lcd.write(chr(0) + 'Yay LGBT Pride!')# + chr(0))
lcd.set_cursor_position(0,2)
lcd.write(' Party hrs left ')# + chr(3) + chr(2) + chr(5))

eqlchar = [
	[0x0,0x1f,0x1f,0x0,0x0,0x1f,0x1f,0x0], #=
	[0x0,0x0,0x1f,0x1f,0x0,0x0,0x1f,0x1f], #= move
	[0x0,0x1f,0x1f,0x0,0x0,0x1f,0x1f,0x0], #= move
	[0x1f,0x1f,0x0,0x0,0x1f,0x1f,0x0,0x0], #= move
	[0x1f,0x1f,0x1b,0x1b,0x1f,0x1f,0x18,0x18], #P
	[0x1f,0x1f,0x1b,0x1b,0x1f,0x1f,0x1a,0x19], #R
	[0x1f,0x1f,0xe,0xe,0xe,0xe,0x1f,0x1f], #I
	[0x1e,0x1f,0x1b,0x1b,0x1b,0x1b,0x1f,0x1e], #D
	[0x1f,0x1f,0x18,0x1e,0x1e,0x18,0x1f,0x1f] #E
] #WHADDOESTHATSPELL??  Pride!

def getAnimFrame(char,fps):
	return char[ int(round(time.time()*fps) % len(char)) ]

cpu_sample_count = 200
cpu_samples = [0] * cpu_sample_count
hue = 0.0
while True:
                lcd.clear()
                backlight.off()
                backlight.set_graph(0.0)

            sys.exit()
        elif command == 'reset':
            lcd.clear()
            backlight.off()
            backlight.set_graph(0.0)
    elif component == 'LCD':
        if command == 'clear':
            lcd.clear()
        elif command == 'setContrast':
            lcd.set_contrast(parameters['contrast'])
        elif command == 'setCursorPosition':
            lcd.set_cursor_position(parameters['column'], parameters['row'])
        elif command == 'write':
            lcd.write(parameters['value'])
        elif command == 'createCharacter':
            lcd.create_char(parameters['memoryPosition'], parameters['map'])
        elif command == 'writeCharacter':
            lcd.write(chr(parameters['memoryPosition']))
    elif component == 'Backlight':
        if command == 'turnOff':
            backlight.off()
        elif command == 'useRBGMode':
            backlight.use_rbg()
        elif command == 'setBrightnessOfLed':
            backlight.set(parameters['ledIndex'], parameters['brightness'])
        elif command == 'setToHue':
            backlight.hue(parameters['hue'])
Example #47
0
def shutdown_animation():
	lcd.set_cursor_position(3,1)
	lcd.write("Bye (^_^)/")
	for x in reversed(range(127)):
		backlight.rgb(x, x * 2, x)
	lcd.clear()
Example #48
0
import dot3k.lcd as lcd
import dot3k.backlight as backlight 
import time
from threading import Thread

pirate = [
        [0x00,0x1f,0x0b,0x03,0x00,0x04,0x11,0x1f],
        [0x00,0x1f,0x16,0x06,0x00,0x08,0x03,0x1e],
        [0x00,0x1f,0x0b,0x03,0x00,0x04,0x11,0x1f],
        [0x00,0x1f,0x05,0x01,0x00,0x02,0x08,0x07]
]

def get_anim_frame(anim, fps):
  return anim[ int(round(time.time()*fps) % len(anim)) ]

lcd.set_cursor_position(1,0)
lcd.write('Display-o-tron')
lcd.write('      ' + chr(0) + '3000  ')
lcd.create_char(0,get_anim_frame(pirate,4))



while 1:
  backlight.rgb(255,0,0)
  time.sleep(1)
  backlight.rgb(0,255,0)
  time.sleep(1)
  backlight.rgb(0,0,255)
  time.sleep(1)
  backlight.rgb(255,255,255)
  time.sleep(1)
             lcd.clear()
             backlight.off()
             backlight.set_graph(0.0)
         
         sys.exit()
     elif command == 'reset':
         lcd.clear()
         backlight.off()
         backlight.set_graph(0.0)
 elif component == 'LCD':
     if command == 'clear':
         lcd.clear()
     elif command == 'setContrast':
         lcd.set_contrast(parameters['contrast'])
     elif command == 'setCursorPosition':
         lcd.set_cursor_position(parameters['column'], parameters['row'])
     elif command == 'write':
         lcd.write(parameters['value'])
     elif command == 'createCharacter':
         lcd.create_char(parameters['memoryPosition'], parameters['map'])
     elif command == 'writeCharacter':
         lcd.write(chr(parameters['memoryPosition']))
 elif component == 'Backlight':
     if command == 'turnOff':
         backlight.off()
     elif command == 'useRBGMode':
         backlight.use_rbg()
     elif command == 'setBrightnessOfLed':
         backlight.set(parameters['ledIndex'], parameters['brightness'])
     elif command == 'setToHue':
         backlight.hue(parameters['hue'])