Announcement

Collapse
No announcement yet.

Current Arduino beta (1.0.0.85) LCD control

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Current Arduino beta (1.0.0.85) LCD control

    I just thought I would post about the new feature Greig added that is in the latest Beta version of this plug-in. I beleive the new version is working with Linux, if you try it under Linux, please give Greig feedback if there are any issues.

    You can control a 4 line by 20 character LCD with an event or events. I used this board from eBay, it works fine, there may be others. It takes 4 connections to the Arduino, Gnd, DC 5V, and two data lines.

    The newest beta requires new sketches and is designed to work with the newest Arduino IDE. You will have to update your boards after installing the new beta. Just be sure and do it in this order as Greig recommends:
    1. While not required, I would uninstall your current Arduino IDE before updating to the newest IDE. That will delete all old libraries and the entire Arduino IDE directory. Then get the new one from this page, you want ARDUINO 1.6.4, pick your installer type and O/S version.
    2. Install the beta plug-in from the beta section at the bottom of the plug-in management screen.
    3. Download the libraries from the plug-in configuration page and add them to the libraries that came with the new IDE. There are now only 3 new libraries:
      • Dallas Temperature
      • LiquidCrystal_I2C
      • OneWire
      If you didn't fully delete your old IDE software, you need to replace any libraries on your system with the three above.
    4. Download the new sketches for your boards from the configuration page.
    5. Start the new IDE and upload your new sketches to each appropriate board. It is easiest to have only one connected at a time so that you don't confuse com ports.
    You do not need to change any of your settings and all of your devices will remain unchanged.

    Then you can create an LCD device, only one per board. Below are some screenshots of the new device, my event and the hardware. I just threw the event together using some device variables, so the special characters don't display. The second line is the status of the heating system, the third is today's prediction and the fourth is tomorrow. It does show some of the possibilities.

    The Arduino is connected by Ethernet, with an Arduino POE shield. It powers the Board, the LCD and the Velleman KA05 I/O board.

    This was just a quick post, if you have any questions, one of us can help you out.

    .
    Attached Files
    Last edited by randy; June 10, 2015, 08:26 PM.

    #2
    What a great feature. I have a few questions.
    What outputs can be used for the data to the LCD?
    Will it prevent using 1 wire for the temperature sensors?
    To turn off the LCD when not needed by way of an occupancy sensor through the software can you use an output to drive the LCD directly or would it need to be isolated with a relay or driver.
    Would switching the LCD off and on have any affect on recognition of the interface or annoying delays in presenting the information when called on by the occupancy sensor.
    What version of LCD can be used for best comparability, chip drivers maximum characters etc.
    When updating the Arduino IDE software should the older libraries that were introduced into the IDE up-loader from V.36 be removed and then replaced with the new libraries that come along with the upgraded V.85? That part is not clear.
    Thank you for making such a great plugin I'm populating all my I/O's and glad that this had surfaced before I put it all in action, I wont have to re-do but incorporate my plan.

    Comment


      #3
      Originally posted by Daggy67 View Post
      What a great feature. I have a few questions.
      What outputs can be used for the data to the LCD?
      There are only one pair per Arduino and only one LCD is allowed per Arduino. The LCD uses:
      • GND - GND
      • VCC - 5V
      • SDA - UNO ANALOG Pin 4 - MEGA Pin 20
      • SCL - UNO ANALOG pin 5 - MEGA Pin 21
      Will it prevent using 1 wire for the temperature sensors?
      No. You can still assign 1 pin for OneWire sensors and more than one sensor can be added to that pin.
      To turn off the LCD when not needed by way of an occupancy sensor through the software can you use an output to drive the LCD directly or would it need to be isolated with a relay or driver.
      On the actions for line one of the LCD you can turn the LCD backlight on or off. You can also clear all lines of the display. On the actions for each of the four lines you can write or clear the line.
      Would switching the LCD off and on have any affect on recognition of the interface or annoying delays in presenting the information when called on by the occupancy sensor.
      No, controls are almost instant. You can clear the display and turn the LCD off, or populate the lines and turn the LCD on in a single event and it will update about as fast as the event can run.
      What version of LCD can be used for best comparability, chip drivers maximum characters etc.
      I put a link in for one that I know works. It MUST be a 4 line by 20 character as I said above. I have tried 4 different ones from eBay and only 1 didn't work. I will try to find out more information. I would think most I2C interfaces with 4 lines of 20 characters will work.
      When updating the Arduino IDE software should the older libraries that were introduced into the IDE up-loader from V.36 be removed and then replaced with the new libraries that come along with the upgraded V.85? That part is not clear.
      Yes. I'll edit the above post to make that clear. There are now only 3 additional libraries:
      • Dallas Temperature
      • LiquidCrystal_I2C
      • OneWire
      the rest come with the IDE. That is why I recommend uninstalling your current IDE as it will also delete the old libraries.
      Thank you for making such a great plugin I'm populating all my I/O's and glad that this had surfaced before I put it all in action, I wont have to re-do but incorporate my plan.
      The really neat thing about the plug-in is that as new features are added, it doesn't change existing configurations, you just occasionally need to upload new sketches. Greig has really made a great plug-in and I also appreciate his hard work.

      The updated manual included with the beta plug-in outlines the LCD features.

      Comment


        #4
        I also neglected to mention that the new beta has another valuable feature that has been incorporated in betas since mid-February. It is an "alive pin". From the manual:This feature is really useful. You can assign a pin as an "Alive" pin, then interface it with a relay or any other device you need to cause an action when the boards are no longer communicating with HomeSeer. This pin will go low if the board becomes disconnected, the power supply fails or the connection with the HomeSeer server is lost. You could have it operate an audible alert, a warning indicator, etc.

        I use it with a relay with an inverted input. When the Alive pin goes low, the relay is activated. This relay reverts my entire heating system to normal direct thermostat to zone control, bypassing HomeSeer automation. If my HomeSeer server or either Arduino fails, the system fails over to direct control.

        Comment


          #5
          Thank you for sharing. This is a great plugin. Keeping the user guide up to date is a bonus. Thank you for all the hard work. I'm sure everyone using it loves it, as I do.

          Comment


            #6
            Woooow! This is awesome!
            I suddenly got the need to install the beta.
            HSPro 3.0.0.458, Z-NET with Z-wave plugin 3.0.1.190, RFXCOM + 2x RFXtrx433E, HSTouch, Squeezebox plugin, iTach IP/WF2IR & GC-100-6 with UltraGCIR, BLDenon, NetcamStudio, Jon00s Webpage builder, Harmony Hub plugin, SCSIP (with FreePBX), Arduino plugin, IFTTT, Pushalot plugin, Device History plugin.
            Running on Windows 10 (64) virtualized
            on ESXi (Fujitsu Primergy TX150 S8).
            WinSeer (for Win10) - TextSeer - FitbitSeer - HSPI_MoskusSample

            Are you Norwegian (or Scandinavian) and getting started with HomeSeer? Read the "HomeSeer School"!

            Comment


              #7
              Originally posted by Daggy67 View Post
              Thank you for sharing. This is a great plugin. Keeping the user guide up to date is a bonus. Thank you for all the hard work. I'm sure everyone using it loves it, as I do.


              Originally posted by Moskus View Post
              Woooow! This is awesome!
              I suddenly got the need to install the beta.
              Thanks Guys.
              My plan in life is to make things as easy as possible and I hope people find the plugin easy to use. There have been some hurdles along the way but with Randy and other beta testers I think the plugin is getting there.
              The only think is I wish I had more time to sort things out but the real world catches up on me sometimes.

              If you have any problems with the beta or anything missing in the manual then please do tell me about it as I plan on making this a released version if there are no problems.

              Thanks again for your kind words as it make a difference knowing that the time and effort is appreciated.

              Greig.

              Sent from my HTC One using Tapatalk
              Zwave = Z-Stick, 3xHSM100� 7xACT ZDM230, 1xEverspring SM103, 2xACT HomePro ZRP210.
              X10 = CM12U, 2xAM12, 1xAW10, 1 x TM13U, 1xMS13, 2xHR10, 2xSS13
              Other Hardware = ADI Ocelot + secu16, Global Cache GC100, RFXtrx433, 3 x Foscams.
              Plugings = RFXcom, ActiveBackup, Applied Digital Ocelot, BLDeviceMatrix, BLGarbage, BLLAN, Current Cost, Global Cache GC100,HSTouch Android, HSTouch Server, HSTouch Server Unlimited, NetCAM, PowerTrigger, SageWebcamXP, SqueezeBox, X10 CM11A/CM12U.
              Scripts =
              Various

              Comment


                #8
                Greg the praise is well deserved, I've watched you and everyone involved take a great deal of time to do just that, make it simple. I just wish I was blessed with half the software skills most people on the forum have, I'm all hardware, not an ounce of coding ability, and all my friends are the same. No one to get me started I might be getting too old I think I have forgotten more than a 20 year old knows. Now I have had time to think about the LCD display I wonder how to make the LCD values also represent a variable along with momentary contact push buttons (n.o & n.c.) and be able to select a line and change the values to set points, my knowledge is too feeble to do this but can anyone suggest a way to do this. In static mode it will present the current values, select a button puts it in dynamic mode to make change to Humidity, temperature, or anything . 3 or 4 push buttons one to move the select line down with a select button that times out after time. I realize this would be difficult to do. But now you have a quick view of information it is only natural to want to make quick changes to the information presented and that would be set points (sorry for suggesting it but it was going to happen sooner or later). Perhaps using it together with a microphone a push button would start listening and select a line to change by voice (cat5 will allow long runs for a powered microphone (more on that)), or have resistor chain with resistors in series and the value would select the line through an analogue in pin. 100 ohmsX4 across 5vdc like a voltage divider. It might be bad practice using the resistor network for the many button pushes it would take to move values up or down, there would be too many miss read values from the quick button presses, you might need a discreet pin to ground for each up and down, but for single less repetitive presses it would work with a resistor divider network like selecting the line to change, but I might be wrong just thinking out loud.
                Is the new user guide for the updates available for download load on its own? I would like to look at it before I update to the new version. The only way I know how to get it is through the updater.
                THanx allot guys for making this the best most flexible tool out there. Every DIY person out there should have this plug in and learn how to use it. The popcorn of home automation is what I say.

                Comment


                  #9
                  Originally posted by Daggy67 View Post
                  Greg the praise is well deserved, I've watched you and everyone involved take a great deal of time to do just that, make it simple. I just wish I was blessed with half the software skills most people on the forum have, I'm all hardware, not an ounce of coding ability, and all my friends are the same. No one to get me started I might be getting too old I think I have forgotten more than a 20 year old knows. Now I have had time to think about the LCD display I wonder how to make the LCD values also represent a variable along with momentary contact push buttons (n.o & n.c.) and be able to select a line and change the values to set points, my knowledge is too feeble to do this but can anyone suggest a way to do this. In static mode it will present the current values, select a button puts it in dynamic mode to make change to Humidity, temperature, or anything . 3 or 4 push buttons one to move the select line down with a select button that times out after time. I realize this would be difficult to do. But now you have a quick view of information it is only natural to want to make quick changes to the information presented and that would be set points (sorry for suggesting it but it was going to happen sooner or later). Perhaps using it together with a microphone a push button would start listening and select a line to change by voice (cat5 will allow long runs for a powered microphone (more on that)), or have resistor chain with resistors in series and the value would select the line through an analogue in pin. 100 ohmsX4 across 5vdc like a voltage divider. It might be bad practice using the resistor network for the many button pushes it would take to move values up or down, there would be too many miss read values from the quick button presses, you might need a discreet pin to ground for each up and down, but for single less repetitive presses it would work with a resistor divider network like selecting the line to change, but I might be wrong just thinking out loud.
                  Is the new user guide for the updates available for download load on its own? I would like to look at it before I update to the new version. The only way I know how to get it is through the updater.
                  THanx allot guys for making this the best most flexible tool out there. Every DIY person out there should have this plug in and learn how to use it. The popcorn of home automation is what I say.
                  Thanks for your kind words.

                  The user guide for the Beta is available Here for you to have a look at.

                  The good news about your thoughts with the LCD is I cant think of a reason that it can not all be done with events. It may take lots of them but it should work.


                  I would start by creating a virtual device that has a the values of temperature, Humidity, screen3 ....... or name them what you like.

                  Next create an event for each screen so that when the virtual device changes value the appropriate screen shows up. This would mean when the virtual device changes value the screen is updated with the new values.

                  I think you could so this with 3 x push buttons. Up,down and select.

                  Then have other events for each button that when the buttons are presed ut updates the display or the value something like this:

                  1.if up is Pressed and select is not Pressed then add 1 to the virtual device value.
                  2.if down is Pressed and select is not Pressed then subtract 1 from the virtual device value.
                  3.if up is Pressed and select is Pressed then add 1 and virtual device value is 1(temperature) then update your temp by 1
                  4.if Down is Pressed and select is Pressed then add 1 and virtual device value is 1(temperature) then update your temp by subtracting 1


                  so with this set up you can go up and down through your screens with the up and down buttons but if you press and hold the select button then press up or down then it would update the device for that screen eg. Temp or Humid

                  I hope you understand this and I am sure Randy will pipe in with a better explanation of it all as I am not the best at describing things on the board.

                  Greig.
                  Zwave = Z-Stick, 3xHSM100� 7xACT ZDM230, 1xEverspring SM103, 2xACT HomePro ZRP210.
                  X10 = CM12U, 2xAM12, 1xAW10, 1 x TM13U, 1xMS13, 2xHR10, 2xSS13
                  Other Hardware = ADI Ocelot + secu16, Global Cache GC100, RFXtrx433, 3 x Foscams.
                  Plugings = RFXcom, ActiveBackup, Applied Digital Ocelot, BLDeviceMatrix, BLGarbage, BLLAN, Current Cost, Global Cache GC100,HSTouch Android, HSTouch Server, HSTouch Server Unlimited, NetCAM, PowerTrigger, SageWebcamXP, SqueezeBox, X10 CM11A/CM12U.
                  Scripts =
                  Various

                  Comment


                    #10
                    Originally posted by Daggy67 View Post
                    Greg the praise is well deserved, I've watched you and everyone involved take a great deal of time to do just that, make it simple. I just wish I was blessed with half the software skills most people on the forum have, I'm all hardware, not an ounce of coding ability, and all my friends are the same. No one to get me started I might be getting too old I think I have forgotten more than a 20 year old knows. Now I have had time to think about the LCD display I wonder how to make the LCD values also represent a variable along with momentary contact push buttons (n.o & n.c.) and be able to select a line and change the values to set points, my knowledge is too feeble to do this but can anyone suggest a way to do this. In static mode it will present the current values, select a button puts it in dynamic mode to make change to Humidity, temperature, or anything . 3 or 4 push buttons one to move the select line down with a select button that times out after time. I realize this would be difficult to do. But now you have a quick view of information it is only natural to want to make quick changes to the information presented and that would be set points (sorry for suggesting it but it was going to happen sooner or later). Perhaps using it together with a microphone a push button would start listening and select a line to change by voice (cat5 will allow long runs for a powered microphone (more on that)), or have resistor chain with resistors in series and the value would select the line through an analogue in pin. 100 ohmsX4 across 5vdc like a voltage divider. It might be bad practice using the resistor network for the many button pushes it would take to move values up or down, there would be too many miss read values from the quick button presses, you might need a discreet pin to ground for each up and down, but for single less repetitive presses it would work with a resistor divider network like selecting the line to change, but I might be wrong just thinking out loud.
                    Is the new user guide for the updates available for download load on its own? I would like to look at it before I update to the new version. The only way I know how to get it is through the updater.
                    THanx allot guys for making this the best most flexible tool out there. Every DIY person out there should have this plug in and learn how to use it. The popcorn of home automation is what I say.
                    What Greig is describing will probably work. I'll have to see if I can build something that will do what you are describing.

                    Comment


                      #11
                      Originally posted by rprade View Post
                      What Greig is describing will probably work. I'll have to see if I can build something that will do what you are describing.
                      OK boys do not go to far with this as I have been thinking more about it and I think I may have an easier way but I would need to do some coading and testing to confirm it will work.

                      Greig.
                      Zwave = Z-Stick, 3xHSM100� 7xACT ZDM230, 1xEverspring SM103, 2xACT HomePro ZRP210.
                      X10 = CM12U, 2xAM12, 1xAW10, 1 x TM13U, 1xMS13, 2xHR10, 2xSS13
                      Other Hardware = ADI Ocelot + secu16, Global Cache GC100, RFXtrx433, 3 x Foscams.
                      Plugings = RFXcom, ActiveBackup, Applied Digital Ocelot, BLDeviceMatrix, BLGarbage, BLLAN, Current Cost, Global Cache GC100,HSTouch Android, HSTouch Server, HSTouch Server Unlimited, NetCAM, PowerTrigger, SageWebcamXP, SqueezeBox, X10 CM11A/CM12U.
                      Scripts =
                      Various

                      Comment


                        #12
                        Originally posted by Daggy67 View Post
                        Greg the praise is well deserved, I've watched you and everyone involved take a great deal of time to do just that, make it simple. I just wish I was blessed with half the software skills most people on the forum have, I'm all hardware, not an ounce of coding ability, and all my friends are the same. No one to get me started I might be getting too old I think I have forgotten more than a 20 year old knows. Now I have had time to think about the LCD display I wonder how to make the LCD values also represent a variable along with momentary contact push buttons (n.o & n.c.) and be able to select a line and change the values to set points, my knowledge is too feeble to do this but can anyone suggest a way to do this. In static mode it will present the current values, select a button puts it in dynamic mode to make change to Humidity, temperature, or anything . 3 or 4 push buttons one to move the select line down with a select button that times out after time. I realize this would be difficult to do. But now you have a quick view of information it is only natural to want to make quick changes to the information presented and that would be set points (sorry for suggesting it but it was going to happen sooner or later). Perhaps using it together with a microphone a push button would start listening and select a line to change by voice (cat5 will allow long runs for a powered microphone (more on that)), or have resistor chain with resistors in series and the value would select the line through an analogue in pin. 100 ohmsX4 across 5vdc like a voltage divider. It might be bad practice using the resistor network for the many button pushes it would take to move values up or down, there would be too many miss read values from the quick button presses, you might need a discreet pin to ground for each up and down, but for single less repetitive presses it would work with a resistor divider network like selecting the line to change, but I might be wrong just thinking out loud.
                        Is the new user guide for the updates available for download load on its own? I would like to look at it before I update to the new version. The only way I know how to get it is through the updater.
                        THanx allot guys for making this the best most flexible tool out there. Every DIY person out there should have this plug in and learn how to use it. The popcorn of home automation is what I say.
                        One thought would be to use a counter.
                        • Create a counter called "LCDPage"
                        • Use a button to increment the counter. When the counter reaches 11 reset it to 1. Optionally have a button to decrement the counter. When the counter reaches 0 set it to 10, that would give you 10 different views.
                        • Then have ten events that write data to all four LCD lines. The events would have the trigger "IF LCDPage counter value becomes this: 1", "IF LCDPage counter value becomes this: 2", etc. There would be four actions to write new data to the LCD lines
                        • Optionally you could have a recurring event to increment the counter say once every 5 seconds that would have the pages automatically rotate through
                        • If you wanted to be really creative, you could increase number of different counter values and have the lines move up one at a time. A full page change would be to increment the counter by 4. A button press could increment the counter by 4 and your recurring event could increment it by 1


                        I'm just tossing out ideas here, but it could easily be done. As a proof of concept I am going to build the events this weekend. Below is a screenshot of the beginning.
                        Attached Files

                        Comment


                          #13
                          I have send Randy a test build with a proof of concept. I think it should work ok but may need tweeking or adding to.

                          Greig.

                          Sent from my HTC One using Tapatalk
                          Zwave = Z-Stick, 3xHSM100� 7xACT ZDM230, 1xEverspring SM103, 2xACT HomePro ZRP210.
                          X10 = CM12U, 2xAM12, 1xAW10, 1 x TM13U, 1xMS13, 2xHR10, 2xSS13
                          Other Hardware = ADI Ocelot + secu16, Global Cache GC100, RFXtrx433, 3 x Foscams.
                          Plugings = RFXcom, ActiveBackup, Applied Digital Ocelot, BLDeviceMatrix, BLGarbage, BLLAN, Current Cost, Global Cache GC100,HSTouch Android, HSTouch Server, HSTouch Server Unlimited, NetCAM, PowerTrigger, SageWebcamXP, SqueezeBox, X10 CM11A/CM12U.
                          Scripts =
                          Various

                          Comment


                            #14
                            Originally posted by enigmatheatre View Post
                            I have send Randy a test build with a proof of concept. I think it should work ok but may need tweeking or adding to.

                            Greig.

                            Sent from my HTC One using Tapatalk
                            I'll check it when I see it.

                            Comment


                              #15
                              Originally posted by Daggy67 View Post
                              Greg the praise is well deserved, I've watched you and everyone involved take a great deal of time to do just that, make it simple. I just wish I was blessed with half the software skills most people on the forum have, I'm all hardware, not an ounce of coding ability, and all my friends are the same. No one to get me started I might be getting too old I think I have forgotten more than a 20 year old knows. Now I have had time to think about the LCD display I wonder how to make the LCD values also represent a variable along with momentary contact push buttons (n.o & n.c.) and be able to select a line and change the values to set points, my knowledge is too feeble to do this but can anyone suggest a way to do this. In static mode it will present the current values, select a button puts it in dynamic mode to make change to Humidity, temperature, or anything . 3 or 4 push buttons one to move the select line down with a select button that times out after time. I realize this would be difficult to do. But now you have a quick view of information it is only natural to want to make quick changes to the information presented and that would be set points (sorry for suggesting it but it was going to happen sooner or later). Perhaps using it together with a microphone a push button would start listening and select a line to change by voice (cat5 will allow long runs for a powered microphone (more on that)), or have resistor chain with resistors in series and the value would select the line through an analogue in pin. 100 ohmsX4 across 5vdc like a voltage divider. It might be bad practice using the resistor network for the many button pushes it would take to move values up or down, there would be too many miss read values from the quick button presses, you might need a discreet pin to ground for each up and down, but for single less repetitive presses it would work with a resistor divider network like selecting the line to change, but I might be wrong just thinking out loud.
                              Is the new user guide for the updates available for download load on its own? I would like to look at it before I update to the new version. The only way I know how to get it is through the updater.
                              THanx allot guys for making this the best most flexible tool out there. Every DIY person out there should have this plug in and learn how to use it. The popcorn of home automation is what I say.
                              Greig sent me a new build. It will do what you want, but it may have some rough edges. I haven't had much time to play with it, but it will allow you to store the text, variables or a combination of both for each line of the LCD. You can store all 4 lines under a "menu" page. There are a total of 6 pages by default and you can add more. Then you can page up, page down or go directly to one of the menu pages with simple event actions.

                              I'll spend some time with it over the weekend, but in a nutshell it does what I was creating with events, without the counter. You still might want events to populate the lines of each menu, or you can do it manually. I think you could even populate multiple menus with a single event. You will need events to go through or go to the menu pages.

                              Comment

                              Working...
                              X