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)))) 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()