当前位置:首页 > 嵌入式 > 玩转嵌入式
[导读]我从小就喜欢小动物,工作了之后养了一只可爱的小泰迪,取名叫COCO。有时候出短差,就把COCO自己锁在家中,也正是这个原因,很想自己做一个宠物喂食器,可以实现远程喂食和定时喂食的功能。


1 前言

我从小就喜欢小动物,工作了之后养了一只可爱的小泰迪,取名叫COCO。白天,我上班把COCO独自锁在家中;晚上回家,COCO热情相迎,这种感觉很治愈。

有时候出短差,就把COCO自己锁在家中,也正是这个原因,很想自己做一个宠物喂食器,可以实现远程喂食和定时喂食的功能,无奈,不懂Android/IOS编程无法实现云端和客户端的功能,一直在搁浅。

幸好,最近我参与了一个调查问卷,以开发者的身份参与了涂鸦智能的开源项目,获得的了涂鸦智能所提供的开发套件,今天就和大家分享一下这个开源项目,并介绍一下参与开发的流程,有兴趣或者有时间想玩的朋友们可以扫描以下二维码报名参与,本次活动免费为你准备了模组以及元器件,还有直播培训教程,手把手教你开发一款宠物喂食器,还是相当不错的。


依托涂鸦的智能模组,可以“轻代码”编程,轻松实现客户端的配置,打通了云端、MCU端的“轻代码”甚至“零代码”开发。所用到的硬件资源和平台如下:

  • STM32F103C8T6最小系统板

  • 涂鸦wifi语音模组VWXR2

  • 涂鸦H-Bridge电机驱动板

  • 5V直流减速电机

  • 涂鸦IOT平台

  • keil5编程环境

所采用的模组为涂鸦VWXR2,可以轻松实现配网,还具有语音功能。该wifi语音模组的链接如下:

https://developer.tuya.com/cn/docs/iot/device-development/module/wifi-module/vwxr-series-module/vwxr2?id=K9eipxhzap92z


2 模组配网

对于WiFi模组而言,最重要的就是配网,所谓配网,就是让模组接入路由器,实现云端和模组的数据交互。通过USB/TTL将电脑和wifi模组连接。模组上用到的串口为TXD1和RXD1,需要和USB/TTL的串口交叉连接。

在配网的时候接上喇叭,可以发出相应的语音提示,非常的方便。


云串口助手的配网流程如链接所示:

https://developer.tuya.com/cn/docs/iot/device-development/embedded-software-development/mcu-development-access/access-mode-simmulator/module-debugging-assistant-instruction?id=K9hs0cj3lf0au

涂鸦提供了云串口调试助手,技能实现云端的模拟,又能实现MCU的模拟。配网时,选择MCU模拟,联网协议选择Wi-Fi通用协议

功能点调试文件,需要选择IOT平台所生产的json文件,这一点在后面的IOT平台会说到。json文件加载成功后,会显示16为的PID字符串,点击“开始调试”后会交互数据流,数据流都在左侧,这些数据流可以帮助开发者很快的了解“串口通讯协议”。在界面下方的操作-基础功能中,点击重置,会开始配网流程。这时候,打开手机“涂鸦智能”APP

注意,目前只支持2.4G的路由器,如果路由器是5G的,需要根据提示设置一下。

3 IOT平台搭建

涂鸦智能可以做到“轻代码”设置“零代码”开发,因为在涂鸦的IOT平台上都给开发者配置好了,平台可以根据所用的IOT模组生成代码,开发者只需要移植代码就可以了。下面介绍详细的开发步骤。

首先注册IOT平台,之后选择右上角的“IOT平台”,如下图所示。

选择“创建产品”

选择“小家电”,拉到底部选择“宠物喂食器”

填写产品名称产品型号等信息,通讯协议选择WI-Fi

之后,可以根据平台提供的功能裁剪自己所需要的功能,如喂食计划开关小夜灯等。

之后配置APP的界面,IOT平台提供了很多公版面板可供用户选择

之后,可以打开“涂鸦智能”APP扫面二维码,就可以在手机端生成界面。


手机端生成的界面如下图所示。

4 硬件配置&下载固件

“硬件开发”界面,选择硬件,这里的硬件指的就是所使用的IOT模组,我所选用的模组是VWXR2模组,带语音功能。

硬件选择好之后,平台会自动生成基于该硬件的资料文档和SDK代码,需要开发者下载

下载开发资料,里面包含需要移植的mcu_sdk代码json配置文件串口通讯协议文件云串口调试助手等文件。

其中json文件,就是《2-模组配网》中云串口助手索要加载的“功能点调试文件”

5 mcu_sdk移植

在移植之前,我们需要一套代码,该代码能跑通串口程序。我上手有STM8和STM32的最小系统板,刚开始用STM8移植的,移植完后代码的大小为9K,而我的STM8只有8K的空间。所以,最后换成了STM32,开发环境为Keil5。

首先,把mcu_sdk文件复制到keil的工程目录下;

在左侧新建MCU_SDK工作组,并把mcu_sdk中的mcu_api.cprotocol.c以及system.c加载进去;

在keil中,右键属性或者点击菜单栏的魔法棒,在C/C++下添加mcu_sdk的路径。

之后按照开发者文档中MCU_SDK移植的操作流程进行移植,链接如下:

https://developer.tuya.com/cn/docs/iot/device-development/embedded-software-development/mcu-development-access/wifi-mcu-sdk-solution/overview-of-migrating-tuyas-mcu-sdk?id=K9hhi0xr5vll9


通过研究protocol.c中的代码可以知道,IOT平台把功能都做成了单独的函数,函数的命名方式为:

dp_download_xxx_handle(),xxx是不同的功能,如小夜灯为light,开关为switch。只需要在相应的函数下面添加操作就可以了,比如我的STM32最小系统板上有一个LED指示灯。我写的LED点亮函数为LED_Turn_ON(),LED熄灭函数为LED_Turn_OFF(),只需要把语句填上即可。

这时候,通过涂鸦智能APP就可以控制板子上灯的亮灭状态。

要实现宠物喂食器,还需要一个减速电机,减速电机还在购买中,没有到货。到货后继续。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭