本帖最后由 dylan8eet 于 2022-2-19 22:08 编辑

一 需求分析
这次成功申请到的是Realtek RTL8722DM物联网开发套件,它具有WiFi和BLE通信模块,原本打算用蓝牙通信做个测评,但是跑测一段时间的示例后我决定换个方向,用WiFi接入互联网结合MQTT协议接入中国移动的OneNET物联网平台,实现智能鱼缸运行状况的在线检测和远程控制。下面将个人需求分析如下表所示:
序号 需求项  需求说明 解决方案
1  多路供电 12V 供水泵抽水和LED灯使用
5V 供AmebaD主板
太阳能供电系统:太阳能板+充放电控制器+锂电池组
2 水温采集 水温对鱼的生存至关重要,需要得到监控 DS18B20 - OneWire
3 水泵控制 能够通断12V 直流电源,进行水循环控制 12V 继电器
4 水位检测检测水位状态以便水位低于预期值时进行提醒补水并关闭水泵取消水循环
P45低压浮球开关
5 灯光控制* LED灯 12V继电器
6 喂食控制* 能够控制机械装置进行定量投食 电机驱动
7 通信 连接家庭WiFi接入互联网访问OneNET平台 MQTT协议


二 系统框图
鱼缸系统框图.PNG


三 AmebaD软硬件资源分析
RTL8722DM MINI EVB Pinout.png
3.1 硬件
temp_ds18b20.jpg
3.1.1 OneWire 对应Pin脚2,用于温度采集,传感器选择DS18B20(防水封装)数据线需要上拉4.7K电阻
feeder_mg90s.jpg
3.1.2 PWM 对应Pin脚7,用于驱动MG90S舵机,初始设定0度
3.1.3 Button 对应主板SW2,用于调试短按键(按键按下保持时间小于3s)和长按键(按键按下保持时间小于10s)对应的功能
relay_3v.jpg
3.1.4 Pin6用于控制继电器对水泵电源进行开关控制
water_lvl_p45.jpg
3.1.5 Pin0,1用于连接水位计(P45低压浮球开关),其中Pin0为输出高电平,Pin1为输入,将该开关按照竖向固定在指水位(开关为闭合状态,Pin1电平为高),当水位下降时浮球露出水面随水位降低而下降(开关为断开状态,Pin1电平为低)。

3.2 软件
3.2.1 Arduino SDK
3.2.2 依赖库:
     + Ameba
     + PubSubClient 用于MQTT通讯
     + Dallas Temperature + OneWire 温度采集
     + AmebaServo 舵机驱动
     + GTimer 定时
     + NTPClient + WiFiUdp 用于将设备时间跟中国科学院国家授时中心进行时间同步

四 OneNET平台相关准备
4.1 账号申请及认证,点击[ 参考链接 ]
4.2 OneNET Studio,点击[ 参考链接 ]
4.2.1 设备接入管理
4.2.1.1 产品管理,产出产品ID(product id)
OneNET-product_id.PNG
4.2.1.2 设备管理,产出设备名称(device name设备密钥device key)
OneNET-device_name-key.PNG
4.2.2 应用开发 -  项目管理,产出项目ID(project id)
OneNET-project_id.PNG
4.2.3 运维监控 - API调试,可实现下发发布“设备属性设置”指令
OneNET-setDeviceProperty.PNG


4.3 Token计算工具,点击[ 下载链接 ] [ 使用链接 ]
     res:由产品ID和设备名称组成
     et:token的失效时间
     key:设备密钥
     method:md5
OneNET-token-tool.PNG


五 设计实现[代码下载 FishMate.zip (9.48 KB, 下载次数: 0)
全部回复 1
  • 0 主题
  • 2 帖子
  • 226 积分
身份:LV1 技术小白
E币:205
路过 飘~~~~~
回复楼主
您需要登录后才可以评论 登录 立即注册