STM32对接涂鸦wifi模块项目记录(智能插座完善版本)

应项目需求,客户需要对接涂鸦平台,从了解平台到样品实际落地,还是挺方便的,
做过的一个项目,人体感应智能插座项目,对接涂鸦云 :
硬件平台:STM32F103
WIFI模块: 涂鸦WiFi(型号见文章说明)
云平台:涂鸦云
..更新项目原理图部分说明、更新文章结构,更新资源链接				2022/5/16

STM32对接涂鸦wifi模块

  • 前言
  • 一、如何选择合适的涂鸦wifi模块?
  • 二、涂鸦IoT平台操作
    • 2.1 创建产品
    • 2.2 添加标准功能
    • 2.3 APP界面设置
    • 2.4 ☆硬件选择☆
    • 2.5 其他说明
  • 三、SDK移植
    • 3.1 添加对应的文件和头文件
    • 3.2 添加 PRODUCT_KEY 定义
    • 3.3 调用 wifi_protocol_init 函数
    • 3.4 串口收发处理
    • 3.5 调用 wifi_uart_service函数
    • 3.6 设备上电初始状态上报
    • 3.7 完善下发操作
    • 3.8 其他细节处理
  • 四、配网操作测试
  • 五、硬件原理图
    • 5.1 涂鸦模块部分
    • 5.2 供电部分
    • 5.3 控制部分

前言

本项目从了解平台到样品实际落地,还是挺方便的,这得得益于涂鸦的SDK和相关资料,

本文意在于对本次项目做个笔记,方便以后再次用到,也给大家一个参考。

最后所有的资料原理图和程序都会上传至资源。

一、如何选择合适的涂鸦wifi模块?

第一步,在这个问题上,没有接触过涂鸦的朋友或许会犯迷糊。

本次的项目简单来说是做一个人体感应控制器,其实本来公司和涂鸦商务是有合作的,刚开始,由于手头事情也多,涂鸦也不是很了解,我还直接在群里面提需求,然后希望对方给出一个推荐模块(因为自己去涂鸦官网上面看过,模块实在是太多了= =! 单从一个工程师的角度来看,哪一个都能用,但是要找到合适自己的,还真有点难以判断…… ),对面需要我给需求,因为功能实在是不复杂,几句话就说完了,但是对面还是觉得没有一个明确的项目需求,后来通过电话沟通,才明白一些。
如果需要专门的涂鸦客服跟进,那么至少也得是一个“值得”的项目,而且这样沟通来沟通去,时间也会浪费,对方建议我自己去涂鸦平台看看资料,通过标准的流程新建产品。

没办法,没法偷懒了(按照以前开发的流程,厂家推荐一款wifi模块,大部分时间会花在写模块驱动,测试上面),只能自己去看看平台操作流程,去看资料,然后直接试着操作起来,之后才发现其实涂鸦生态做得挺完善的,只要熟悉了整套系统,哪个部分都不需要画太多时间,可能涂鸦项目画PCB需要的时间才是最多的了。

因为wifi模块驱动,手机APP涂鸦都做好了……而且,你需要做什么产品,平台会推荐你最合适的wifi模块,前提是你得在IoT平台上创建产品。

所以使用那个型号的涂鸦wifi模块不需要自己根据每一个型号的资料去选择,进入涂鸦 IoT平台,注册账号后,创建你需要设计的产品,配置好自己产品功能后,平台自己会给你推荐合适的wifi模块。

二、涂鸦IoT平台操作

2.1 创建产品

接下来就来讲解一下涂鸦IoT平台的操作,账号肯定得注册一个,然后在产品栏目,找到创建产品,如下图(图中因为以前创建过,所以有一个存在产品):
在这里插入图片描述点进去以后,界面如下,可以看到涂鸦已经给产品分好了类,而且基本上物联网领域能关联的设备都包含了,在这个里面选择你的产品或者方案对于或者相似的产品:
在这里插入图片描述我们这里点击一个插座看看:
在这里插入图片描述

2.2 添加标准功能

点击创建产品,会让你给产品方案取个名字,然后接下来会让你配置功能,其中会有几个必选功能,因为作为智能插座,几个必须具备的基础功能他会给先定好,其他的额外功能根据自己的需求去选择:
在这里插入图片描述选择好以后如下图:
在这里插入图片描述

2.3 APP界面设置

接下来就是设计自己产品APP上的界面了,在上图中点击下一步设计面板,我这里随便选了一个:
在这里插入图片描述通过手机扫描上面的二维码,可以看到刚才创建的产品:
在这里插入图片描述

2.4 ☆硬件选择☆

根据步骤提示,接下来是就是选择硬件了:
在这里插入图片描述我们随便选择,点第一个模块:
在这里插入图片描述
点击生成固件,然后就可以下单买样品了,功能按照我们自己的选择配置会在固件里面设置好,只需要自己画个电路图:
在这里插入图片描述
硬件设计也可以点击参考电路设计,也会根据你选择的模块给出参考电路图:

在这里插入图片描述

2.5 其他说明

完成以上设置后,基本上模块选型就完成了,后面的第4步和第5步可以暂时不管:
在这里插入图片描述如果是做一个上面描述的插座产品,工程师做的只是需要在IOT平台做一下选择配置,根据自己设定的功能引脚设计电路图,最后焊接完成后,基本上电配好网,直接手机控制插座开关了,app也能实时显示插座开关状态

上图的示例是创建了一个插座的新品,而且是零代码开发的,不存在SDK移植之类的,因为不需要,简单标准的功能涂鸦可以直接做好固件程序,根据你配置好的功能采购的模块就直接上电可以用,无需另加MCU。

我们回头来看一下产品的生产管理,可以看到除了我以前创建的产品,多了一个我们刚才创建的插座,除了这些标准的产品,在遇到一些定制化项目产品不是那么常规标准的情况下,就得使用通用模块进行SDK移植了:
在这里插入图片描述
在上图中的第二个名为demo产品,人体红外传感器中选择的功能如下:
在这里插入图片描述除了人感基本的有无人信息,还有继电器控制开关,还有预约功能,倒计时,其实还可以自己加很多功能,只需要注意增加功能的数据类型,属性,是为了后面自己写程序的时候不会出错。

在硬件开发部分,涂鸦推荐的模块为 TYWE3S Wi-Fi模组(当时选完功能后就只有这么一个模块推荐),因为这个是需要移植SDK的,需要自己外带一个MCU做处理,所以这个界面中,有 下载资料 这么一栏,主要是MCU SDK下载:

在这里插入图片描述
如果是做一个需要移植SDK的产品,那除了电路图设计,还得根据自己选择的MCU型号移植一下官方的SDK包,我们这里记录的是使用 STM32F103C8T6 芯片进行的移植操作

三、SDK移植

下载好SDK包,打开后里面包含的文件如下图:
在这里插入图片描述
SDK的移植,官方有详细视频教程:涂鸦官方SDK包移植教程

官方的文档教程:涂鸦官方SDK包移植文档说明

我这里就把自己移植的过程作记录一遍, 我个人整体来说,没有详细的一点一点去看文档和视频,只是大概浏览一下,然后几个大步骤注意,都是修改编译,然后出了error 以后找到问题所在,去修改的

3.1 添加对应的文件和头文件

在需要使用到wifi功能的文件中包含一下wifi.h文件,#include "wifi.h",主函数中肯定需要,其他地方需不需要没必要特意去看,用到的时候没包含报错了,我们再包含也不迟
在这里插入图片描述

3.2 添加 PRODUCT_KEY 定义

PRODUCT_KEY 就是我们在IoT平台创建的产品 ID,如下图:

在这里插入图片描述

/******************************************************************************1:修改产品信息
******************************************************************************/
#define PRODUCT_KEY "v2psrivahslotbha"    //开发平台创建产品后生成的16位字符产品唯一标识#define MCU_VER "1.0.0"         //用户的软件版本,用于MCU固件升级,MCU升级版本需修改/*  模块工作方式选择,只能三选一,推荐使用防误触模式  */
#define CONFIG_MODE     CONFIG_MODE_DEFAULT             //默认工作模式

3.3 调用 wifi_protocol_init 函数

在 MCU 串口及其他外设初始化后调用 mcu_api.c 文件中的 wifi_protocol_init() 函数。
我样品使用的是串口3和涂鸦wifi连接的,然后波特率为9600:
在这里插入图片描述

3.4 串口收发处理

串口发送:

将 MCU 串口单字节发送函数填入 protocol.c 文件中 uart_transmit_output 函数内,并删除 #error。

就是我们使用的MCU,哪个串口连接的涂鸦wifi,自己把此串口发送一个字节的函数放在uart_transmit_output 函数内:
在这里插入图片描述
串口接收:

在串口接收中断服务函数里面调用 mcu_api.c 文件内的 uart_receive_input 函数,并将接收到的字符作为参数传入。
在这里插入图片描述

3.5 调用 wifi_uart_service函数

单片机进入 while(1) 循环后调用 mcu_api.c 文件内的 wifi_uart_service() 函数。
在这里插入图片描述

3.6 设备上电初始状态上报

修改 protocol.c 中的函数 all_data_update(void) ,此函数是产品上电状态,这个可以根据自己的意愿上报初始状态:
在这里插入图片描述
那么这些DP点在哪里看到定义呢,是在 protocol.h 文件中有定义,这也是和我们当时自己设置的产品功能一一对应的:
在这里插入图片描述

3.7 完善下发操作

完成每个下发DP点自己需要的操作,在 protocol.c 文件中,每个可下发的 DP 点,都有一个单独下发数据处理函数。格式为 dp_download_xxx_handle(),比如我们进行开关控制继电器动作:
在这里插入图片描述

3.8 其他细节处理

人感的状态上报我是放在主函数中判断:
在这里插入图片描述
在官方文档中,进行到这一步,还需要配网指示灯的添加,我这里没有用到,因为我选择的是 wifi模块自动处理按键和LED指示,这是在当时选择wifi模块的时候的一个可选择的功能,我选择的是wifi模块自动控制,使用的是官方推荐的参考电路,参考电路如下:
在这里插入图片描述
但是记住,模块自动控制的话,需要在 protocol.h 中定义WIFI_CONTROL_SELF_MODE,默认是注销的:
在这里插入图片描述
完成以上步骤,基本移植完成,但是还是有些地方需要修改,但是这些修改都是可以根据编译后的错误,找到错误位置进行修改,每个错误的地方基本都有注释说明,很简单的。最后直到编译完全通过,wifi模块的驱动就已经完成了。

四、配网操作测试

样品使用的配网方式是 wifi模块自动处理 方式,默认是长按按键 5 S,切换配网方式(AP模式 和 Smart模式相互切换)

Smart 模式(快闪):操作简便,通常以指示灯快闪做指示。
AP 模式(慢闪):配网可靠,通常以指示灯慢闪做指示。

配网需要使用到涂鸦app,我们这里使用Smart模式延时一下具体步骤:

1、 在app中点击右上角加号,选择你所需要的添加的设备,我这里选择的是下图中的第一个,wifi类型的传感器:
请添加图片描述
2、 选好设备以后,在弹出的页面选择你所需要连接的wifi名字和密码:
请添加图片描述
3、 到下一步,注意文字提示,需要保证wifi模块处于对应的配网状态下:
请添加图片描述
4、 等待设备自动配网,需要一点时间,我这边每次设置大概在30S左右就能连接上:
请添加图片描述
5、 添加成功提示:
请添加图片描述
6、 最后就可以测试,根据自己定义的几个功能,有人无人,状态变化,然后通过界面上的按钮,可以操作继电器通断,实际测试下来功能完全OK,整体来说还是达到的基本的效果:
请添加图片描述
整个过程基本上没有遇到疑难杂症之类的问题,不得不说,涂鸦的生态还是做得挺好的!!

五、硬件原理图

因为许多小伙伴找我要原理图和,所以干脆这里就把重要部分原理图贴上。

硬件部分主要有几个重要点:

1、供电部分,220V 转 5V/3.3V;

2、控制电源开关部分,使用继电器控制;

3、WiFi模块部分;

4、STM32部分;

本部分不上原理图,因为最小系统都一样,可参考:

STM32 非接触测温测温传感器 项目记录(ModbusRTU协议)中的STM32部分原理图。

5、人体感应部分。(本部分不上原理图,方案很多,比如最简单的BISS001)

5.1 涂鸦模块部分

涂鸦模块的型号是根据上文提到的如何选择涂鸦模块操作,最后涂鸦官方给出的:

在这里插入图片描述

5.2 供电部分

供电部分用了电源模块:

在这里插入图片描述

5.3 控制部分

控制部分使用继电器,欧姆龙的G5Q-14:

在这里插入图片描述

最后补一下资源链接:STM32配合涂鸦wifi模块的智智能插座项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27575.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面经—(涂鸦智能)

1.java 1.1 hash算法 1.1.1 除余法 除余法就是用关键码x除以M&#xff08;往往取散列表长度&#xff09;,并取余数作为散列地址。 1.1.2 乘余取整法 先让关键码key乘上一个常数A(O<A<1&#xff09;,提取乘积的小数部分。然后,再用整数n乘以这个值,对结果向下取整,把…

涂鸦智能模块二次开发--基础

本次主要以CBU模块为例&#xff0c;使用例程完成手机端–云端–终端的连接&#xff0c; 涂鸦 SDK 开发最基础指导&#xff0c;包含了开发环境、以及手机端 -云端-终端的配置工作&#xff0c;可以让开发者最快时间完成 demo 的测试工 作&#xff0c;demo 例程共有 template、elp…

【IoT智能单品设计】一款基于涂鸦智能IoT云平台的新型智能蓝牙水杯

文章目录 1 前言2 产品构思2.1 产品名称2.2 产品主要解决的问题2.3 产品的创新功能点 3 产品原型3.1 云平台选型3.2 智能单品的创建 4 产品开发4.1 硬件设计4.2 软件设计4.3 功能调试 5 产品功能展示6 产品功能拓展7 结束语 1 前言 近些年来&#xff0c;随着科技的更新迭代&am…

智能家居竞品分析:米家/HomeKit/美居/涂鸦智能的体验与思考

竞品选择 本次竞品&#xff08;体验&#xff09;分析目的在于了解目前主流智能家居产品的现状及使用情况&#xff0c;通过不同使用环境下体验设备连接、场景搭建以及日常操作&#xff0c;了解竞品全链路使用流程。主要从五个层次深入分析竞品&#xff0c;为本产品改版做基础准…

涂鸦智能SoC零代码开发接入

零代码开发 何为零代码开发&#xff0c;顾名思义是指无需编写代码、就能实现一款产品的搭建。举个很形象的例子&#xff0c;大家都玩过乐高积木&#xff0c;零代码开发就像搭建乐高积木一样开发出满足需求的产品。零代码和乐高这种产品有差不多的共性&#xff0c;就是能给开发…

Android的涂鸦智能设备几种入网方式

最近在接触涂鸦智能设备&#xff0c;利用App与设备进行连接进行远程的控制设备&#xff0c;同时对室内的温湿度&#xff0c;烟雾等参数进行监听&#xff0c;实时观察室内的危险参数&#xff0c;然后首先在这里&#xff0c;我们先可以了解一下设备几种入网的方式。 快连入网&am…

透过涂鸦智能Q3财报,看全球IoT市场的动荡与发展

IoT智能设备已经逐渐在日常生活中普及&#xff0c;但它们背后的应用平台往往被人忽视。 作为唯一一家赴美上市的IoT平台企业&#xff0c;涂鸦智能区别于小米、海尔、华为等厂商的中立性&#xff0c;让它有了一些独特的行业参考价值。 近期&#xff0c;涂鸦智能发布了截至2021…

Pulsar 在涂鸦智能的实践

????️ 阅读本文需 7 分钟 作者&#xff1a;张永红&#xff0c;开放平台组研发工程师&#xff08;涂鸦智能&#xff09; >>> 关于涂鸦 涂鸦智能是一个全球化智能平台和“AIIoT”开发者平台&#xff0c;也是世界排名前列的语音 AI 交互平台。连接消费者、制作品牌、…

使用涂鸦智能平台快速开发项目

使用三明治开发套件 涂鸦三明治开发套件符合 Arduino 开发规范&#xff0c;开发者可选择任意 Arduino 接口开发板&#xff0c;通过 Arduino IDE 简单快速搭建新的智能设备。 通过涂鸦三明治开发套件&#xff0c;非常方便地以类似“三明治”层层叠加的方式组合成一个完整的 Io…

智能家居1 涂鸦开关接入homeassistant

一、获取涂鸦开关的localkey 参考原文&#xff1a;https://bbs.hassbian.com/forum.php?modviewthread&tid12168&highlight%E6%B6%82%E9%B8%A6 Linux(如树莓派)需要安装运行tuyapi/cli 这个软件&#xff0c;示例&#xff1a;npm i tuyapi/cli -g。 如果出现权限错误&…

【吴恩达】prompt engineering(原则 迭代 文本概括 推断、订餐机器人)

简介 Introduction 基础的LLM训练的模型&#xff0c;问法国的首都什么&#xff0c;可能会将答案预测为“法国最大的城市是什么&#xff0c;法国的人口是多少”许多 LLMs 的研究和实践的动力正在指令调整的 LLMs 上。指令调整的 LLMs 已经被训练来遵循指令。因此&#xff0c;如…

【NLP】如何使用Hugging-Face-Pipelines?

一、说明 随着最近开发的库&#xff0c;执行深度学习分析变得更加容易。其中一个库是拥抱脸。Hugging Face 是一个平台&#xff0c;可为 NLP 任务&#xff08;如文本分类、情感分析等&#xff09;提供预先训练的语言模型。 本博客将引导您了解如何使用拥抱面部管道执行 NLP 任务…

Midjourney V5横空出世:画出完美中国情侣 逼真得令人毛骨悚然

雷递网 雷建平 3月20日 2023年&#xff0c;AI技术正在加速对人类世界的改变。 在ChatGPT的升级版GPT-4横空出世&#xff0c;能玩梗图还能做网页之际&#xff0c;Midjourney V5已正式发布&#xff0c;该服务可以生成逼真的图像&#xff0c;其质量水平被一些AI艺术爱好者称为令人…

软件测试职场焦虑之我对35岁危机的看法

目录 前言 如何理解35岁失业&#xff1f; 本质的原因是什么&#xff1f; 应对35岁失业的策略 总结 前言 这几年关于“35岁失业”的讨论甚嚣尘上&#xff0c;特别是进入疫情时代&#xff0c;身边也越来越多的人开始讨论这个话题。 一方面是疫情带来的巨大变革&#xff0c;…

ChatLaw:中文法律大模型

论文题目&#xff1a;ChatLaw: Open-Source Legal Large Language Model with Integrated External Knowledge Bases   论文日期&#xff1a;2023/06/28   官网地址&#xff1a;https://www.chatlaw.cloud   论文地址&#xff1a;https://arxiv.org/abs/2306.16092   G…

31岁音乐家零经验转行「软件开发者」,薪资翻4倍!

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 改岗转行&#xff0c;绝非易事。 31 岁前&#xff0c;Charlotte Kies 一直将成为单簧管演奏家和音乐教育家&#xff0c;视为职业人生的终极目标。 如今 33 岁的她&#xff0c;却已实现了…

微软欲模仿“微信”,打造一款超级 App?

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 「Write Once&#xff0c;Run Anywhere」是很多开发者的梦想&#xff0c;而对于不少开发商而言&#xff0c;他们更希望能够打造一套系统或服务走天下。 近日&#xff0c;据外媒 The Information 报道&a…

7位顶级AI学者,齐聚一堂!对ChatGPT进行“华山”论道!

来源&#xff1a;机器之心 ChatGPT 的走红再次掀起人们对人工智能的关注&#xff0c;那么在 ChatGPT 之后&#xff0c;人工智能将会如何发展&#xff1f;业内及 ChatGPT 的母公司 OpenAI 都认为 AGI 将是未来人工智能的发展方向。 AGI 理论研究和应用实践将可以从哪些方面出发&…

如何解决在线医疗语音问诊的技术难题 | 以眩晕问诊为例

1. 需求分析与业务理解 1.1 临床诊断流程 根据临床经验&#xff0c;眩晕的临床诊断是有固定流程的&#xff0c;如下图所示&#xff1a; 参考来源&#xff1a;吉林大学中日联谊医院耳鼻咽喉头颈外科 郑军 眩晕概述 1.2 临床痛点 根据临床经验&#xff0c;对于眩晕的诊断和问诊…

在线问诊、找科室、找医生、查疾病、图文问诊、电话急诊、健康咨询、问诊平台、咨询平台、问诊服务、语音问诊、开药问诊、看病平台、在线医疗、健康平台、登录注册、信息架构图、全局说明、组件规范、需求清单、

在线问诊、找科室、找医生、查疾病、图文问诊、电话急诊、健康咨询、问诊平台、咨询平台、问诊服务、语音问诊、开药问诊、看病平台、在线医疗、健康平台、登录注册、信息架构图、全局说明、组件规范、需求清单、Axure原型 Axure原型演示及下载地址&#xff1a;https://www.pm…