0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

外設(shè)移植 安信可Ai-WB2+FPM383C指紋

AIoT行業(yè)洞察 ? 來(lái)源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-10-29 14:54 ? 次閱讀

以下作品由安信可社區(qū)用戶

WT_0213制作

關(guān)于 FPM383C 指紋模塊 在之前的帖子介紹的已經(jīng)比較詳細(xì)了可以看下這個(gè)帖子。

【外設(shè)移植】FPM383C 指紋模塊 +Ai-M61-32S

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43963&fromuid=15918

這里主要說(shuō)一下移植 FPM383C 指紋到 Ai-WB2 模塊時(shí)遇到的一些問(wèn)題和移植完成示例。

首先是環(huán)境搭建

【Ai-WB2 入門篇】搭建 windows+eclipse 環(huán)境
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45149&fromuid=15918

跟著園長(zhǎng)的教程完成環(huán)境搭建基本不會(huì)出現(xiàn)什么意外情況,都可以正常跑起來(lái)。

這里有個(gè)小坑需要注意:

盡量使用克隆命令克隆項(xiàng)目,不要直接下載 zip
git clone --recursive
https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2

如果對(duì)配置文件不熟悉的話盡量按照現(xiàn)有的一些目錄接口創(chuàng)建自己的項(xiàng)目這樣可以盡可能少的去修改配置文件。

如果在其他目錄下創(chuàng)建項(xiàng)目,需要注意的是 BL60X_SDK_PATH 這個(gè)值要能找到 sdkpath。

wKgaoWcghr2Ae-ZyAABR_lw7GEY958.jpg

編譯過(guò)程有一些警告,如果不是自己代碼中的可以忽略。

如果編譯通過(guò)的話最終會(huì)生成 bin 文件。

wKgZoWcghr2AEQwzAABpwL17uOA117.jpg

Ai-WB2 燒錄軟件
https://docs.ai-thinker.com/_media/bl602_flash_download_tool.zip
燒錄過(guò)程參考
【Ai-WB2 入門篇】新建工程和燒錄指導(dǎo)
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45156&fromuid=15918

這里有小坑需要注意一下:

wKgaoWcghr6AN-nJAACF7r9OngM191.jpg

1、如果出現(xiàn) COM 口拒絕訪問(wèn),檢查下時(shí)候開(kāi)啟的串口調(diào)試工具。

2、如果提示 BFLB IMG LOAD SHAKEHAND FAIL 應(yīng)該是沒(méi)有進(jìn)入燒錄模式,點(diǎn)擊 Create & Download 然后按住開(kāi)發(fā)板右側(cè)的按鈕,再點(diǎn)按左側(cè) EN 按鈕松手就可以了。

這里有大坑需要注意一下:

wKgaoWcghr6AH_coAABg33Gg-y0046.jpg

燒錄編譯的 bin 的時(shí)候需要使用這種燒錄方式進(jìn)項(xiàng)燒錄,否則燒錄后程序不能正常運(yùn)行。

序號(hào) 1、3、4 選擇的都是燒錄工具目錄下的文件
序號(hào) 2 選擇編譯的 bin 即可
燒錄完成后,開(kāi)啟串口調(diào)試工具
波特率設(shè)置為 115200

wKgZoWcghr-AaLF4AACiarghXcs655.jpg

這里日志通過(guò) printf 方法打印出來(lái)的,不知道為啥 blog_info 不生效沒(méi)有深入去看

然后是代碼部分

#include
#include
#include
#include
#include "fpm383c.h"
#include
int is_register = 1;
int main(void) {
printf("rn");
// 初始化FPM383C指紋模塊
fpm383c_init();
printf("clear rn");
// 清空指紋庫(kù)
fpm383c_empty(2000);
printf("random idrn");
// 指紋id
int fpm383cPageId = 10;
while (1) {
if (is_register) {
// 開(kāi)啟注冊(cè)指紋,指紋ID:0—59, 超時(shí)時(shí)間盡量在 10秒左右,需要錄入四次
fpm383c_enroll(fpm383cPageId, 10000);
// 休息600毫秒進(jìn)行下次注冊(cè)
vTaskDelay(pdMS_TO_TICKS(600));
// 模塊休眠一下
fpm383c_sleep();
is_register = 0;
printf("register OKrn");
} else {
// printf("identifyrn");
// 開(kāi)啟自動(dòng)識(shí)別
fpm383c_identify();
}
vTaskDelay(pdMS_TO_TICKS(10));
}
return 0;
}

這里值得注意的是 int main(void)函數(shù)是有返回值的,返回值類型為 int

這個(gè)函數(shù)會(huì)在會(huì)執(zhí)行在 FreeRTOS 任務(wù)中可以看下這篇分析的帖子

wb2 項(xiàng)目啟動(dòng)流程分析
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45352&fromuid=15918

fpm383c.h

#ifndef __FPM383C_H
#define __FPM383C_H
#include "stdint.h"
void fpm383c_init(void);
void fpm383c_senddata(int length, uint8_t buffer[]);
void fpm383c_sleep(void);
uint8_t fpm383c_getimage(uint32_t timeout);
uint8_t fpm383c_genchar(uint32_t timeout);
uint8_t fpm383c_search(uint32_t timeout);
uint8_t fpm383c_empty(uint32_t timeout);
uint8_t fpm383c_delete(uint16_t pageID,uint32_t timeout);
uint8_t fpm383c_controlled(uint8_t PS_ControlLEDBuf[],uint32_t timeout);
void fpm383c_identify(void);
void fpm383c_enroll(uint16_t pageID,uint16_t timeout);
#endif

fpm383c.c

#include "stdlib.h"
#include "string.h"
#include "bl_sys.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "fpm383c.h"
#define GPIO_LED_PIN 14
/**
* 控制模塊LED燈顏色
*/
uint8_t ps_blueledbuf[16] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x07,0x3C,0x03,0x01,0x01,0x00,0x00,0x49};
uint8_t ps_redledbuf[16] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x07,0x3C,0x02,0x04,0x04,0x02,0x00,0x50};
uint8_t ps_greenledbuf[16] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x07,0x3C,0x02,0x02,0x02,0x02,0x00,0x4C};
/**
* 休眠指令-設(shè)置傳感器進(jìn)入休眠模式
*/
uint8_t ps_sleepbuf[12] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x33,0x00,0x37};
/**
* 清空指紋庫(kù)-刪除 flash 數(shù)據(jù)庫(kù)中所有指紋模板。
*/
uint8_t ps_emptybuf[12] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x0D,0x00,0x11};
/**
* 取消指令-取消自動(dòng)注冊(cè)模板和自動(dòng)驗(yàn)證指紋。如表 2-1 中加密等級(jí)設(shè)置為 0 或 1 情況下支持此功能
*/
uint8_t ps_cancelbuf[12] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x30,0x00,0x34};
/**
* 自動(dòng)注冊(cè)模板-一站式注冊(cè)指紋,包含采集指紋、生成特征、組合模板、存儲(chǔ)模板等功能。加密等級(jí)設(shè)置為 0 或 1 情況下支持此功能。
*/
uint8_t ps_autoenrollbuf[17] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x08,0x31,'','',0x04,0x00,0x16,'',''};
/**
* 驗(yàn)證用獲取圖像-驗(yàn)證指紋時(shí),探測(cè)手指,探測(cè)到后錄入指紋圖像存于圖像緩沖區(qū)。返回確認(rèn)碼表示:錄入成功、無(wú)手指等。
*/
uint8_t ps_getimagebuf[12] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x01,0x00,0x05};
/**
* 生成特征值-將圖像緩沖區(qū)中的原始圖像生成指紋特征文件存于模板緩沖區(qū)
*/
uint8_t ps_getcharbuf[13] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x04,0x02,0x01,0x00,0x08};
/**
* 搜索指紋-以模板緩沖區(qū)中的特征文件搜索整個(gè)或部分指紋庫(kù)。若搜索到,則返回頁(yè)碼。加密等級(jí)設(shè)置為 0 或 1 情況下支持
*/
uint8_t ps_searchbuf[17] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x08,0x04,0x01,0x00,0x00,0xFF,0xFF,0x02,0x0C};
/**
* 刪除模板-刪除 flash 數(shù)據(jù)庫(kù)中指定 ID 號(hào)開(kāi)始的N 個(gè)指紋模板
*/
uint8_t ps_deletebuf[16] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x07,0x0C,'','',0x00,0x01,'',''};
/**
* 設(shè)置名為fpm383c_uart的外設(shè)句柄,用來(lái)執(zhí)行串口指令的發(fā)送
*/
hosal_uart_dev_t fpm383c_uart = {
.config = {
.uart_id = 1,
.tx_pin = 4, // TXD GPIO
.rx_pin = 3, // RXD GPIO
.baud_rate = 57600,
.data_width = HOSAL_DATA_WIDTH_8BIT,
.parity = HOSAL_NO_PARITY,
.stop_bits = HOSAL_STOP_BITS_1,
.mode = HOSAL_UART_MODE_POLL,
},
};
/**
* 指紋ID和驗(yàn)證指紋的分?jǐn)?shù)
*/
uint16_t pageID,score;
/**
* USART串口接收緩沖數(shù)組
*/
uint8_t uart_receivebuf[20];
/**
* 主循環(huán)狀態(tài)標(biāo)志位
*/
uint8_t scanstatus = 0;
/**
* @brief 獲取狀態(tài)
*
* @param timeout
*/
void fpm383c_receivedata(uint16_t timeout, uint8_t lenght)
{
// 輪詢fpm383c_uart接收到的字符
int ret;
uint8_t uart_receive_len = 0;
uint8_t receivebuf_cache[20];
memset(uart_receivebuf, 0xFF, sizeof(uart_receivebuf));
while(true){
ret = hosal_uart_receive(&fpm383c_uart, receivebuf_cache, sizeof(receivebuf_cache));
if (ret > 0) {
memcpy(uart_receivebuf + uart_receive_len, receivebuf_cache, ret);
uart_receive_len += ret;
/* Uart send poll */
if(uart_receive_len >= lenght){
uart_receive_len=0;
break;
}
}
vTaskDelay(1);
}
}
/**
* 初始化FPM383C指紋模塊
*/
void fpm383c_init(){
/* Uart init device */
hosal_uart_init(&fpm383c_uart);
printf("fpm383c_initrn");
}
/**
* USART串口發(fā)送數(shù)據(jù)
* @param length 發(fā)送數(shù)組長(zhǎng)度
* @param fpm383c_databuf 需要發(fā)送的功能數(shù)組
*/
void fpm383c_senddata(int length, uint8_t fpm383c_databuf[])
{
hosal_uart_send(&fpm383c_uart, fpm383c_databuf, length);
}
/**
* 發(fā)送休眠指令 確認(rèn)碼=00H 表示休眠設(shè)置成功。確認(rèn)碼=01H 表示休眠設(shè)置失敗。
*/
void fpm383c_sleep(void)
{
fpm383c_senddata(12, ps_sleepbuf);
}
/**
* 驗(yàn)證用獲取圖像
* @param timeout接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_getimage(uint32_t timeout)
{
uint8_t tmp;
fpm383c_senddata(12,ps_getimagebuf);
fpm383c_receivedata(timeout, 12);
tmp = (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return tmp;
}
/**
* 將圖像緩沖區(qū)中的原始圖像生成指紋特征文件存于模板緩沖區(qū)
* @param timeout 接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_genchar(uint32_t timeout)
{
uint8_t tmp;
fpm383c_senddata(13,ps_getcharbuf);
fpm383c_receivedata(timeout, 12);
tmp = (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return tmp;
}
/**
* 發(fā)送搜索指紋指令
* @param timeout 接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_search(uint32_t timeout)
{
fpm383c_senddata(17,ps_searchbuf);
fpm383c_receivedata(timeout, 16);
return (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
}
/**
* 刪除指定指紋指令
* @param pageID 需要?jiǎng)h除的指紋
* @param timeout 接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_delete(uint16_t pageID,uint32_t timeout)
{
uint8_t tmp;
ps_deletebuf[10] = (pageID>>8);
ps_deletebuf[11] = (pageID);
ps_deletebuf[14] = (0x15+ps_deletebuf[10]+ps_deletebuf[11])>>8;
ps_deletebuf[15] = (0x15+ps_deletebuf[10]+ps_deletebuf[11]);
fpm383c_senddata(16,ps_deletebuf);
fpm383c_receivedata(timeout, 12);
tmp = (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return tmp;
}
/**
* 清空指紋庫(kù)
* @param timeout 接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_empty(uint32_t timeout)
{
uint8_t tmp;
fpm383c_senddata(12,ps_emptybuf);
fpm383c_receivedata(timeout, 12);
tmp = (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return tmp;
}
/**
* 發(fā)送控制燈光指令
* @param ps_controlledbuf 不同顏色的協(xié)議數(shù)據(jù)
* @param timeout 接收數(shù)據(jù)的超時(shí)時(shí)間
* @return 確認(rèn)碼
*/
uint8_t fpm383c_controlled(uint8_t ps_controlledbuf[],uint32_t timeout)
{
uint8_t tmp;
fpm383c_senddata(16,ps_controlledbuf);
fpm383c_receivedata(timeout, 12);
tmp = (uart_receivebuf[6] == 0x07 ? uart_receivebuf[9] : 0xFF);
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return tmp;
}
/**
* 驗(yàn)證指紋是否注冊(cè)
*/
void fpm383c_identify(void)
{
if(fpm383c_getimage(2000) == 0x00)
{
if(fpm383c_genchar(2000) == 0x00)
{
bl_gpio_enable_output(GPIO_LED_PIN, 0, 0);
bl_gpio_output_set(GPIO_LED_PIN, 0);
if(fpm383c_search(2000) == 0x00)
{
score = (int)((uart_receivebuf[10] << 8) + uart_receivebuf[11]);
printf("success ID: %d rn",(int)score);
fpm383c_controlled(ps_greenledbuf,1000);
bl_gpio_output_set(GPIO_LED_PIN, 1);
vTaskDelay(pdMS_TO_TICKS(1000));
bl_gpio_output_set(GPIO_LED_PIN, 0);
// 重置接收數(shù)據(jù)緩存
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return;
}else{
printf("fail rn");
bl_gpio_output_set(GPIO_LED_PIN, 1);
vTaskDelay(pdMS_TO_TICKS(1000));
bl_gpio_output_set(GPIO_LED_PIN, 0);
// 重置接收數(shù)據(jù)緩存
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return;
}
}
}
}
/**
* 自動(dòng)注冊(cè)
* @param pageID 輸入需要注冊(cè)的指紋ID號(hào),取值范圍0—59
* @param timeout 設(shè)置注冊(cè)指紋超時(shí)時(shí)間,因?yàn)樾枰磯核拇问种福ㄗh大于10000(即10s)
*/
void fpm383c_enroll(uint16_t pageID,uint16_t timeout)
{
blog_info("注冊(cè)指紋ID: %drn", pageID);
ps_autoenrollbuf[10] = (pageID>>8);
ps_autoenrollbuf[11] = (pageID);
ps_autoenrollbuf[15] = (0x54+ps_autoenrollbuf[10]+ps_autoenrollbuf[11])>>8;
ps_autoenrollbuf[16] = (0x54+ps_autoenrollbuf[10]+ps_autoenrollbuf[11]);
fpm383c_senddata(17,ps_autoenrollbuf);
fpm383c_receivedata(timeout, 14);
if(uart_receivebuf[9] == 0x00)
{
blog_info("指紋注冊(cè)完成rn");
// 亮綠燈2秒
fpm383c_controlled(ps_greenledbuf,2000);
// 重置接收數(shù)據(jù)緩存
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
return;
}
else if(timeout == 0)
{
// 超時(shí)取消注冊(cè)
fpm383c_senddata(12,ps_cancelbuf);
vTaskDelay(pdMS_TO_TICKS(50));
// 重置接收數(shù)據(jù)緩存
memset(uart_receivebuf,0xFF,sizeof(uart_receivebuf));
}
// 亮紅燈2秒
fpm383c_controlled(ps_redledbuf,2000);
}

以上就是主要邏輯代碼

wKgaoWcghr-ARkM2AACg_qOjGy0832.jpg

接線方式

wKgZoWcghsGAHzzuAADr53urt78546.jpg

wKgaoWcghsGAA_IBAAAmB5FXul4921.jpg

由于復(fù)用的 IO3 所以藍(lán)燈會(huì)亮

其他 Ai-WB2 相關(guān)知識(shí)可以看看社區(qū)整理的這篇文章

【Ai-WB2 教程合集】看這一篇就夠了?。?/p>

https://bbs.ai-thinker.com/foru

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2706

    瀏覽量

    47468
  • 指紋
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    23328
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68601
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    152

    瀏覽量

    3984
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Ai-Thinker Ai-WB2系列eclipes搭建環(huán)境教程

    01 軟硬件準(zhǔn)備02 軟件的安裝和環(huán)境變量配置03 eclipse軟件的使用01 軟硬件準(zhǔn)備eclipse軟件安裝包:下載地址msys2軟件安裝包:下載地址Ai-WB2系列SDK開(kāi)發(fā)包:下載地址
    發(fā)表于 04-17 14:10

    7WB383 2位總線交換機(jī)

    電子發(fā)燒友網(wǎng)為你提供()7WB383相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有7WB383的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,7WB383真值表,7WB383管腳等資料,希望可以幫助到廣
    發(fā)表于 04-18 19:50

    功耗低至25uA的高性價(jià)比指紋模塊海凌科HLK-FPM383F

    、智能鎖新興企業(yè)紛紛入局,行業(yè)發(fā)展加速。 海凌科新款指紋模塊HLK-FPM383F,性價(jià)比高、體積小巧、功耗低至25uA,非常適用于指紋門鎖、門禁考勤等場(chǎng)景。 FPM383F產(chǎn)品介紹
    的頭像 發(fā)表于 03-28 15:14 ?2423次閱讀

    Ai-WB2系列模組固件燒錄指導(dǎo)

    Ai-WB2-12F模組為例,按照如下表格進(jìn)行接。
    的頭像 發(fā)表于 05-14 10:59 ?1315次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>系列模組固件燒錄指導(dǎo)

    WB2系列模組通過(guò)雙85測(cè)試

    ?01、Ai-WB2系列模組通過(guò)雙85測(cè)試Ai-WB2系列模組是科技最新發(fā)布的2.4GHzWi-Fi+BLECombo模組。
    的頭像 發(fā)表于 11-03 10:46 ?1318次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>WB2</b>系列模組通過(guò)雙85測(cè)試

    科技WIFI模組產(chǎn)品Ai-WB2-01F通過(guò)新版SRRC認(rèn)證

    近日,科技WIFI模組產(chǎn)品——Ai-WB2-01F,正式通過(guò)國(guó)家無(wú)線電監(jiān)測(cè)中心檢測(cè),獲得《無(wú)線電發(fā)射設(shè)備型號(hào)核準(zhǔn)證》SRRC 認(rèn)證。
    的頭像 發(fā)表于 07-10 14:54 ?942次閱讀

    Ai-WB2系列模組概述

    Ai-WB2系列模組是科技開(kāi)發(fā)的Wi-Fi&BT模組,該模組搭載BL602芯片作為核心處理器,支持Wi-Fi 802.11b/g/n協(xié)議和BLE 5.0協(xié)議。雙模模組具備性能強(qiáng)大
    的頭像 發(fā)表于 09-09 10:01 ?1434次閱讀

    Ai-WB2系列模組AT固件使用教程

    需要準(zhǔn)備的軟硬件:Ai-WB2系列模組或者開(kāi)發(fā)板,Type-C數(shù)據(jù)線,透?jìng)髟品?wù)器。
    的頭像 發(fā)表于 09-24 11:19 ?2896次閱讀
    <b class='flag-5'>Ai-WB2</b>系列模組AT固件使用教程

    Ai-WB2系列模組基于TCP的MQTT連接服務(wù)器使用示例

    Ai-WB2系列模組基于TCP的MQTT連接服務(wù)器使用示例
    的頭像 發(fā)表于 10-16 10:21 ?985次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>系列模組基于TCP的MQTT連接服務(wù)器使用示例

    Ai-WB2-12F使用中間件接入愛(ài)星云,遠(yuǎn)程點(diǎn)個(gè)燈(2

    上次已經(jīng)給大家講了如何搭建中間件SDK(Ai-WB2-12F使用中間件接入愛(ài)星云,遠(yuǎn)程點(diǎn)個(gè)燈——第一篇)。經(jīng)過(guò)上次的帖子,小伙伴們想必已經(jīng)完成一個(gè)新項(xiàng)目的添加,并使用
    的頭像 發(fā)表于 01-08 17:18 ?660次閱讀
    <b class='flag-5'>Ai-WB2</b>-12F使用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>中間件接入愛(ài)星云,遠(yuǎn)程點(diǎn)個(gè)燈(<b class='flag-5'>2</b>)

    Ai-WB2系列模組/開(kāi)發(fā)板連接AWS亞馬遜云

    文章目錄 一、軟硬件的準(zhǔn)備 二、亞馬遜云物模型建立 三、連接亞馬遜云demo獲取以及配置 四、硬件接線 五、燒錄軟件的使用 六、連接亞馬遜云 七、聯(lián)系我們 前言 Ai-WB2系列模組是
    的頭像 發(fā)表于 01-16 14:28 ?757次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>系列模組/開(kāi)發(fā)板連接AWS亞馬遜云

    Ai-WB2系列模組/開(kāi)發(fā)板連接AWS亞馬遜云方法

    文章目錄 一、軟硬件的準(zhǔn)備 二、亞馬遜云物模型建立 三、連接亞馬遜云demo獲取以及配置 四、硬件接線 五、燒錄軟件的使用 六、連接亞馬遜云 七、聯(lián)系我們 前言 Ai-WB2系列模組是
    的頭像 發(fā)表于 04-16 15:53 ?461次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>系列模組/開(kāi)發(fā)板連接AWS亞馬遜云方法

    Ai-WB2系列模組/開(kāi)發(fā)板連接AWS亞馬遜云方法

    一、軟硬件的準(zhǔn)備二、亞馬遜云物模型建立三、連接亞馬遜云demo獲取以及配置四、硬件接線五、燒錄軟件的使用六、連接亞馬遜云七、聯(lián)系我們前言Ai-WB2系列模組是科技開(kāi)發(fā)的Wi-Fi
    的頭像 發(fā)表于 07-05 08:23 ?454次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>系列模組/開(kāi)發(fā)板連接AWS亞馬遜云方法

    外設(shè)移植 Ai-WB2-32S開(kāi)發(fā)板+TM1637 NTP時(shí)鐘

    以下作品由社區(qū)用戶 King6688制作 產(chǎn)品說(shuō)明 Ai-WB2-32S 是由深圳市
    的頭像 發(fā)表于 09-24 14:29 ?305次閱讀
    <b class='flag-5'>外設(shè)</b><b class='flag-5'>移植</b> <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2</b>-32S開(kāi)發(fā)板+TM1637 NTP時(shí)鐘

    外設(shè)移植 Ai-WB2+BH1750 光照強(qiáng)度傳感器

    以下作品由社區(qū)用戶 WangChong制作 外設(shè)介紹 BH1750是一種基于光電二極管的數(shù)字光強(qiáng)傳感器,能夠測(cè)量環(huán)境中的光照強(qiáng)度,并將其轉(zhuǎn)換為數(shù)字信號(hào)。它采用 I
    的頭像 發(fā)表于 12-05 14:32 ?182次閱讀
    <b class='flag-5'>外設(shè)</b><b class='flag-5'>移植</b> <b class='flag-5'>Ai-WB2</b>+BH1750 光照強(qiáng)度傳感器