"); //-->
扫地机器人是现在家庭中最常见的智能家居,因为它小巧便宜且好用,广受用户好评。可以说是懒人必备单品了~几乎每家每户都少不了一台扫地机器人。
本篇文章将说明在树莓派上模拟运行一个陀螺仪扫地机的设备并连接涂鸦云。同事看了都羡慕系列,到底怎么轻松实现呢?来看看吧~
步骤如下第 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 步:开发准备产品创建注册涂鸦开发者账号,并完成认证
参考 选品类创建产品 创建一款扫地机产品,如下箭头所指为PID,为代码中的PRODUCT_KEY宏
ubuntu虚拟机开发环境搭建
树莓派采用 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.107root@192.168.56.107's password: Last login: Thu Oct 24 18:47:17 2019 from 192.168.56.100root@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上展现机器行走的效果,如下
陀螺仪扫地机为wifi单品开发,参考TUYA_IOT_SDK说明
工具链获取,这里推荐一个第三方资源,涂鸦不提供芯片工具链。
demo源码获取
demo功能说明支持AP配网模式支持涂鸦陀螺仪三种陀螺仪面板支持设备OTA编译时可选是运行在ubuntu设备上还是树莓派
代码位置: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连接WIFIOPERATE_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;
}心动不如行动系列:
| auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=5da300e50745947aec50c44f209c5367 |
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
一颗几乎像原子钟一样计时的芯片
2010年英特尔杯大学生嵌入式设计大赛宣传片 ①
2010年中国医疗电子市场展望
保持摩尔定律的尊严
安森美携手格罗方德开发下一代氮化镓功率器件
LM1877双路音频功率放大器
2010年英特尔杯大学生嵌入式设计大赛宣传片 ②
北邮专家认证:跨入通信行业的门槛
由LM1877构成的反相单位增益放大电路
赛灵思中国通讯2007年春季刊
利用高压母线转换模块 (BCM) 为LED驱动器供电
能耗超挖矿 用水超瓶装 人工智能恐成地球最大负载
外媒揭台积电最强秘密:美国无法复制的模式
由LM1877构成的具有Av=200(增益)的立体声放大电路
轻松入门开发ARM程序(为初学者写的入门手册)
使用NCV7192的力传感器设计AND90385/D
“漫涌时代”的营销战略 IBM存储系统市场渠道策略解析
三星欲在ASIC中嵌入FPGA
投资人认为台积电明年真正瓶颈是3nm产能
GlobalFoundries与onsemi合作开发200毫米氮化镓产品组合
嵌入式系统第五讲:ucOS/II实时操作系统RTOS
比Google追赶更可怕! 黄仁勋传记作者揭英伟达最大死穴
本田因芯片短缺将暂时关闭中国和日本的工厂
由LM1877构成的具有低音控制的立体声唱机放大电路
2010年英特尔杯大学生嵌入式设计大赛宣传片 ③
双向翻译器架构 AN 9740/D
LM1876电桥输出音频功率放大电路
“非典”时期非常选择 手持设备的“无接触”功能
嵌入式系统第一讲:实时嵌入式系统设计综述
嵌入式系统第四讲:嵌入式操作系统介绍