Showing posts with label LCD display. Show all posts
Showing posts with label LCD display. Show all posts

Wednesday, 2 July 2014

External Wireless Temperature measurement

This project was required so that I could monitor the temperature inside a temporary lean-to / greenhouse I made to winter some frost hating plants in.

There are basically two modules, the transmitter and the receiver.
Receiver
Transmitter
The transmitter uses a Jeenode from Jeelabs to read the temperature from two DS18B20s, one inside the greenhouse and the other in the form of a probe placed outside the greenhouse to measure the ambient temp.

The receiver uses one of my own PCBs which is essentially a jeenode with an added uSD card slot, the display is from Jeelabs and is designed to sit directly on top of a Jeenode but it's not the cheapest display you can use.  The receiver can also be made using a standard Jeenode instead of my PCB.

I run the transmitter off some old lithium rechargeable 1850 cells taken from an old laptop battery, the receiver also runs on a lithium battery from a mobile phone but you can use any batteries you like from 3 to 5 V.

The battery voltages of both the transmitter and receiver are monitored and displayed on the LCD, the code for the battery monitoring was taken from the Jeelabs blog here and the sleep functions were also from the same post using the Jeelib libraries.

Sketches can be downloaded for transmitter and receiver.

Any questions or comments, feel free.








Wednesday, 6 November 2013

Another update to the OLED 1602 Library

I've made a change to the 1602 OLED library and also added a new function.

I've modified the sendString() function to now include the cursor position data and added a new function called sendFloat(), this allows you to send float data values, such as temperature, to the LCD ant it gets converted to a string before being sent to the display.

The sendFloat function takes the following parameters: float value, minimum length inc. decimal point, number of positions after the decimal point, the start column position, the start row position.

I've updated the library in my GitHub repository here

Please note that older sketches using the sendString() function will not work with the new library and will need to be altered.

/*
Demo sketch to display Strings and float values on the OLED
1602 display  from Wide.HK. This uses a Lbrary that I've
put together containing some basic functions.
 The I2C Address is set to 0x3C in OLedI2C.cpp
 Phil Grant 2013 www.gadjet.co.uk
 */

#include "Wire.h"
#include "OLedI2C.h"
OLedI2C LCD;
float digit;

void setup()
{
  Wire.begin();
  LCD.init();
  digit = 21.6;//This would normally be the float value returned from a temp sensor or other sensor
}
void loop()
{
  LCD.sendString("Temp",0,0);// now includes the cursor position data (col, row)
  LCD.sendFloat(digit,5,2,7,0);//Send the string to the display
  while(1);
}

Sunday, 29 September 2013

OLED 1602 Display and library for the SSD1311

Following on from the last post, the OLED 2 line 16 character display arrived from Hong Kong.




The display uses I2C to connect to the host and will work at 3.3 or 5V so is ideal to use with an Arduino board.

The supplier WIDE.HK supplies some sample code to get it running in the form of a QR code on the packaging that links to the the code and a couple of PDF datasheets.

The code uses a long winded method to initialise and write to the display, but it gets it working.

I have been thinking it was about time I learned how to create a library and this gave me the reason to give it a go, as well as not being able to find a library for this device anywhere on the web.

The very basic Library can be downloaded here, please remember this is my first attempt at creating a library, it works but I imagine it needs more functions adding before it becomes very useful.

Library updated 7/11/13 see here.

Here is the demo code I wrote using the library: -
/*
Demo sketch to display text on the OLED 1602 display
from Wide.HK. This uses a Lbrary that I've put together
containing some basic functions.
The I2C Address is set to 0x3C in OLedI2C.cpp
Phil Grant 2013 www.gadjet.co.uk

Sketch updated to work with new library 7/11/13
*/
#include  "Wire.h"    
#include  "OLedI2C.h"  
OLedI2C LCD;
void setup()
{
  Wire.begin();
  LCD.init();  
}
void loop()
{
  //Set cursor position to col and row, top row is 0, first col is 0
  // no longer required LCD.cursPos(4,0); //(col,row)
  LCD.sendString("Gadjet's", 4, 0);    //("String", col, row)
  // no longer required LCD.cursPos(6,1); //Set cursor position to col and row 
  LCD.sendString("BLOG", 6, 1);   //("String", col, row)
  while(1);
}

As usual, feedback welcomed, use the comments if you found this library useful ...... or not.


New Accessories for the AirChrony S3

With the increasing abilities of AI it has become so much easier to take an idea to a finished, working item in a really short time. I was t...

Popular Posts