2021-08-23 23:03:57 索炜达电子 912
项目编号:E528
文件大小:809K
源码说明:带中文注释
开发环境:C编译器
简要概述
1、前言
合泰半导体隶属台湾盛群半导体集团,合泰杯单片机应用设计竞赛的比赛形式为:作品自由发挥,要在几个月之内完成,且必须使用合泰单片机。比赛分为三个环节:初赛、复赛、决赛,每一环节都会刷掉一部分队伍。
2、作品分享
2.1 作品简介
这是我们团队2017年合泰杯省一等奖作品。本作品以合泰HT32F1656为终端主控,采集公寓当前用电用水数据,并将采集到的数据通过终端无线WIFI发送至云端服务器,通过电脑Web端或手机APP远程查看数据,并可通过电脑Web端或手机APP随时随地远程控制公寓开关水电。通过测试结果证明本作品很好的解决了上述公寓用水用电的诸多诟病,实现了智能的公寓生活。并且,设备终端也配备有显示屏,可实时显示一些用水用电等数据。
2.2 作品模块构成图及系统框图
2.2.1 系统框图
本系统主要由电源模块、存储模块、继电器控制模块、无线WiFi模块、显示控制模块、环境温度采集模块、电能信息采集模块和用水采集模块组成,系统控制芯片为HT32F1656。该系统方框图如下图所示:
2.2.2 模块构成图
3、人机交互过程图及云端监测
3.1 人机交互过程图
电脑Web端、手机APP端是基于中移动ONENET云平台搭建的,基于ONENET提供的接入协议和平台功能,用户终端与电脑Web端、手机APP、云服务器共同构建了一套完整的能源测控系统。用户终端即时的将数据推送至云平台,云平台根据推送的数据进行云端和手机APP端同步更新。电脑Web端、手机APP端通过发送指令控制终端。如图所示:
3.2 云端监测过程图
4、程序流程图
4.1 主流程图
4.2 与云端通信流程图
5、作品图片
5.1 设备终端实物图
5.2 Onenet云端监测图
在WEB端显示采集的用水用电情况,及断水断电开关进行控制如下图所示:
5.3 设备终端UI界面
我们的设备终端屏幕使用的是串口屏,
5.3.2 UI界面方案二:
目录│文件列表:
└ EnergyMonitor
│ clean.bat
├ hardware
│ ├ ATT7022
│ │ │ ATT7022.c
│ │ └ att7022.h
│ ├ DS18B20
│ │ │ ds18b20.c
│ │ └ ds18B20.h
│ ├ esp8266
│ │ │ esp8266.c
│ │ └ esp8266.h
│ ├ HMI
│ │ │ HMI.c
│ │ └ HMI.h
│ ├ http
│ │ │ HTTP_Demo.c
│ │ └ HTTP_Demo.h
│ ├ I2C
│ │ │ 24cxx.c
│ │ │ 24cxx.h
│ │ │ myiic.c
│ │ └ myiic.h
│ ├ LED
│ │ │ led.c
│ │ └ led.h
│ ├ SPI
│ │ │ spi.c
│ │ └ spi.h
│ ├ Timer
│ │ │ BFTM.c
│ │ └ BFTM.h
│ ├ Usart
│ │ │ Usart.c
│ │ └ usart.h
│ ├ Water_485
│ │ │ Water_485.c
│ │ └ Water_485.h
│ └ wifi_handle
│ │ wifi_handle.c
│ └ wifi_handle.h
├ library
│ ├ CMSIS
│ │ │ CMSIS_END_USER_LICENCE_AGREEMENT.pdf
│ │ │ README.txt
│ │ └ Include
│ │ │ core_cm3.h
│ │ │ core_cmFunc.h
│ │ └ core_cmInstr.h
│ ├ Device
│ │ └ Holtek
│ │ └ HT32F1655_56
│ │ ├ Include
│ │ │ │ ht32f1655_56.h
│ │ │ └ system_ht32f1655_56.h
│ │ └ Source
│ │ │ system_ht32f1655_56.c
│ │ ├ ARM
│ │ │ └ startup_ht32f165x.s
│ │ ├ GCC
│ │ │ └ startup_ht32f165x.s
│ │ └ IAR
│ │ └ startup_ht32f165x.s
│ ├ HT32F1655_56_Driver
│ │ ├ inc
│ │ │ │ ht32.h
│ │ │ │ ht32f1655_56_adc.h
│ │ │ │ ht32f1655_56_bftm.h
│ │ │ │ ht32f1655_56_ckcu.h
│ │ │ │ ht32f1655_56_cmp_op.h
│ │ │ │ ht32f1655_56_crc.h
│ │ │ │ ht32f1655_56_ebi.h
│ │ │ │ ht32f1655_56_exti.h
│ │ │ │ ht32f1655_56_flash.h
│ │ │ │ ht32f1655_56_gpio.h
│ │ │ │ ht32f1655_56_gptm.h
│ │ │ │ ht32f1655_56_i2c.h
│ │ │ │ ht32f1655_56_i2s.h
│ │ │ │ ht32f1655_56_lib.h
│ │ │ │ ht32f1655_56_mctm.h
│ │ │ │ ht32f1655_56_pdma.h
│ │ │ │ ht32f1655_56_pwrcu.h
│ │ │ │ ht32f1655_56_rstcu.h
│ │ │ │ ht32f1655_56_rtc.h
│ │ │ │ ht32f1655_56_sci.h
│ │ │ │ ht32f1655_56_spi.h
│ │ │ │ ht32f1655_56_usart.h
│ │ │ │ ht32f1655_56_usbd.h
│ │ │ │ ht32f1655_56_usbdchk.h
│ │ │ │ ht32f1655_56_usbdinit.h
│ │ │ │ ht32f1655_56_wdt.h
│ │ │ │ ht32_cm3_misc.h
│ │ │ │ ht32_retarget_desc.h
│ │ │ │ ht32_retarget_usbdconf.h
│ │ │ └ ht32_serial.h
│ │ └ src
│ │ │ ht32f1655_56_adc.c
│ │ │ ht32f1655_56_bftm.c
│ │ │ ht32f1655_56_ckcu.c
│ │ │ ht32f1655_56_cmp_op.c
│ │ │ ht32f1655_56_crc.c
│ │ │ ht32f1655_56_ebi.c
│ │ │ ht32f1655_56_exti.c
│ │ │ ht32f1655_56_flash.c
│ │ │ ht32f1655_56_gpio.c
│ │ │ ht32f1655_56_gptm.c
│ │ │ ht32f1655_56_i2c.c
│ │ │ ht32f1655_56_i2s.c
│ │ │ ht32f1655_56_mctm.c
│ │ │ ht32f1655_56_pdma.c
│ │ │ ht32f1655_56_pwrcu.c
│ │ │ ht32f1655_56_rstcu.c
│ │ │ ht32f1655_56_rtc.c
│ │ │ ht32f1655_56_sci.c
│ │ │ ht32f1655_56_spi.c
│ │ │ ht32f1655_56_usart.c
│ │ │ ht32f1655_56_usbd.c
│ │ │ ht32f1655_56_wdt.c
│ │ │ ht32_cm3_misc.c
│ │ │ ht32_retarget.c
│ │ │ ht32_retarget_desc.c
│ │ │ ht32_serial.c
│ │ │ printf.c
│ │ └ syscalls.c
│ └ HT32_USBD_Library
│ ├ example
│ │ │ ht32fxxxxx_usbdconf.h
│ │ │ ht32_usbd_class.c
│ │ │ ht32_usbd_class.h
│ │ │ ht32_usbd_descriptor.c
│ │ └ ht32_usbd_descriptor.h
│ ├ inc
│ │ └ ht32_usbd_core.h
│ └ src
│ └ ht32_usbd_core.c
├ project
│ └ Holtek
│ └ HT32F1656
│ │ config.h
│ │ delay.c
│ │ delay.h
│ │ ht32f1655_56_conf.h
│ │ ht32f165x_it.c
│ │ ht32f165x_usbdconf.h
│ │ main.c
│ │ readme.txt
│ │ sys.c
│ │ sys.h
│ │ system_ht32f165x.c
│ └ MDK_ARM
│ │ fromelf.txt
│ │ HT32F165x_DebugSupport.ini
│ │ ht32_op.s
│ │ Project.uvgui.Jodam QD
│ │ Project.uvgui.LiZhengNian
│ │ Project.uvproj
│ │ startup_ht32f165x.s
│ └ HT32
│ └ Obj
│ └ HT32.hex
├ source_insight
│ │ holtek.bookmarks.xml
│ │ holtek.siproj
│ │ holtek.siproj_settings.xml
│ │ holtek.sip_sym
│ │ holtek.sip_xab
│ │ holtek.sip_xad
│ │ holtek.sip_xc
│ │ holtek.sip_xf
│ │ holtek.sip_xm
│ │ holtek.sip_xr
│ │ holtek.sip_xsb
│ │ holtek.sip_xsd
│ └ holtek.siwork
└ utilities
│ ht32_board.c
│ ht32_board.h
├ common
│ │ ebi_lcd.c
│ │ ebi_lcd.h
│ │ font.h
│ │ i2c_eeprom.c
│ │ i2c_eeprom.h
│ │ ring_buffer.c
│ │ ring_buffer.h
│ │ spi_flash.c
│ │ spi_flash.h
│ │ spi_flash_auto.c
│ │ spi_flash_auto.h
│ │ spi_flash_common.c
│ │ spi_flash_common.h
│ │ spi_flash_MX25L1606E.c
│ │ spi_flash_MX25L1606E.h
│ │ spi_flash_SST25VF016B.c
│ └ spi_flash_SST25VF016B.h
└ HT32_Board
│ ht32f1656_dvb.c
│ ht32f1656_dvb.h
│ ht32f1656_lcd.c
│ ht32f1656_lcd.h
│ ht32f1656_sk.c
└ ht32f1656_sk.h