本篇文章主要講述如何在樹莓派上模擬運行一個陀螺儀掃地機的設(shè)備并連接涂鴉云。
步驟
第 1 步:陀螺儀掃地機原理簡述
第 2 步:涂鴉陀螺儀掃地機傳輸協(xié)議
// 涂鴉陀螺儀地圖傳輸協(xié)議
typedef struct
{
uint8_t x;
uint8_t y;
uint8_t type;
} ST_POT;
/* 坐標(biāo)點類型 */
enum enum_point_type
{
point_type_current = 0x00, // 當(dāng)前點
point_type_barrier, // 障礙點
point_type_cleaned, // 已清掃點
point_type_charge, // 充電樁
};
第 3 步:涂鴉陀螺儀掃地機公版面板
如下,從左到右邊依次是 1號面板 2號面板 3號面板
2號 3號面板沒有用到電源開關(guān)power功能點,創(chuàng)建產(chǎn)品時請刪除
第 4 步:開發(fā)準(zhǔn)備
產(chǎn)品創(chuàng)建
注冊涂鴉開發(fā)者賬號,并完成認(rèn)證
開發(fā)平臺鏈接:iot.tuya.com/?_source=50ad109033ec33aa9c41c459dd6e0a4e
創(chuàng)建掃地機產(chǎn)品,如下箭頭所指為PID,為代碼中的PRODUCT_KEY宏
硬件準(zhǔn)備
樹莓派采用 Raspberry Pi 3 Model B
硬件配置
-
1GB RAM
-
BCM43438 wireless LAN,開發(fā)配網(wǎng),連接到涂鴉云
-
Bluetooth Low Energy (BLE) on board
-
100 Base Ethernet,用于ssh登錄開發(fā)板調(diào)試用
-
其他資源
調(diào)試方法
為方便,直接在ubuntu虛擬機的Terminal通過ssh登錄到樹莓派開發(fā)板上調(diào)試。
操作方法:樹莓派網(wǎng)口和路由器的lan口相連,登錄路由器獲取樹莓派ip地址,我這里為192.168.56.107;ubuntu虛擬機網(wǎng)絡(luò)設(shè)置為橋接模式,PC主機和樹莓派連接到同一路由器下
tuya@E480:~$ sshroot@192.168.56.107
root@192.168.56.107's password:
Last login: Thu Oct 24 18:47:17 2019 from 192.168.56.100
root@RasPi:~#
確認(rèn)無線網(wǎng)卡支持的配網(wǎng)模式
root@RasPi:~# iw list
Wiphy phy0
Supported interface modes:無線網(wǎng)卡支持的工作模式
* IBSS
* managed station客戶端模式
* AP 無線接入點模式,這里可用于開發(fā)tuyasdk的ap配網(wǎng)
* P2P-client
* P2P-GO
* P2P-device
......省略其他信息
如上配置,這個網(wǎng)卡不支持sniffer模式,無法開發(fā)SmartConfig配網(wǎng)模式
第 5 步:基本實現(xiàn)思路
-
這里不是一個真實的掃地機,從涂鴉云導(dǎo)出真實掃地機設(shè)備行走產(chǎn)生的地圖坐標(biāo)數(shù)據(jù)保存到磁盤文件
-
代碼里新增一個線程負(fù)責(zé)從文件定時讀取數(shù)據(jù)上報涂鴉云,以在APP上展現(xiàn)機器行走的效果,如下
第 6 步:軟件開發(fā)說明
陀螺儀掃地機為wifi單品開發(fā),參考TUYA_IOT_SDK說明
工具鏈獲取,這里推薦一個第三方資源,涂鴉不提供芯片工具鏈。
demo源碼獲取
demo功能說明
支持AP配網(wǎng)模式
支持涂鴉陀螺儀三種陀螺儀面板
支持設(shè)備OTA
編譯時可選是運行在ubuntu設(shè)備上還是樹莓派
第 7 步:關(guān)鍵代碼說明
代碼位置:src/gyro_wifi_dev/tuya_iot_wifi_net.c
設(shè)置網(wǎng)卡工作模式
// 設(shè)置當(dāng)前WIFI工作模式
OPERATE_RET hwl_wf_wk_mode_set(IN CONST WF_WK_MD_E mode)
{
#if defined(USE_RASPI)
switch (mode){
case WWM_STATION:{
sys_shell("ifconfig %s down", WLAN_DEV);
sys_shell("iwconfig %s mode Managed", WLAN_DEV);
sys_shell("ifconfig %s up", WLAN_DEV);
}break;
case WWM_SOFTAP:{
// handle in hwl_wf_ap_start()
break;
}
case WWM_STATIONAP:break;
default:break;
}
#endif
return OPRT_OK;
}
開啟無線網(wǎng)卡熱點
// AP配網(wǎng)模式下開啟熱點
OPERATE_RET hwl_wf_ap_start(IN CONST WF_AP_CFG_IF_S *cfg)
{
PR_DEBUG("Start AP SSID:%s", cfg->ssid);
#if defined(USE_RASPI)
sys_shell("ifconfig "WLAN_DEV" "DEFAULT_IP_ADDR);
sys_shell("iwconfig %s mode Managed", WLAN_DEV);
kill_process("hostapd");
kill_process("udhcpd");
kill_process("wpa_supplicant");
sys_shell("hostapd -B " HOSTAPD_CONF);
sys_shell("udhcpd -f " UDHCPD_CONF " &");
#endif
return OPRT_OK;
}
關(guān)閉無線網(wǎng)卡熱點
// AP配網(wǎng)模式下停止熱點
OPERATE_RET hwl_wf_ap_stop(VOID)
{
PR_DEBUG("Stop Ap Mode");
#if defined(USE_RASPI)
kill_process("hostapd");
kill_process("udhcpd");
#endif
return OPRT_OK;
}
連接路由器
// 使用指定SSID和PASSWD連接WIFI
OPERATE_RET hwl_wf_station_connect(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
{
PR_DEBUG("STA Con AP ssid:%s passwd:%s", ssid, passwd);
#if defined(USE_RASPI)
// UserTODO
sys_shell("sed -i '/ssid/c\ ssid="%s"' " WPA_SUPPLICANT_CONF,ssid);
sys_shell("sed -i '/psk/c\ psk="%s"' " WPA_SUPPLICANT_CONF,passwd);
// sys_shell("wpa_supplicant -Dnone -B -i" WLAN_DEV " -c" WPA_SUPPLICANT_CONF); // 加Dnone 不可行
sys_shell("wpa_supplicant -B -i" WLAN_DEV " -c" WPA_SUPPLICANT_CONF);
sys_shell("udhcpc -i" WLAN_DEV);
// sys_shell("dhclient"" "WLAN_DEV);
#endif
return OPRT_OK;
}
獲取當(dāng)前WIFI聯(lián)網(wǎng)狀態(tài)
OPERATE_RET hwl_wf_station_stat_get(OUT WF_STATION_STAT_E *stat)
{
#if defined(USE_RASPI)
// UserTODO
NW_IP_S current_ip; // 上一次獲取的ip
memset(¤t_ip,0,sizeof(current_ip));
hwl_wf_get_ip(WF_STATION,¤t_ip);
if(strcmp(current_ip.ip, DEFAULT_IP_ADDR)){
*stat = WSS_GOT_IP;
}else{
*stat = WSS_CONN_FAIL;
}
#else
*stat = WSS_GOT_IP;
#endif
return OPRT_OK;
注:涂鴉智能是一個全球化智能平臺, “AI+IoT”開發(fā)者平臺, 也是世界排名前列的語音AI交互平臺, 連接消費者、制造品牌、OEM廠商和零售連鎖的智能化需求, 為客戶提供一站式人工智能物聯(lián)網(wǎng)的解決方案, 并且涵蓋了硬件接入、云服務(wù)以及APP軟件開發(fā)三方面, 形成人工智能+制造業(yè)的服務(wù)閉環(huán), 為消費類IoT智能設(shè)備提供B端技術(shù)及商業(yè)模式升級服務(wù), 從而滿足消費者對硬件產(chǎn)品更高的訴求。
-
陀螺儀
+關(guān)注
關(guān)注
44文章
791瀏覽量
98913 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105826 -
掃地機
+關(guān)注
關(guān)注
0文章
61瀏覽量
5233
發(fā)布評論請先 登錄
相關(guān)推薦
評論