通过我们的网关解决方案体验最优质的创新,安全连接到Click Cloud,这是将您的创意变为现实的理想平台。
A
A
硬件概览
它是如何工作的?
Go to Cloud (G2C) Click是一款Click板™,允许通过WiFi网络连接到功能丰富的Click Cloud平台。Go to Cloud (G2C) Click旨在让用户可以轻松添加云连接,并使用一组简单的AT命令开发自己的基于云的应用程序,而无需深入研究与网页、硬件和通信相关的复杂开发。由于这种简化的方法,任何人都可以使用Go to Cloud (G2C) Click和Click Cloud解决方案获益,因为该Click板™的固件中已经实现了所有必要的协议和通信设置。这节省了本来会浪费在固件开发上的大量时间,以及适应第三方解决方案的时间。更不用说,这样的努力还需要嵌入式和网页编程的熟练程度,以及其他多项工程技能。而G2C Click与Click Cloud解决方案紧密配
合,开箱即用。Go to Cloud (G2C) Click在其端执行若干任务,这些任务是连接到Click Cloud平台所必需的。要建立连接,需要访问具有Internet连接的WiFi网络。为了可靠的WiFi网络连接,Click板™采用了ESP WROOM-02 WiFi模块,这是一个成熟的集成WiFi解决方案。Click板™使用一个强大的MCU来管理连接参数,初始化ESP-WROOM-02 WiFi模块,并与Click Cloud平台建立连接。这使得通过发出一组简短的AT命令(例如SSID、密码、device_ID等)可以在几个简单步骤内设置连接。每个AT命令及其响应的详细解释可以在AT命令手册中找到。除了用于设置基本连接参数的AT命令外,还有AT命令允许存储连接参数,包括连
接密码、网络SSID、device_ID和其他相关连接数据。这些参数可以存储在Go to Cloud (G2C) Click的非易失性存储器中。可以通过一个宏命令恢复它们,从而简化连接过程。Go to Cloud (G2C) Click的功能将在未来不断改进。因此,Go to Cloud (G2C) Click支持通过板载USB连接器升级其固件。固件更新过程非常简单,使用MikroElektronika熟悉的“HID Bootloader”软件工具。Go to Cloud (G2C) Click配备了四个LED指示灯,用于指示电源、WiFi网络连接、USB连接和Click Cloud解决方案连接的状态。这些LED提供有关Go to Cloud (G2C) Click状态的视觉反馈。此Click板™需要3.3V和5V电源轨以正常运行。
功能概述
开发板
PIC32MZ Clicker 是一款紧凑型入门开发板,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位带有浮点单元的 Microchip PIC32MZ 微控制器,一个 USB 连接器,LED 指示灯,按钮,一个 mikroProg 连接器,以及一个用于与外部电子设备接口的头部。得益于其紧凑的设计和清晰易识别的丝网标记,它提供了流畅且沉浸式的工作体验,允许在任
何情况下、任何地方都能访问。PIC32MZ Clicker 开 发套件的每个部分都包含了使同一板块运行最高效的必要组件。除了可以选择 PIC32MZ Clicker 的编程方式,使用 USB HID mikroBootloader 或通过外部 mikroProg 连接器为 PIC,dsPIC 或 PIC32 编程外,Clicker 板还包括一个干净且调节过的开发套件电源供应模块。USB Micro-B 连接可以提供多达 500mA 的电流,这足以操作所有板载和附加模块。所有
mikroBUS™ 本身支持的通信方法都在这块板上,包 括已经建立良好的 mikroBUS™ 插槽、重置按钮以及若干按钮和 LED 指示灯。PIC32MZ Clicker 是 Mikroe 生态系统的一个组成部分,允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
1024
硅供应商
Microchip
引脚数
64
RAM (字节)
524288
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
实时跟踪您的结果
应用程序输出
1. 应用程序输出 - 在调试模式下,“应用程序输出”窗口支持实时数据监控,直接提供执行结果的可视化。请按照提供的教程正确配置环境,以确保数据正确显示。

2. UART 终端 - 使用UART Terminal通过USB to UART converter监视数据传输,实现Click board™与开发系统之间的直接通信。请根据项目需求配置波特率和其他串行设置,以确保正常运行。有关分步设置说明,请参考提供的教程。

3. Plot 输出 - Plot功能提供了一种强大的方式来可视化实时传感器数据,使趋势分析、调试和多个数据点的对比变得更加直观。要正确设置,请按照提供的教程,其中包含使用Plot功能显示Click board™读数的分步示例。在代码中使用Plot功能时,请使用以下函数:plot(insert_graph_name, variable_name);。这是一个通用格式,用户需要将“insert_graph_name”替换为实际图表名称,并将“variable_name”替换为要显示的参数。

软件支持
库描述
该库包含Go to Cloud (G2C) Click驱动程序的 API。
关键功能:
g2c_reset_device
- 通过切换RST引脚重置设备。g2c_set_net_creds
- 设置WiFi网络凭据。g2c_set_broker_creds
- 设置代理凭据(设备密钥和密码)。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief G2C Click example
*
* # Description
* This example reads and processes data from G2C clicks.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes driver and power module.
*
* ## Application Task
* Reads the received data and parses it.
*
* ## Additional Function
* - g2c_process ( ) - The general process of collecting presponce
* that sends a module.
*
* ## Note
* - WiFi credentials for Planet Debug utilization: username: MikroE Public
* password: mikroe.guest
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "g2c.h"
#include "string.h"
#define PROCESS_COUNTER 10
#define PROCESS_RX_BUFFER_SIZE 500
#define PROCESS_PARSER_BUFFER_SIZE 500
// ------------------------------------------------------------------ VARIABLES
static g2c_t g2c;
static log_t logger;
// AT commands
#define ATE "ATE1"
#define AT "AT"
#define AT_CEN "AT+CEN=1"
#define AT_NWCR "AT+NWCR"
#define AT_NWC "AT+NWC=1"
#define AT_BRCR "AT+BRCR"
#define AT_BRC "AT+BRC=1"
#define AT_DSET "AT+DSET"
#define AT_PUB "AT+PUB"
// Sensor/Actuator reference
#define ACTUATOR_SW_REF "G2C_TEST_AB"
#define ACTUATOR_STR_REF "G2C_TEST_AS"
#define ACTUATOR_CNT_REF "G2C_TEST_AC"
#define SENSOR_REF "G2C_TEST_S"
// Operator settings
#define NETWORK_USERNAME "network_username"
#define NETWORK_PASSWORD "network_password"
// Broker(device) settings
#define DEVICE_KEY "device_key"
#define DEVICE_PASSWORD "device_password"
static char data_buf[ 20 ] = "12.2";
static char current_parser_buf[ PROCESS_PARSER_BUFFER_SIZE ];
static uint8_t send_data_cnt = 0;
// ------------------------------------------------------- ADDITIONAL FUNCTIONS
static void g2c_process ( void )
{
int32_t rsp_size;
uint16_t rsp_cnt = 0;
char uart_rx_buffer[ PROCESS_RX_BUFFER_SIZE ] = { 0 };
uint8_t check_buf_cnt;
uint8_t process_cnt = PROCESS_COUNTER;
// Clear parser buffer
memset( current_parser_buf, 0 , PROCESS_PARSER_BUFFER_SIZE );
while( process_cnt != 0 )
{
rsp_size = g2c_generic_read( &g2c, &uart_rx_buffer, PROCESS_RX_BUFFER_SIZE );
if ( rsp_size > 0 )
{
// Validation of the received data
for ( check_buf_cnt = 0; check_buf_cnt < rsp_size; check_buf_cnt++ )
{
if ( uart_rx_buffer[ check_buf_cnt ] == 0 )
{
uart_rx_buffer[ check_buf_cnt ] = 13;
}
}
log_printf( &logger, "%s", uart_rx_buffer );
// Storages data in parser buffer
rsp_cnt += rsp_size;
if ( rsp_cnt < PROCESS_PARSER_BUFFER_SIZE )
{
strncat( current_parser_buf, uart_rx_buffer, rsp_size );
}
// Clear RX buffer
memset( uart_rx_buffer, 0, PROCESS_RX_BUFFER_SIZE );
}
else
{
process_cnt--;
// Process delay
Delay_100ms( );
}
}
}
static void actuator_demo( char *rsp )
{
uint8_t sw_state;
int16_t cnt_state;
char str_data_buf[ 50 ];
uint8_t err = G2C_PARSER_NO_ERROR;
// Actuator switch example
err = g2c_actuator_sw_parser( rsp, ACTUATOR_SW_REF, &sw_state );
if ( err == G2C_PARSER_NO_ERROR )
{
log_printf( &logger, ">> ACTUATOR SW STATE: %d\r\n", sw_state );
}
// Actuator counter example
err = g2c_actuator_cnt_parser( rsp, ACTUATOR_CNT_REF, &cnt_state );
if ( err == G2C_PARSER_NO_ERROR )
{
log_printf( &logger, ">> ACTUATOR CNT NUM: %d\r\n", cnt_state );
}
// Actuator string example
err = g2c_actuator_str_parser( rsp, ACTUATOR_STR_REF, str_data_buf );
if ( err == G2C_PARSER_NO_ERROR )
{
log_printf( &logger, ">> ACTUATOR TEXT DATA: %s\r\n", str_data_buf );
}
}
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
g2c_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
g2c_cfg_setup( &cfg );
G2C_MAP_MIKROBUS( cfg, MIKROBUS_1 );
g2c_init( &g2c, &cfg );
// Power module.
g2c_module_power( &g2c, true, 0 );
g2c_reset( &g2c );
// Send command.
log_printf( &logger, ">> ATE \r\n" );
g2c_send_command( &g2c, ATE );
Delay_ms( 3000 );
g2c_process( );
log_printf( &logger, ">> AT \r\n" );
g2c_send_command( &g2c, AT );
Delay_ms( 3000 );
g2c_process( );
log_printf( &logger, ">> AT_CEN \r\n" );
g2c_send_command( &g2c, AT_CEN );
g2c_process( );
log_printf( &logger, ">> NETWORK \r\n" );
g2c_send_operator_cfg( &g2c, NETWORK_USERNAME, NETWORK_PASSWORD );
g2c_process( );
log_printf( &logger, ">> AT NWC \r\n" );
g2c_send_command( &g2c, AT_NWC );
g2c_process( );
log_printf( &logger, ">> DEVICE \r\n" );
g2c_send_broker_cfg( &g2c, DEVICE_KEY, DEVICE_PASSWORD );
g2c_process( );
log_printf( &logger, ">> AT BRC \r\n" );
g2c_send_command( &g2c, AT_BRC );
g2c_process( );
Delay_ms( 3000 );
}
void application_task ( void )
{
g2c_process( );
actuator_demo( current_parser_buf );
if ( send_data_cnt == 5 )
{
log_printf( &logger, ">> ACTUATOR REF \r\n" );
g2c_send_data_ref( &g2c, ACTUATOR_STR_REF, data_buf );
g2c_process( );
log_printf( &logger, ">> AT PUB \r\n" );
g2c_send_command( &g2c, AT_PUB );
g2c_process( );
send_data_cnt = 0;
}
send_data_cnt++;
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END