TOP Contributors

  1. MIKROE (2784 codes)
  2. Alcides Ramos (402 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (129 codes)
  5. Bugz Bensce (97 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (140766 times)
  2. FAT32 Library (73351 times)
  3. Network Ethernet Library (58196 times)
  4. USB Device Library (48380 times)
  5. Network WiFi Library (43975 times)
  6. FT800 Library (43537 times)
  7. GSM click (30466 times)
  8. mikroSDK (29170 times)
  9. PID Library (27166 times)
  10. microSD click (26847 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
mikroSDK Library

Thermostat 3 click

Rating:

5

Author: MIKROE

Last Updated: 2019-08-28

Package Version: 1.0.0.0

mikroSDK Library: 1.0.0.0

Category: Temperature & humidity

Downloaded: 3376 times

Not followed.

License: MIT license  

Thermostat 3 Click is a general-purpose thermostat Click board designed to be used with any temperature sensor based on the MAX31855 sensor design.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "Thermostat 3 click" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "Thermostat 3 click" changes.

Do you want to report abuse regarding "Thermostat 3 click".

  • mikroSDK Library 2.0.0.0
  • Comments (0)
DOWNLOAD LINK RELATED COMPILER CONTAINS
mikroBasic PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc

mikroSDK Library Blog

Thermostat 3 click

Thermostat 3 click

Native view of the Thermostat 3 click board.

View full image
Thermostat 3 click

Thermostat 3 click

Front and back view of the Thermostat 3 click board.

View full image

Library Description

The library initializes and defines the SPI bus driver and drivers that offer a choice for read data form SPI lines. With functions from the library it is possible to read Internal or Thermocouple temperature data in Celsius, Kelvin or Fahrenheit. The library provides full relay control and reads fault error status.

Key functions:

  • float thermostat3_getInternalTemperature(uint8_t TempIn) - Junction (Internal) Temperature
  • float thermostat3_getThermocoupleTemperature(uint8_t TempIn) - Thermocouple Temperature (K probe)
  • void thermostat3_relayControl(uint8_t relayPos) - Relay Control

Examples description

The application is composed of three sections :

  • System Initialization - Initialzes SPI module and all the necessary GPIO pins
  • Application Initialization - Initialization driver init
  • Application Task - Waits for valid user input and executes functions based on set of valid commands
  • Commands : 'e' - Display Thermocouple temperature 'i' - Display Internal temperature 'r' - Relay control (Relay ON / OFF) 'f' - Fault flag (Active ON / OFF) '+' - Change fault flage and display fault status(ERROR / OK)
void applicationTask()
{
    uint8_t dataReady_;
    char receivedData_;
    
    thermostat3_process();
    
    dataReady_ = UART_Rdy_Ptr();

    if (dataReady_ != 0)
    {
        receivedData_ = UART_Rd_Ptr();

        switch (receivedData_)
        {
            case 'i' :
            {
                InternalTemp = thermostat3_getInternalTemperature(_THERMOSTAT3_TEMP_IN_CELSIUS);

                FloatToStr(InternalTemp, demoText);
                mikrobus_logWrite("# Internal Temperature: ", _LOG_TEXT);
                mikrobus_logWrite(demoText, _LOG_LINE);
                break;
            }
            case 'e' :
            {
                ThermocoupleTemp = thermostat3_getThermocoupleTemperature(_THERMOSTAT3_TEMP_IN_CELSIUS);

                FloatToStr(ThermocoupleTemp, demoText);
                mikrobus_logWrite("# Thermocouple Temperature: ", _LOG_TEXT);
                mikrobus_logWrite(demoText, _LOG_LINE);
                break;
            }
            case 'r' :
            {
                if(_relayFlag == 1)
                {
                    _relayFlag = 0;
                    thermostat3_relayControl(_THERMOSTAT3_RELAY_OFF);
                    mikrobus_logWrite("# Relay OFF", _LOG_LINE);
                }
                else
                {
                    _relayFlag = 1;
                    thermostat3_relayControl(_THERMOSTAT3_RELAY_ON);
                    mikrobus_logWrite("# Relay ON", _LOG_LINE);
                }
                break;
            }
            case 'f' :
            {
                if(_faultFlag == 1)
                {
                    _faultFlag = 0;
                    mikrobus_logWrite("# Fault status -- OFF", _LOG_LINE);
                }
                else
                {
                    _faultFlag = 1;
                    mikrobus_logWrite("# Fault status -- ON", _LOG_LINE);
                }
                break;
            }
            case '+' :
            {
                if(_faultFlag == 1)
                {
                    _fError++;
                    if(_fError > 3)
                    {
                        _fError = 0;
                    }
                    _displayFault(_fError);
                    _faultStatus = thermostat3_getFaultData(0x01 << _fError);
                    
                    if (_faultStatus == 1 )
                    {
                        mikrobus_logWrite(" -- ERROR", _LOG_LINE);
                    }
                    else
                    {
                        mikrobus_logWrite(" -- OK", _LOG_LINE);
                    }
                }
                else
                {
                    mikrobus_logWrite(" Fault status is OFF, Please turn ON fault status!!!", _LOG_LINE);
                }
                break;
            }
        }
    }
}

Additional Functions :

  • void _displayFault( ) - Display fault

The full application code, and ready to use projects can be found on our LibStock page.

Other mikroE Libraries used in the example:

  • SPI Library
  • UART Library
  • Conversions

Additional notes and informations

Depending on the development board you are using, you may need USB UART clickUSB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.

ALSO FROM THIS AUTHOR

Accel 11 click

5

Accel 11 click features an ultra-low power triaxial accelerometer sensor with embedded intelligence, labeled as the BMA456.

[Learn More]

Binho Nova Click

0

Binho Nova Click is an adapter Click board™ that can be used as a multi-protocol adapter. This board features two female 1.27mm 2x5 connectors suitable for connecting the Binho Nova Multi-Protocol USB Host Adapter depending on the desired interface. This Click board™ is designed for ultimate flexibility and provides the ability to use this adapter with different communication protocols, such as I2C, SPI, or UART. It features five signal pins, which can be used as Digital Input/Output, PWM Output, Digital Interrupt, or Analog Input/Output. Along with these connectors, it also features two power jumpers that can be used to supply the host from the Binho Nova.

[Learn More]

LTE IoT 7 Click

0

LTE IoT 7 Click is an add-on board representing a secure-cloud multi-band solution designed for IoT applications. This board features the SARA-R422M8S, a multi-band LTE-M/NB-IoT/EGPRS multi-mode solution with integrated high-performance standard precision M8 GNSS receiver for global position acquisition from u-blox. Equipped with familiar AT commands set over the UART interface, USB interface, and Network and Status indicators, it also provides over-the-air firmware updates, end-to-end trusted domain security, and u-Blox’s leading GNSS technology.

[Learn More]