From 791eb82001d6614659e5b44a04ce0cf86254a9ce Mon Sep 17 00:00:00 2001 From: Kenny Hora Date: Thu, 21 Jun 2018 16:25:53 -0600 Subject: [PATCH 1/2] Add WidgetLCD class - class that controls the LCD Widget in advanced mode Member Functions: Constructor Constructor for the Blynk LCD Widget Parameters: blynk - Blynk object vPin - The Virtual pin the LCD is connected to clear() Clears the LCD widget Parameters: None write(x, y, s) Prints a message to the LCD Parameters: x - x-position of the lcd cursor | range [0, 15] y - y-position of the lcd cursor | range [0, 1] s - messages to print to the LCD --- WidgetLCD.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 WidgetLCD.py diff --git a/WidgetLCD.py b/WidgetLCD.py new file mode 100644 index 0000000..a57c4d8 --- /dev/null +++ b/WidgetLCD.py @@ -0,0 +1,47 @@ +# The MIT License (MIT) +# +# Copyright (c) 2018 Kenny Hora +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Controls the LCD Widget in the Blynk App +class WidgetLCD(): + # Constructor + # Constructor for the Blynk LCD Widget + # Parameters: + # blynk - Blynk object + # vPin - The Virtual pin the LCD is connected to + def __init__(self, blynk, vPin): + self.__blynk = blynk + self.__vPin = vPin + + # clear() + # Clears the LCD widget + # Parameters: None + def clear(self): + self.__blynk.virtual_write(self.__vPin, 'clr') + + # write(x, y, s) + # Prints a message to the LCD + # Parameters: + # x - x-position of the lcd cursor | range [0, 15] + # y - y-position of the lcd cursor | range [0, 1] + # s - messages to print to the LCD + def write(self, x, y, s): + self.__blynk.virtual_write(self.__vPin, '\0'.join(map(str, ('p', x, y, s)))) From b1fc5fcdd4fa0c43661dc54aa5a3e510cc0ec26e Mon Sep 17 00:00:00 2001 From: Kenny Hora Date: Thu, 21 Jun 2018 16:28:19 -0600 Subject: [PATCH 2/2] Add WidgetLCD Example --- examples/10_WidgetLCD.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 examples/10_WidgetLCD.py diff --git a/examples/10_WidgetLCD.py b/examples/10_WidgetLCD.py new file mode 100644 index 0000000..55b3af1 --- /dev/null +++ b/examples/10_WidgetLCD.py @@ -0,0 +1,29 @@ +import BlynkLib +import WidgetLCD +import datetime + +# Blynk Auth Key - Get from Blynk App +BLYNK_AUTH = 'Your Auth Key Here' + +# Blynk Object - allows virtual writing and reading +blynk = BlynkLib.Blynk(BLYNK_AUTH) + +# LCD Widget +# Attached to LCD widget on Blynk app on Virtual pin V0 and in advanced mode +lcd = WidgetLCD.WidgetLCD(blynk, 0) + +# Button Widget +# Attached to Button on Virtual pin V1 +# Prints date and time +@blynk.VIRTUAL_WRITE(1) +def printTime(value): + if value == '1': + # Clear LCD + lcd.clear() + #Print Date and time + lcd.write(0, 0, datetime.datetime.now().strftime("%m/%d/%Y")) + lcd.write(0, 1, datetime.datetime.now().strftime("%I:%M:%S %p")) + +if __name__ == '__main__': + # Run Blynk + blynk.run()