工业RTU示例4:手机App远程控制2路舵机(4G版)
本文实现一款通过4G Cat.1方式接入机智云的设备,用户可以通过App远程控制2个舵机。舵机采用PWM信号驱动,通过调整PWM的占空比来控制舵机的角度。通过本例可以很容易衍生出其他应用,比如远程控制照明灯亮度、直流电机调速等等。视频教程及实物展示
视频演示教程:/media/uploads/2021/12/03/ndhpzx.jpg
接线实物图和App监测页面:https://si1.go2yd.com/get-image/0vv9LRjkwHQhttps://si1.go2yd.com/get-image/0vv9KMQPVfU
硬件端接线图
https://si1.go2yd.com/get-image/0vv9KLM4sv6
材料清单
名称推荐购买源资料下载
通用版机智云App免费https://download.gizwits.com/zh-cn/p/98/99
ShineBlink 万能物联网开发板淘宝搜索“机智云”或“ShineBlink”店铺有售shineblink.com
带机智云GAgent固件的ML302 4G模块淘宝搜索“机智云”或“ShineBlink”店铺有售gizwits.com
舵机模块 淘宝搜索“ShineBlink”店铺有售
黑色底板该底板只是为了省掉接杜邦线,让外观好看一些,不是必需品,开发者如果没有可以用杜邦线来替代。
如果仍想获取该底板,可通过右边提供的PCB工程资料自己打样PCB制作即可。
https://fe9a58.link.yunpan.360.cn
/lk/surl_y6mpLtWWB9W#/-0
硬件端完整源码
--配置D0 D1 D2口为PWM功能,周期20ms,高电平为有效极性LIB_PwmConfig3(20000,1)--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PSPK = "3f6f7f3f4c854682a7f7b5d587b76c5d"PS = "f2513e683b72421786609d9ab25bd37a"--初始化4G模块LIB_Giz4GConfig(PK,PS,6000,120,"UART0","D5","HIGH","D6","HIGH")--设置D0 D1 D2这3路PWM高电平脉宽为0.5ms(即舵机位置为0度)Pwm1 = 500Pwm2 = 500Pwm3 = 500 --PWM3未用到LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)--开始大循环while(GC(1) == true)do--查询机智云是否下发了写"Em1"枚举型数据点(舵机1)flag,recv_data = LIB_RecvFromGizCloud("Em1")if flag == 1 thenprint(string.format("Em1:%d", recv_data))if recv_data == 0 then--设置D0口的PWM1高电平脉宽为0.5ms(即舵机1位置为0度)Pwm1 = 510LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 1 then--设置D0口的PWM1高电平脉宽为1ms(即舵机1位置为45度)Pwm1 = 1000LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 2 then--设置D0口的PWM1高电平脉宽为1.5ms(即舵机1位置为90度)Pwm1 = 1500LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 3 then--设置D0口的PWM1高电平脉宽为2ms(即舵机1位置为135度)Pwm1 = 2000LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 4 then--设置D0口的PWM1高电平脉宽为2.5ms(即舵机1位置为180度)Pwm1 = 2490LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)else--设置D0口的PWM1高电平脉宽为0.5ms(即舵机1位置为0度)Pwm1 = 510LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)endend--查询机智云是否下发了写"Em2"枚举型数据点(舵机2)flag,recv_data = LIB_RecvFromGizCloud("Em2")if flag == 1 thenprint(string.format("Em2:%d", recv_data))if recv_data == 0 then--设置D1口的PWM2高电平脉宽为0.5ms(即舵机2位置为0度)Pwm2 = 510LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 1 then--设置D1口的PWM2高电平脉宽为1ms(即舵机2位置为45度)Pwm2 = 1000LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 2 then--设置D1口的PWM2高电平脉宽为1.5ms(即舵机2位置为90度)Pwm2 = 1500LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 3 then--设置D1口的PWM2高电平脉宽为2ms(即舵机2位置为135度)Pwm2 = 2000LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)elseif recv_data == 4 then--设置D1口的PWM2高电平脉宽为2.5ms(即舵机2位置为180度)Pwm2 = 2490LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)else--设置D1口的PWM2高电平脉宽为0.5ms(即舵机2位置为0度)Pwm2 = 510LIB_PwmUpdate3(Pwm1,Pwm2,Pwm3)endendend上面代码中出现的"LIB_"开头的库函数的详细介绍可点击查询。
机智云接入和App开发(三个选择)
►选择一:机智云+通用版APP访问设备(难度最低)通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。本例中我们使用了"Em1","Em2"这两个枚举型数据点,记得在机智云平台修改相应的数据点的名称以及枚举范围描述。https://si1.go2yd.com/get-image/0vv9KLmUiXM► 选择二:机智云+零代码定制版App访问设备(难度较低)在选择二之前,必须完成上面选择一的工作,然后参考《 赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。开发好以后的页面如下:https://si1.go2yd.com/get-image/0vv9KMQPVfU► 选择三:定制化开发APP或微信小程序(难度较高)如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请进入docs.gizwits.com了解更多内容。
如果开发者希望开发一个专属的微信小程序应用, 可以进入docs.gizwits.com了解相关开发教程
页:
[1]