发作品签到
专业版

环境气象监测仪2

工程标签

1.1w
0
0
15

简介

环境气象监测仪可以检测空气温湿度,风向风速和太阳辐射等气象要素。广泛应用于农业,林业和气象行业,地质勘查等领域,操作简单,便捷小巧。

简介:环境气象监测仪可以检测空气温湿度,风向风速和太阳辐射等气象要素。广泛应用于农业,林业和气象行业,地质勘查等领域,操作简单,便捷小巧。
星火计划2023

开源协议

GPL 3.0

创建时间:2023-04-03 05:04:47更新时间:2023-06-15 09:10:37

描述

项目说明

不锈钢的铁架子,可架设在户外屋顶,水塔。

同时支持USB type-C接口和太阳能光伏发电板供电输入。

具备常规的风速,风向,空气温度,湿度检测外,还扩展485,比如土壤水分温湿度检测等,但485部分是扩展项,目前只有硬件。

4G实时通讯把数据上传到云端服务器。

微信小程序与服务器连接,显示气象仪数据。

 

本项目设计用到的工具软件覆盖面广,有些是多年积累的皮毛,有些是现学现卖。

SketchUp画3D外观效果图,

JLCEDA设计原理图、PCB,

MicroPython写STM32,

QuecPython写4G模块,

Python云端服务器程序,

微信小程序写手机端,

Proe设计不锈钢的铁架子、3D打印的塑料壳子

 

开源协议

GPL3.0

 

项目进度

04月01日,设计产品3D外观模型

04月09日,完成PCB并发出打样

04月10日,开始设计微信小程序,简易界面

04月15日,PCB打样回来,补缺件,调试硬件

04月16日,开始调试STM32程序。

04月17日,钣金设计铁架子

04月18日,简单测试EC800M,4G,GPS模块。

04月30日,打样的铁架子收货,组装铁架子。

05月07日,完成4G,GPS模块程序。

05月22日,完成云端,手机端微信小程序端。

05月28日,STM32,4G模块,云端,手机端联调完成。

 

项目介绍

1.系统框图

        USB type-C和 6V光伏板利用简单的二极管隔离实现双电源输入,向三只并联的18650锂电充电,一路经HT7533稳压输出3.3V供CPU,OLED屏,SD卡等供电,

另一路经TC6291升压成5V,向外端口输出,供风向,风速度传感器电源。

 

主控CPU用STM32F407, 在这里显得大才小用,但我的目的是想通过这个小项目熟悉单片机的python编程,

4G模块采用EC800MCNGA,它内置了GPS,并且也支持python编程,与主控之间用串口通信,

云端则是以前双十一特惠租下的阿里云主机,安装WIN2019,python3.9

手机端用微信程序,现学现卖,

传感器之类无非都是些简单的IIC,ADC外设。

 

 

2.软件说明

2.1 STM32F405RG刷micropython固件

  首先到这里https://micropython.org/download/pybv11/      下载.dfu固件

   tYlnX1s84vWNa42zlYutIMwVgkgl9tje2905vzux.png

单片机下载 dfu 固件

  打开 DfuSeDemo 软件,点击Choose 按钮,找到下载回来的 .dfu 固件,然后点击 Upgrade 按钮即可。如下图所示:

 0TqGy1zx9lFARWUeO8Uh4Y85VXVXWTNFlnGzscjV.pngeWQgWfJlT2C8s97VP5dqHKDmi5LTa80IL6qpwXEF.png

 

2.2 移远EC800M CNGA模块刷固件

   到这  https://python.quectel.com/download 下载 python固件、下载QPYcom 工具  

  0eYMttDT7gSe4pECncqWvUrtyL24Vh5IUR2JDQoe.png

  sULeMgELkF3RWfj4FlFhejOgiwTF3DPyhojVpakz.png

 EC800M模块下载固件

 选对串口,找到下载回来的固件 .bin,注意核对模块与固件尾缀是否一致。

  kbmD5Jy5OGksOj2cIAObFi0ArldDMD9tB4hYpUcB.png

 

 

2.3 MicroPython 调试工具 Thonny

  https://thonny.org/ 下载软件,选择中文安装

1、运行->配置解释器

2、 MicroPython(通用)

3、 pyborad板或者移远Quecpython串口

4、确认

5、选对串口,按Ctrl+F2  Shell 就会有 REPL调试信息输出

6、接下来就可以用micropython STM32,EC800编写程序了

  RxciK8fZpcICj5bwUht8QgCfpbLpberkvpQpF1XI.png

 

2.4 MicroPython 基础语法,基础库,API使用 请移步下面链接

http://micropython.com.cn/en/latet/library/index.html

https://python.quectel.com/doc/

https://python.quectel.com/doc/API_reference/zh/index.html

 

2.5  STM32F405RG部分的程序流程图

 程序先是初始化RTC,ADC,IIC,UART等对象,

 搜索SD卡根目录是否存在以今天日期命名的.CSV文件,如果没有则新建文件,

 设置1秒定时中断,在中断里对各功能模块计时器计时。(micropython也有支持多线程序的固件在这没用到)

 while()大循环

   轮询标记位,分别去采集温湿度,紫外线光照强度,风速风向,上传、保存数据,显示。

JIjrSoQZ0ataTEdjlUnlW4kOnXNfOQoyTSHkpAtj.png

2.6  EC800M模块软件

  上电先检测网络状态,如果网络正常了就解析域名获取IP,

  创建UDP的SOCK,启动多线程序

  while()大循环

    根据标记位分别向服务器发数据,给单片机STM32F405RG(pyboard)返回GPS坐标。

  串口接收线程:接收到单片机STM32F405串口送来的数据,立标记 udp_up = 1

  GPS线程:初始化后,5秒为间隔从GNSS数据流中抓取"$GNRMC"帧中的GPS坐标,立标记gps_up = 2

 

BttbEmXqE9oSViNGUvAuoiPDGKThX7bi03VOxR9B.png

2WAoNGEWdCJSkAm0DstAfh5IWTplwOLH8WHz7L2V.png  bE8UJp09Ow1Qoaq6U2E5KtpcgPREj6b4MX2Ku8Un.png

2.7 云端

 import threading  # 打开三个线程

    t1 get_weather  # 获取本地气象数据
    t2 udp_recv    # UDP协议监听port = 2048端口,接收气象仪的数据
    t3 udp_back    # 返回气象信息给手机

      (程序打包在附件里)

 

2.8 微信小程序

 (程序打包在附件里,因为是现学现卖的东西不好在这码字误导大家,请见谅)

微信界面,顶部显示GPS坐标,中间显示气象仪数据,和本地天气预报,底部显示通信数据

 

 

实物展示

设计注意事项

注意:EC800先不要直接保存main.py文件到模块,因为

1)将脚本文件命名为 main.py 后,模块在上电开机后会自动运行该文件

2)由于串口(UART)交互等功能均需要模块端配合执行相应的代码,而 main.py 被自动运行,阻碍了这些代码的执行,导致这些功能受到影响无法正常使用。

3)强烈建议用户功能开发和调试完成,无需再对代码进行频繁修改,仅需测试其开机自启动功能时,再将文件名改为 main.py

(4)请勿在前期开发阶段将文件名修改为 main.py,否则将严重影响开发效率

 

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
云端服务器程序(实现通信中转).py
127
2
紫外线传感器透明外壳.stl
75
3
环境气象仪3D外壳 (1).stl
89
4
钣金件.rar
88
5
STM32 Python脚本.rar
120
6
WX_MINI程序打包.rar
121
7
EC800M_py脚本程序.rar
119
8
环境气象监测仪器演示视频.mp4
399
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航