This program is an advanced "IoT" thermometer using LM75B component library. It displays the current value to the Serial host in Celcius or Fahrenheit (possible to change using a switch). It also stores an historic and displays it to the user using the LCD screen. Moreover, you can change the orientation of the screen by turning the device, just like a smartphone.

Dependencies:   C12832 FXOS8700CQ LM75B mbed

ThermalDisplayer.h

Committer:
co838_gtvl2
Date:
2016-02-10
Revision:
4:5bf99eb2d740
Parent:
2:5d0c209e5c61
Child:
6:6c61186c8739

File content as of revision 4:5bf99eb2d740:

#ifndef _THERMALDISPLAYER_H_
# define _THERMALDISPLAYER_H_

# include "main.h"
# include <list>
# include <iterator>

class ThermalDisplayer
{
public:
    ThermalDisplayer();
    void addTemp(const float&);
    void display();
    void adjustScale(Serial&);
private:
    static const int MAX_SIZE = 64;
    static const int DISPLAY_X = 127;
    static const int DISPLAY_Y = 31;
    static const int MIN_MIN_SCALE = 0;
    static const int MAX_MIN_SCALE = 20;
    static const int MIN_MAX_SCALE = 30;
    static const int MAX_MAX_SCALE = 50;
    std::list<float> temperatures;
    C12832 *lcd;                        // LCD screen
    AnalogIn pot;                       // Potentiometer POT2 to adjust the graphic's scale
    FXOS8700CQ accel;
    int minScale;
    int maxScale;
    bool screenOrientation;
};


#endif /* _THERMALDISPLAYER_H_ */