zoukankan      html  css  js  c++  java
  • 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能:

    l  APP控制月球灯

    l  本地月球灯控制

    l  APP控制“大白”颜色,实现各种颜色变身

    l  门状态传感器状态APP显示

    l  网络状态指示灯,连接服务器长亮,断开后闪烁

    l  配网按键

    l  云端定时功能

    l  云端报警提示功能

    l  云端历史数据查看

    l  远程升级介绍

    视频演示:https://www.bilibili.com/video/BV1jg411P7f6

    一、界面展示

           

           

    二、 涂鸦开发概述

    零代码开发

    提供可视化功能配置界面,无需任何编程经验,只需要在线配置好产品的功能,及可自动生成固件

    MCU SDK开发

    在MCU上进行代码开发,通过串口和涂鸦模组进行通信,从而实现与平台通信

    模组SDK开发

    开发者利用涂鸦提供的SDK对模组进行二次开发,灵活性强,节省成本

    先注册一个账号:

    https://t.tuya.com/AY1D3R8gZc

    三、硬件选型

    Wi-Fi&BLE SoC NANO主控板(BK7231N)

    l  Wi-Fi &BLE 双模芯片

    l   1:MICROUSB(CN1) :即是 5V DC 输入口,也扩展了 2 个串口功能。

    l   2:拨码开关(S1): 拨码切到 ON 方向导通,通断 USB 转串口芯片的双串口和芯片串口之间的链路。

    l   3: 指示灯(D3):3.3V 电源指示灯。

    l   4:按键(S2):通过 P9 检测,初始化高电平,按下为低电平。

    l   5:指示灯(D2):通过 P16 控制,低电平点亮。

    l   6:按键(RST):复位按键,按下后芯片复位。

    原理图:

     

    两个串口:

    其中

    l  A可以作为程序下载使用的

    l  B通常是用来打印日志的

    参考:

    https://developer.tuya.com/cn/docs/iot/tuya-sandwich-wifi-and-ble-soc-board-BK7231N?id=Kao72e6net3bs

    对标的模组为:

    l  内置低功耗 32 位 CPU,可以兼作应用处理器

    l  主频达 120MHz

    l  工作电压:3.0V~3.6V

    l  内置2Mbyte 闪存和 256 KB RAM

    l  外设:5×PWM,2×UART,1×SPI

    l  Wi-Fi 连通性

    n  802.11 b/g/n

    n  通道1-14@2.4GHz

    n  支持WEP,WPA/WPA2,WPA/WPA2 PSK (AES) 安全模式

    n  802.11b模式下最大+16dBm的输出功率

    n  支持STA/AP/STA+AP工作模式

    n  支持SmartConfig和AP两种配网方式(包括Android和IOS设备)

    n  板载PCB天线,天线峰值增益2.2dBi

    n  工作温度:-40℃ to 105℃

    l  蓝牙连通性

    n  蓝牙模式支持6 dBm 发射功率

    n  完整的蓝牙共存接口

    n  板载PCB天线,天线峰值增益2.2dBi

    https://developer.tuya.com/cn/docs/iot/cbu-module-datasheet?id=Ka07pykl5dk4u

    四、 创建一个产品(模组SDK开发)

    创建产品步骤:

    1. 选择品类
    2. 选择开发方式为“自定义方案”
    3. 配置功能点(DP点)
    4. 制作界面,推荐使用Studio面板制作
    5. 硬件开发选型,点击“TuyaOS”,选择支持模组SDK开发的模组
    6. 下载模组的SDK和领取授权码

    五、编程环境搭建

    Ubuntu虚拟机环境搭建

    https://developer.tuya.com/cn/docs/iot/SoC-redevelopment_Windows?id=Kauqrxxka0wv6

    安装编译工具

    sudo apt-get update
    sudo apt-get upgrade -y
    sudo apt-get install net-tools build-essential wget git python libc6-i386

    共享文件夹

    共享Linux文件夹,可以实现在Windows中编程,在Linux中编译

    Samba安装

    sudo apt-get install samba cifs-utils samba-common

    在用户目录(/home/dong/)下创建共享文件夹,并且给文件夹可读可写可执行权限

    mkdir share
    chmod 777 -R share

    修改samba配置

    sudo gedit /etc/samba/smb.conf

    在文件最后面添加配置信息

    [share] 
       path = /home/dong/share 
       available = yes 
       browseable = yes 
       public = no
       writable = yes

    设置共享文件夹登录账号

    sudo smbpasswd -a dong

    重启服务

    sudo service smbd restart

    Windows操作

    查询Linux IP ,使用如下进行访问

    \\192.168.199.129\share

    六、SDK使用及程序编写

    下载刚刚创建产品的模组SDK

    复制到Linux共享目录下,通过命令解压

    tar -zxvf b1daf5huhq0w.tar.gz

    l  apps文件夹:用于存放示例工程和后续创建的工程放置处

    l  platforms文件夹:用于存放模组的原厂库和工具,在编译时会由build_app.sh进行下载

    l  sdk文件夹:涂鸦模组SDK的头文件和库文件

    l  build_app.sh:编译脚本

    官方例程:

    git clone https://github.com/Tuya-Community/bk7231n_light1_io_xx.git

    文档:https://developer.tuya.com/cn/docs/iot/quick-start?id=Kaytf7h5yhp8y

    在有build_app.sh文件下编译:

    指令格式:

    sh build_app.sh ./apps/工程名目录名/ 工程名(工程名目录名) 版本号

    示例:

    sh build_app.sh ./apps/bk7231n_light1_io_dxd/ bk7231n_light1_io_dxd 1.5

    编译成功:

    编译成功后在工程目录下会创建“output”文件夹,并且里面有对应的版本

    输出

    l  QIO是生产固件,生产时下载

    l  UA是用户固件,本地调试用原厂工具烧录时使用

    l  UG是升级固件

    程序介绍:

    https://developer.tuya.com/cn/docs/iot/redevelopment?id=Kaytfdoorwc24

    七、 固件烧录&授权

    上传固件

    必须要上传一个固件,然后进行授权烧录一次,如果直接用原厂工具烧录,不上传固件,硬件会始终无法配对

    上架前:

    上架后:

    固件标识名是非常重要的,编译时的“工程名目录名”,这个授权之后就是绑定关系了,后续如果更改,需要云端也下架更改,比较麻烦。原厂工具烧录时也必须同名编译。

    获取授权码

    每个硬件都要有个独立的授权码,才能正常连接到云平台,就像硬件身份证一样

    方式一(模组):

    如果是第一次使用平台,可以获取两个免费的授权码

    方式二(开发板):

    开发板可以通过ID和PASSWD获取一个授权码,这个开发板上一般会有贴纸

    烧录方式1,云模组烧录平台,新板子必须经过一次

    这里是烧录也是授权,烧录的固件是上传到云平台的固件

    将编译输出的固件上传到产品下,获取激活码(生产凭证)

     申请一个PMS账号

    https://pms.tuya.com/login

    需要将我们的生成凭证在此确认

    下载云模组烧录软件进行烧录

    https://github.com/TuyaInc/TUYA_PTS_SDK/raw/master/Tools/TYDA_Setup_Online.exe

    点击运行即可开始下载,点击后需要手动复位模组

    原厂工具烧录

    在使用原厂工具烧录前,为了确保APP可以正常控制设备,必须进过一次“云模组”烧录,后续就不需要每次更改后上传云平台,直接下载会更加方便些,烧录的固件是用户固件(UA)

    下载原厂工具

    https://images.tuyacn.com/smart/shiliu_zone/SOC_Develop/tools/bk_writer_gui_V1.6.3.rar

    这是个免安装的软件

    1. 选择烧录的模组的芯片,创建产品时可以查看到
    2. 选择烧录的UA文件
    3. 起始地址
    4. 地址长度
    5. 选择烧录串口,烧录波特率可以大一些
    6. 点击烧录,后要进行手动复位

    烧录可能会遇到的问题

    使用云模组烧录授权平台时,烧录到一半可能会出现这个问题,使用Wi-Fi&BLE SoC NANO主控板时,若出现“获取RF标志位失败”的情况,可在授权阶段,将串口2的RXD引脚(P01引脚)和GND短接。

    更多异常解决:

    https://developer.tuya.com/cn/docs/iot/flash-and-authorize?id=Kaytfatwdbfj2

    八、设计思路

    设计思路

    https://www.bilibili.com/video/BV1jg411P7f6

    九、个人导航

    【B站 | 东小东bili】 https://space.bilibili.com/162091292

    【博客园 | 东小东 】https://www.cnblogs.com/dongxiaodong/

    【CSDN | 东小东博客】https://blog.csdn.net/dongxiaodongvip

    【微信 | 东小东】dongxiaodongwx

  • 相关阅读:
    数组过滤函数 array_filter
    unset()到底搞掉了谁?
    $a=NULL 他到底是啥
    wordpress
    (转)Apache对文件后缀解析的分析利用
    isset()和empty()到底区别是什么。
    cad.net 封装jig
    cad.net 封装两个填充类
    ASP.NET CORE WEBAPI文件下载
    swagger配置
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/15674465.html
Copyright © 2011-2022 走看看