Smoke Click
Smoke Click demo application is developed using the NECTO Studio, ensuring compatibility with mikroSDK's open-source libraries and tools. Designed for plug-and-play implementation and testing, the demo is fully compatible with all development, starter, and mikromedia boards featuring a mikroBUS™ socket.
Click Library
- Author : MikroE Team
- Date : Feb 2020.
- Type : I2C type
Software Support
Example Description
This Click includes internal LEDs, photodetectors, optical elements, and low-noise electronics with ambient light rejection. The sensor can detect a wide variety of smoke particle sizes. It also has an on-chip temperature sensor for calibrating the temperature dependence of the particle sensing subsystem. The temperature sensor has an inherent resolution 0.0625°C.
Example Libraries
- MikroSDK.Board
- MikroSDK.Log
- Click.Smoke
Example Key Functions
- smoke_cfg_setup Config Object Initialization function.
void smoke_cfg_setup(smoke_cfg_t *cfg)
Config Object Initialization function.
Click configuration structure definition.
Definition smoke.h:316
- smoke_init Initialization function.
SMOKE_RETVAL smoke_init(smoke_t *ctx, smoke_cfg_t *cfg)
Initialization function.
Click ctx object definition.
Definition smoke.h:292
- smoke_default_cfg Click Default Configuration function.
void smoke_default_cfg(smoke_t *ctx)
Click Default Configuration function.
- smoke_set_registers Set registers values function.
uint8_t smoke_set_registers(smoke_t *ctx, smoke_set_registers_t *registers)
Set registers values function.
Click registers object definition.
Definition smoke.h:337
- smoke_enable_disable_interrupts Enable or disable interrupt function.
uint8_t smoke_enable_disable_interrupts(smoke_t *ctx, uint8_t interrupt_flag, uint8_t enable_flag)
Enable or disable interrupt function.
- smoke_read_leds Function for reading enabled led values.
uint8_t smoke_read_leds(smoke_t *ctx)
Function for reading enabled leds.
Application Init
Initalizes I2C driver, and sets default configuration of device.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
log_info( &logger, "---- Application Task ----" );
Delay_ms ( 100 );
{
log_info( &logger, "---- Init Error ----" );
for( ; ; );
}
}
#define SMOKE_OK
Definition smoke.h:78
#define SMOKE_MAP_MIKROBUS(cfg, mikrobus)
Definition smoke.h:66
void smoke_reset(smoke_t *ctx)
Reset device function.
void application_init(void)
Definition main.c:42
Application Task
This example demonstrates the use of Smoke Click board. It reads reflected red, ir, green and temperature values from an internal sensor and displays and logs it.
{
log_printf( &logger, "Red : %llu\r\n", smoke.red_value );
log_printf( &logger, "IR : %llu\r\n", smoke.ir_value );
log_printf( &logger, "Green : %llu\r\n", smoke.green_value );
log_printf( &logger, "------------------------------\r\n" );
log_printf( &logger, "Read Temperature[ degC ]: %.2f\r\n", temperature );
log_printf( &logger, "------------------------------\r\n" );
Delay_ms ( 500 );
}
float smoke_read_temp(smoke_t *ctx)
Read temperature in Centigrade function.
void application_task(void)
Definition main.c:78
Application Output
This Click board can be interfaced and monitored in two ways:
- Application Output - Use the "Application Output" window in Debug mode for real-time data monitoring. Set it up properly by following this tutorial.
- UART Terminal - Monitor data via the UART Terminal using a USB to UART converter. For detailed instructions, check out this tutorial.
Additional Notes and Information
The complete application code and a ready-to-use project are available through the NECTO Studio Package Manager for direct installation in the NECTO Studio. The application code can also be found on the MIKROE GitHub account.