当前位置:网站首页>#DAYU200体验官#MPPT光伏发电项目 DAYU200、Hi3861、华为云IotDA
#DAYU200体验官#MPPT光伏发电项目 DAYU200、Hi3861、华为云IotDA
2022-07-07 21:37:00 【51CTO】
一、项目介绍
能源危机日益严重,发展新能源势在必行。光伏发电就是不错的选择,但是光电转换效率一直是困扰行业发展的一大难题。本项目通过MPPT全称“最大功率点跟踪”(Maximum Power Point Tracking)实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出电力。 下图使用300W的光伏太阳能板为4串12V的磷酸铁锂电池进行充电。基本功能已经实现,项目中设备代码、应用端代码、原理图等将全部开源,PCB电路还在调试中。
系统分为三个部分:
视频演示地址: https://ost.51cto.com/show/14366
应用端:
OpenHarmony应用端:使用润和DAYU200开发板,基于ArkUI/eTS开发框架,实现光伏发电控制器应用端,可实时监控光伏控制器设备状态。并将设备数据同步到华为云IotDA,可实现广域网设备状态检测和控制。
HarmonyOS应用端:使用HarmonyOS原子化服务能力,应用免安装。支持NFC碰一碰配网(NAN+SoftAP),配网成功拉起设备控制页面。设备控制模块同OpenHarmony应用端。同时提供服务卡片,可将重要的设备信息添加到桌面,方便随时随地进行查看。
设备端:
设备端为太阳能充放电控制器,输入端接太阳能光伏板,输出端接锂电池等储能设备。主控芯片采用Hi3861,核心算法采用MPPT“最大功率点跟踪”(Maximum Power Point Tracking),可显著提升太阳能光伏板的发电效率。原理图如下:
云端:
云端接入 华为云IotDA,负责设备数据采集,下发命令给设备。
二、项目目录
项目gitee地址: https://gitee.com/liangzili/oh-solar-control
三、设备端代码
设备端实现的功能:
1.NFC一键配网
获取设备端输入输出电流电压。
原理图中,在太阳能输入端,锂电池端接分压电阻。分别接入ADS1115的AIN0和AIN3接口。
1.OpenHarmony_Firmware\OH_SolarControl\ADS1X15
文件夹下移植了ADS1X15 Arduino端驱动代码到OpenHarmony。电流检测使用ACS712模块,接入ADS1115的AIN1和AIN2接口,ADS1115通过I2C模块与Hi3861通讯。接入主要代码如下:温度控制
当系统温度过高时,自动关闭系统。使用NTC100K的温度传感器,由于Hi3861系统资源比较有限,所以使用二分查表法计算温度值,关键代码如下:
OLED显示
将系统实时运行状态显示出来,相关代码包含在
1.OpenHarmony_Firmware\OH_SolarControl\ssd1306
文件夹下mqtt接入华为云
四、OpenHarmony应用端代码
界面实现
页面使用ets进行编写,主要代码如下:
Http访问
连接华为云IotDA需要使用get、post请求云端数据,发送请求配置代码:
华为云API接口
获取IAM用户Token接口,该接口可以用于通过用户名和密ma的方式进行认证来获取IAM用户Token。
查询设备影子数据接口,通过调用此接口查询指定设备的设备影子信息,相关代码如下
五、HarmonyOS应用端代码
HarmonyOS应用端可以直接使用DevEco Studio自带的OneHop模板,需要安装 DevEco Studio 3.0.0.800 Beta2 for HarmonyOS
这部分的内容我在之前的文章已经写过,这里就不再赘述了,原贴链接 碰一碰实现-开源基础软件社区-51CTO.COM
应用端代码分为两个模块,entry和control,entry模块负责设备配网,control模块负责设备数据采集和设备控制。
entry配网模块
模板中配网默认使用的是NAN配网模式,配网成功率比较差,可以增加SoftAP配网模式,两种模式配网,增加设备配网成功率。首先修改getWifiInfo()
函数。
discoverDevice()
函数分解为NAN、SoftAP两种方式
连接设备也分为两种方式:
配网函数需要做同样的修改,其他配网方式基本不变。
两种方式配网,配网的成功率会增加很多,这种方式参考了 OpenHarmony-SIG/knowledge 智慧家居开发样例。这个仓提供了很多OpenHarmony物联网设备的样例,感兴趣的小伙伴,可以仔细研究下。
control控制模块
新设备的定义在3.HarmonyOS_APP/SolarControl/entry/src/main/java/com/zml/solarcontrol/MainAbility.java
。当entry模块配网成功时,会拉起control模块界面并将productName
参数一并传递过来。
控制模块下添加一个新的设备SOLAR
,其中资源包含在3.HarmonyOS_APP/SolarControl/control/src/main/js/default/common/SOLAR
文件夹下,配置文件包含在3.HarmonyOS_APP/SolarControl/control/src/main/resources/rawfile/SOLAR
文件夹下。
配置流程如下:
目前项目基本框架已经实现,还有部分功能在完善中,近期会继续更新文档。
边栏推荐
- 你可曾迷茫?曾经的测试/开发程序员,懵懂的小菜C鸟升级......
- How polardb-x does distributed database hotspot analysis
- Implementation of mahout Pearson correlation
- Pre sale 179000, hengchi 5 can fire? Product power online depends on how it is sold
- Automatic classification of defective photovoltaic module cells in electronic images
- Leetcode SQL first day
- Datatable data conversion to entity
- UVA 12230 – crossing rivers (probability) "suggested collection"
- Insufficient permissions
- Display optimization when the resolution of easycvr configuration center video recording plan page is adjusted
猜你喜欢
The strongest installation of the twin tower model, Google is playing "antique" again?
An overview of the latest research progress of "efficient deep segmentation of labels" at Shanghai Jiaotong University, which comprehensively expounds the deep segmentation methods of unsupervised, ro
Build your own website (18)
Magic weapon - sensitive file discovery tool
嵌入式开发:如何为项目选择合适的RTOS?
Focusing on safety in 1995, Volvo will focus on safety in the field of intelligent driving and electrification in the future
Dry goods sharing | devaxpress v22.1 original help document download collection
L2: current situation, prospects and pain points of ZK Rollup
cv2.resize函数报错:error: (-215:Assertion failed) func != 0 in function ‘cv::hal::resize‘
ISO 26262 - considerations other than requirements based testing
随机推荐
2022 how to evaluate and select low code development platforms?
Jerry's key to initiate pairing [chapter]
Codeforces round 275 (Div. 2) C – diverse permutation (construction) [easy to understand]
Kirin Xin'an operating system derivative solution | storage multipath management system, effectively improving the reliability of data transmission
Latest Android advanced interview questions summary, Android interview questions and answers
Typescript TS basic knowledge type declaration
[open source] Net ORM accessing Firebird database
Jerry's test box configuration channel [chapter]
It's worth seeing. Interview sites and interview skills
Dry goods sharing | devaxpress v22.1 original help document download collection
Description of the difference between character varying and character in PostgreSQL database
MIT6.S081-Lab9 FS [2021Fall]
Jerry's fast pairing does not support canceling pairing [article]
Datatable data conversion to entity
Why can't win11 display seconds? How to solve the problem that win11 time does not display seconds?
【colmap】稀疏重建转为MVSNet格式输入
Code of "digital image processing principle and Practice (matlab version)" part2[easy to understand]
Can I open a stock account directly online now? Is it safe?
Jerry's about TWS channel configuration [chapter]
[开源] .Net ORM 访问 Firebird 数据库