4021|19

2774

帖子

8

TA的资源

版主

楼主
 

【一起玩Micropython】+家用气象仪 完工展示 [复制链接]

 
 
本帖最后由 strong161 于 2016-7-7 22:01 编辑

       我的气像仪终于完工了,与前面申请的时候写的方案有所更改,首先去掉了光强BH1750与温湿度 DHT11,因为光强检测在这上面暂时感觉意义不大,而且与BMP180一样都是I2C接口,板载只有两个硬件I2C,考虑以后记录时间可以需要用到一个,所以就省去掉了,DHT11,检测温湿度,因为BMP180有温度功能,重复了,湿度也就省掉吧。原来想用蓝牙发送数据到手机,可是LightBlue接到的数据没法入眼,又不会做上位机,所以暂时就不做蓝牙发送了。
       已实现的功能:通过串口读取PM2.5传感器数据,通过I2C读取气压、温度数据,使用ADC读取MQ2传感器数据,每次读取完成数据读取后通过SPI驱动5110屏进行显示,然后每一分钟将当时检测数据存放到SD卡中指定的文件中。
      
接下来就是成品的样子了,这灯开了不好拍,关灯更清爽
原来以为5110屏坏了!后成拆开一看,只是屏与转接板的软接不稳定,处理了下又好了,由一个充电宝供电,经过一个电源稳压板来供电,因为板载是3.3V,而MQ2与PM2.5模块需要用5V供电,所以用到了稳压板,
然后就是这个BMP180气压传感器。
MQ2,易燃气体传感器
PM2.5,粉尘传感器
主控板,这个主角啦。
板子就这样用一个2900mah充电宝供电,MQ2传感器需要加热,功耗特别大本来打算记录一个晚上的变化数据,结果,只运行了1小时多就没有电了。因为程序是每分钟左右记录一次数据,所以只有一小时的数据,数据就存在这个文件里面,SD/senser.txt,

如果不存在这个文件,程序会新建,每次都会接着上次数据在后面添加新数据。由于还没有RTC芯片,所以没有记录准确的时候,只用了1分钟计时输出。数据输出样式如下:
可以用Excel 把数据处理一下,生成图表,更直观,这个表前1-51是昨晚运行记录的数据,后面20分钟是今天测试视频生成的数据。可以与视频进行对比下。
把视频压成FLV后不是太清晰,
截了几个测试截图如下:
接下来是源文件
BMP180驱动,自己做的字体,LCD5110驱动,
PM 是lkl0305的驱动加上 和我的GP2Y 因为都是同一种类的驱动所以放一起了!
bmp180.py (6.9 KB, 下载次数: 16) font.py (4.48 KB, 下载次数: 10) lcd5110.py (851 Bytes, 下载次数: 14) main.py (3.44 KB, 下载次数: 18) PM.py (4.72 KB, 下载次数: 14) senser.txt (10.83 KB, 下载次数: 27) upcd8544.py (9.4 KB, 下载次数: 11)


最新回复

学习一下  详情 回复 发表于 2018-6-5 08:41

赞赏

2

查看全部赞赏

点赞 关注(3)
 
 

回复
举报

855

帖子

5

TA的资源

一粒金砂(高级)

沙发
 
抢占沙发,绑定
个人签名作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
 
 
 

回复

6105

帖子

4

TA的资源

版主

板凳
 
不错不错
 
 
 

回复

604

帖子

1

TA的资源

一粒金砂(中级)

4
 
顶一下
个人签名疏雨客晚归,荒烟乱,几许江南无晴!又落花,残香织梦,莫  莫  莫,白首衷肠……
 
 
 

回复

1万

帖子

25

TA的资源

版主

5
 
非常不错。

pyboard带有RTC功能,不需要外部的RTC模块,还支持RTC唤醒功能。

功耗部分,pyboard本身是支持休眠降低功耗的pyb.stop()和pyb.standby(),然后通过RTC唤醒,在就是液晶应该也可以控制功耗,特别是背光功耗较大。

点评

这样子呀!好吧!那是不是每次运行都人设置时间?我看看,谢谢提醒!晚上没有开液晶灯,是MQ2模块需要加热,很耗电。  详情 回复 发表于 2016-7-5 11:59
 
 
 

回复

2774

帖子

8

TA的资源

版主

6
 
dcexpert 发表于 2016-7-5 11:57
非常不错。

pyboard带有RTC功能,不需要外部的RTC模块,还支持RTC唤醒功能。

功耗部分,pyboard本身 ...

这样子呀!好吧!那是不是每次运行都人设置时间?我看看,谢谢提醒!晚上没有开液晶灯,是MQ2模块需要加热,很耗电。

点评

如果在vbat上接后备电池,就不需要每次设时间了。  详情 回复 发表于 2016-7-5 12:10
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

7
 
不错,,,哥们有没有好想法,做点能赚钱的东西出来啊

点评

想法很多,就是得好好学习再能做出来!技术太菜,哦!  详情 回复 发表于 2016-7-5 12:03
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复

2774

帖子

8

TA的资源

版主

8
 
wugx 发表于 2016-7-5 12:01
不错,,,哥们有没有好想法,做点能赚钱的东西出来啊

想法很多,就是得好好学习再能做出来!技术太菜,哦!

点评

这个不能这么说,一个成熟的作品,并不是只靠技术堆出来的,况且技术这个东西是车道山前必有路,肯定能克服的,现在这个社会一个人单打独斗太难了,靠团队协作  详情 回复 发表于 2016-7-5 12:06
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

9
 
strong161 发表于 2016-7-5 12:03
想法很多,就是得好好学习再能做出来!技术太菜,哦!

这个不能这么说,一个成熟的作品,并不是只靠技术堆出来的,况且技术这个东西是车道山前必有路,肯定能克服的,现在这个社会一个人单打独斗太难了,靠团队协作

点评

嗯,这个年代什么都需要有团队,呵呵!等技术熟点了就开始开发点各种小的智能设备。  详情 回复 发表于 2016-7-5 19:17
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复

1万

帖子

25

TA的资源

版主

10
 
strong161 发表于 2016-7-5 11:59
这样子呀!好吧!那是不是每次运行都人设置时间?我看看,谢谢提醒!晚上没有开液晶灯,是MQ2模块需要加 ...

如果在vbat上接后备电池,就不需要每次设时间了。

点评

嗯!那就比较麻烦了!呵呵!  详情 回复 发表于 2016-7-5 12:11
 
 
 

回复

2774

帖子

8

TA的资源

版主

11
 
dcexpert 发表于 2016-7-5 12:10
如果在vbat上接后备电池,就不需要每次设时间了。

嗯!那就比较麻烦了!呵呵!

点评

稍微有点麻烦,VBAT其实已经引出来了,只要一个CR1220小纽扣电池就可以。  详情 回复 发表于 2016-7-5 12:29
 
 
 

回复

1万

帖子

25

TA的资源

版主

12
 
strong161 发表于 2016-7-5 12:11
嗯!那就比较麻烦了!呵呵!

稍微有点麻烦,VBAT其实已经引出来了,只要一个CR1220小纽扣电池就可以。

点评

嗯!想到办法了!呵呵!拿胶枪粘到背后!  详情 回复 发表于 2016-7-5 12:46
 
 
 

回复

2774

帖子

8

TA的资源

版主

13
 
dcexpert 发表于 2016-7-5 12:29
稍微有点麻烦,VBAT其实已经引出来了,只要一个CR1220小纽扣电池就可以。

嗯!想到办法了!呵呵!拿胶枪粘到背后!
 
 
 

回复

2774

帖子

8

TA的资源

版主

14
 
wugx 发表于 2016-7-5 12:06
这个不能这么说,一个成熟的作品,并不是只靠技术堆出来的,况且技术这个东西是车道山前必有路,肯定能克 ...

嗯,这个年代什么都需要有团队,呵呵!等技术熟点了就开始开发点各种小的智能设备。
 
 
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

15
 
这个很不错,一定要顶。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

16
 
Python 在嵌入式里是不是更要注重语法的优化?比如while True改成1这之类的。
我新手哈,没玩过硬件。只是写过应用层的爬虫... 大神莫怪!

点评

你说的这个总是我也不大清楚,今年4月份社区活动,才听说有python这门语言,不过while True 与while 1是没有区别的呀,写while Trun 应该从阅读上来讲会更好。至于语法优化,应该来说都是一样。嵌入式与应用软件最大  详情 回复 发表于 2016-8-8 23:10
 
 
 

回复

2774

帖子

8

TA的资源

版主

17
 
凉冰 发表于 2016-8-8 10:39
Python 在嵌入式里是不是更要注重语法的优化?比如while True改成1这之类的。
我新手哈,没玩过硬件。只 ...

你说的这个总是我也不大清楚,今年4月份社区活动,才听说有python这门语言,不过while True 与while 1是没有区别的呀,写while Trun 应该从阅读上来讲会更好。至于语法优化,应该来说都是一样。嵌入式与应用软件最大的区别可能是 嵌入式操作的对像更多的是涉及到硬件外设寄存器,而软件的话不涉及。寄存器打包好了,也就是当软件API用没有什么特别大的区别。

点评

True的可读性是好点,不过他多了一层的转化。 我没做过嵌入式,但我在做应用层开发的时候是有些性能变化的。 下面是我在Linux下做的简单测试,也许嵌入式已经做好优化之类的了:) root@debian:~# time python  详情 回复 发表于 2016-8-9 11:07
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

18
 
strong161 发表于 2016-8-8 23:10
你说的这个总是我也不大清楚,今年4月份社区活动,才听说有python这门语言,不过while True 与while 1是 ...

True的可读性是好点,不过他多了一层的转化。
我没做过嵌入式,但我在做应用层开发的时候是有些性能变化的。
下面是我在Linux下做的简单测试,也许嵌入式已经做好优化之类的了:)

root@debian:~# time python a.py

real    0m21.231s
user    0m21.225s
sys     0m0.004s
root@debian:~# time python b.py

real    0m32.465s
user    0m32.446s
sys     0m0.016s
root@debian:~# diff a.py b.py
2c2
< while 1:
---
> while True:
root@debian:~# cat a.py b.py
i=0
while 1:
    i += 1
    if i > 200000000:
        break
i=0
while True:
    i += 1
    if i > 200000000:
        break

点评

python语言理论上是存在这个问题,无论是嵌入式还是应用层都会存在这个问题,因为py文件为更多是方便阅读代码,是边解释边运行的语言,都会存在你说的这个问题,解释的过程会存在差异,如果要运行快的话,建议编译成  详情 回复 发表于 2016-8-10 08:15
 
 
 

回复

2774

帖子

8

TA的资源

版主

19
 
凉冰 发表于 2016-8-9 11:07
True的可读性是好点,不过他多了一层的转化。
我没做过嵌入式,但我在做应用层开发的时候是有些性能变化 ...

python语言理论上是存在这个问题,无论是嵌入式还是应用层都会存在这个问题,因为py文件为更多是方便阅读代码,是边解释边运行的语言,都会存在你说的这个问题,解释的过程会存在差异,如果要运行快的话,建议编译成pyc后再运行进行对比,应该来说两者会减少差异或者没有什么差异,毕竟编写的过程中注重代码的阅读,而运行的话编成pyc两者可能都没有差别吧,建议你试运行一下发个经验贴给大家学习下。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

20
 
学习一下
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表