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]
Rating:
Author: MIKROE
Last Updated: 2021-07-05
Package Version: 1.0.0.0
mikroSDK Library: 1.0.0.0
Category: Environmental
Downloaded: 1852 times
Not followed.
License: MIT license
HVAC Click is a compact add-on board that contains Sensirion’s next-generation miniature CO2 sensor. This board features the SCD41, a carbon dioxide sensor build on the photoacoustic sensing principle, and Sensirion’s patented PASens® and CMOSens® technology to offer high accuracy at a minor form factor. On-chip signal compensation is realized with the build-in humidity and temperature sensor. It operates within a specified range from 400 to 5’000 ppm, configurable through the I2C interface with a single shot mode supported. This Click board™ is also suitable for indoor air quality applications using an additional SPS30 that allows smart ventilation systems to regulate ventilation in the most energy-efficient and human-friendly way, maintaining low CO2 concentration for a healthy, productive environment.
Do you want to subscribe in order to receive notifications regarding "HVAC click" changes.
Do you want to unsubscribe in order to stop receiving notifications regarding "HVAC click" changes.
Do you want to report abuse regarding "HVAC click".
Library Description
The library covers all the necessary functions to control the HVAC Click board.
A library performs the communication with the SCD40 Sensor via the I2C interface
and with the SPS30 via the I2C or UART interface.
Key functions:
void hvac_scd40_read_measurement ( measuremen_data_t *m_data )
- SCD40 read measurement function.void hvac_sps30_start_measurement ( void )
-void hvac_sps30_read_measured_data ( mass_and_num_cnt_data_t *m_n_c_data )
-Examples description
The application is composed of three sections :
void application_task ( ) { if ( select_communication == I2C_COMMUNICATION ) { hvac_scd40_send_cmd( HVAC_MEASURE_SINGLE_SHOT ); Delay_ms( 5000 ); hvac_scd40_read_measurement( &hvac_data ); Delay_ms( 100 ); WordToStr( hvac_data.co2_concent, log_text ); mikrobus_logWrite( " CO2 Concent = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_LINE ); FloatToStr( hvac_data.temperature, log_text ); mikrobus_logWrite( " Temperature = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " C", _LOG_LINE ); FloatToStr( hvac_data.r_humidity, log_text ); mikrobus_logWrite( " R. Humidity = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " %", _LOG_LINE ); mikrobus_logWrite( "- - - - - - - - - - - - - ", _LOG_LINE ); while ( hvac_sps30_get_ready_flag( ) != HVAC_SPS30_NEW_DATA_IS_READY ); } mikrobus_logWrite( " Mass Concentration : ", _LOG_LINE ); hvac_sps30_read_measured_data( &sps30_data ); Delay_ms( 100 ); FloatToStr( sps30_data.mass_pm_1_0, log_text ); mikrobus_logWrite( " PM 1.0 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " ug/m3", _LOG_LINE ); FloatToStr( sps30_data.mass_pm_2_5, log_text ); mikrobus_logWrite( " PM 2.5 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " ug/m3", _LOG_LINE ); FloatToStr( sps30_data.mass_pm_4_0, log_text ); mikrobus_logWrite( " PM 4.0 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " ug/m3", _LOG_LINE ); FloatToStr( sps30_data.mass_pm_10, log_text ); mikrobus_logWrite( " PM 10 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " ug/m3", _LOG_LINE ); mikrobus_logWrite( "- - - - - - - ", _LOG_LINE ); mikrobus_logWrite( " Number Concentration : ", _LOG_LINE ); FloatToStr( sps30_data.num_pm_0_5, log_text ); mikrobus_logWrite( " PM 0.5 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " n/cm3", _LOG_LINE ); FloatToStr( sps30_data.num_pm_1_0, log_text ); mikrobus_logWrite( " PM 1.0 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " n/cm3", _LOG_LINE ); FloatToStr( sps30_data.num_pm_2_5, log_text ); mikrobus_logWrite( " PM 2.5 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " n/cm3", _LOG_LINE ); FloatToStr( sps30_data.num_pm_4_0, log_text ); mikrobus_logWrite( " PM 4.0 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " n/cm3", _LOG_LINE ); FloatToStr( sps30_data.num_pm_10, log_text ); mikrobus_logWrite( " PM 10 = ", _LOG_TEXT ); mikrobus_logWrite( log_text, _LOG_TEXT ); mikrobus_logWrite( " n/cm3", _LOG_LINE ); mikrobus_logWrite( "--------------------------", _LOG_LINE ); Delay_ms( 2000 ); } }
Other mikroE Libraries used in the example:
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB 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.