快捷搜索:  test  www.ymwears.cn  xxx  test and 1=2  as

技术干货实践:如何在树莓派模拟运行陀螺仪扫地机

本篇文章主要讲述若何在树莓派上模拟运行一个陀螺仪扫地机的设备并连接涂鸦云。

步骤

第 1 步:陀螺仪扫地机道理简述

第 2 步:涂鸦陀螺仪扫地机传输协议

// 涂鸦陀螺仪舆图传输协议

typedef struct

{

uint8_t   x;

uint8_t   y;

uint8_t   type;

} ST_POT;

/* 坐标点类型 */

enum enum_point_type

{

point_type_current              = 0x00, // 当前点

point_type_barrier,                     // 障碍点

point_type_cleaned,                     // 已清扫点

point_type_charge,                      // 充电桩

};

第 3 步:涂鸦陀螺仪扫地机公版面板

如下,从左到右边依次是 1号面板 2号面板 3号面板

2号 3号面板没有用到电源开关power功能点,创建产品时请删除

第 4 步:开拓筹备

产品创建

注册涂鸦开拓者账号,并完成认证

开拓平台链接:iot.tuya.com/?_source=50ad109033ec33aa9c41c459dd6e0a4e

创建扫地机产品,如下箭头所指为PID,为代码中的PRODUCT_KEY宏

硬件筹备

树莓派采纳 Raspberry Pi 3 Model B

硬件设置设置设备摆设摆设

Quad Core 1.2GHz Broadcom BCM2837 64bit CPU

1GB RAM

BCM43438 wireless LAN,开拓配网,连接到涂鸦云

Bluetooth Low Energy (BLE) on board

100 Base Ethernet,用于ssh登录开拓板调试用

其他资本

调试措施

为方便,直接在ubuntu虚拟机的Terminal经由过程ssh登录到树莓派开拓板上调试。

操作措施:树莓派网口和路由器的lan口相连,登录路由器获取树莓派ip地址,我这里为192.168.56.107;ubuntu虚拟机收集设置为桥接模式,PC主机和树莓派连接到同一起由器下

tuya@E480:~$ ssh root@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:~#

确认无线网卡支持的配网模式

小贴士:无线网

iw list敕令可以查看linux系统设备下无线网卡具体信息

root@RasPi:~# iw list

Wiphy phy0

Supported interface modes:  无线网卡支持的事情模式

* IBSS

* managed       station客户端模式

* AP            无线接入点模式,这里可用于开拓tuyasdk的ap配网

* P2P-client

* P2P-GO

* P2P-device

......省略其他信息

如上设置设置设备摆设摆设,这个网卡不支持sniffer模式,无法开拓SmartConfig配网模式

第 5 步:基础实现思路

这里不是一个真实的扫地机,从涂鸦云导出真实扫地机设备行走孕育发生的舆图坐标数据保存到磁盘文件

代码里新增一个线程认真从文件准时读取数据上报涂鸦云,以在APP上展现机械行走的效果,如下

第 6 步:软件开拓阐明

陀螺仪扫地机为wifi单品开拓,参考TUYA_IOT_SDK阐明

对象链获取,这里保举一个第三方资本,涂鸦不供给芯片对象链。

demo源码获取

demo功能阐明

支持AP配网模式

支持涂鸦陀螺仪三种陀螺仪面板

支持设备OTA

编译时可选是运行在ubuntu设备上照样树莓派

第 7 步:关键代码阐明

代码位置:src/gyro_wifi_dev/tuya_iot_wifi_net.c

设置网卡事情模式

// 设置当前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;

}

开启无线网卡热点

// AP配网模式下开启热点

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;

}

关闭无线网卡热点

// AP配网模式下竣事热点

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;

}

获取当前WIFI联网状态

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”开拓者平台, 也是天下排名前列的语音AI交互平台, 连接破费者、制造品牌、OEM厂商和零售连的智能化需求, 为客户供给一站式人工智能物联网的办理规划, 并且涵盖了硬件接入、云办事以及APP软件开拓三方面, 形成人工智能+制造业的办事闭环, 为破费类IoT智能设备供给B端技巧及商业模式进级办事, 从而满意破费者对硬件产品更高的诉求。

您可能还会对下面的文章感兴趣: