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-23
Revision:
8:6f30f477fa23
Parent:
6:6c61186c8739

File content as of revision 8:6f30f477fa23:

#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();
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_ */