查看: 680|回复: 0

[大赛作品提交] 基于树莓派的智能空气净化器

[复制链接]

主题

好友

21

积分

白丁

该用户从未签到

发表于 2018-1-10 20:00:24 |显示全部楼层
本帖最后由 ky123 于 2018-1-31 14:04 编辑

感谢E络盟提供的助赛基金。
1.原理介绍
空气净化器在阴霾漫天的帝都是生活必不可少的生活品,在树莓派的辅助下,可以更人性化的照顾家里或办公区域的环境,通过树莓派与各个信号采集模块的绑定,可以实现信号传递与空气湿度、温度、质量等监控,通过连接空气净化模块进行空气检测,将数据采集完成后通过通信网络上传到网络服务器,实现智能空气净化器功能。

2.系统版本
硬件: 树莓派、pm2.5传感器模块、温度传感器、风扇、湿度传感器、滤网、滤芯、pwm调速器
系统版本:Ubuntu
软件:visual studio
3.应用源代码
  1. #! /usr/bin/python
  2. # -*- coding:utf-8 -*-
  3. #
  4. import  os,commands,time

  5. #获取当前温度
  6. device_file ='/sys/bus/w1/devices/28-031681e171ff/w1_slave'#18B20设备接口
  7. def read_temp_raw():
  8.     f = open(device_file,'r')
  9.     lines = f.readlines()
  10.     f.close()
  11.     return lines

  12. def gettemperature():
  13.     temp_c=-1
  14.     lines = read_temp_raw()
  15.     while lines[0].strip()[-3:] != 'YES':
  16.         time.sleep(0.2)
  17.         lines = read_temp_raw()
  18.     equals_pos = lines[1].find('t=')
  19.     if equals_pos != -1:
  20.         temp_string = lines[1][equals_pos+2:]
  21.         temp_c = float(temp_string)/1000.0        
  22.     return temp_c





  23. #获取当前湿度      
  24. def gethumidity():
  25.   
  26.   while 1:
  27.     channel = 21 #gpi 4
  28.     data = []
  29.     j = 0


  30.     GPIO.setmode(GPIO.BCM)


  31.     time.sleep(1)


  32.     GPIO.setup(channel, GPIO.OUT)
  33.     GPIO.output(channel, GPIO.LOW)
  34.     time.sleep(0.02)
  35.     GPIO.output(channel, GPIO.HIGH)
  36.     GPIO.setup(channel, GPIO.IN)


  37.     while GPIO.input(channel) == GPIO.LOW:
  38.       continue
  39.     while GPIO.input(channel) == GPIO.HIGH:
  40.       continue


  41.     while j < 40:
  42.       k = 0
  43.       while GPIO.input(channel) == GPIO.LOW:
  44.         continue
  45.       while GPIO.input(channel) == GPIO.HIGH:
  46.         k += 1
  47.         if k > 100:
  48.           break
  49.       if k < 8:
  50.         data.append(0)
  51.       else:
  52.         data.append(1)


  53.       j += 1


  54.     #print "sensor is working."
  55.     #print data


  56.     humidity_bit = data[0:8]
  57.     humidity_point_bit = data[8:16]
  58.     temperature_bit = data[16:24]
  59.     temperature_point_bit = data[24:32]
  60.     check_bit = data[32:40]


  61.     humidity = 0
  62.     humidity_point = 0
  63.     temperature = 0
  64.     temperature_point = 0
  65.     check = 0


  66.     for i in range(8):
  67.       humidity += humidity_bit[i] * 2 ** (7-i)
  68.       humidity_point += humidity_point_bit[i] * 2 ** (7-i)
  69.       temperature += temperature_bit[i] * 2 ** (7-i)
  70.       temperature_point += temperature_point_bit[i] * 2 ** (7-i)
  71.       check += check_bit[i] * 2 ** (7-i)


  72.     tmp = humidity + humidity_point + temperature + temperature_point


  73.     if check == tmp:
  74.       retrun humidity      
复制代码
4.演示照片
微信图片_20180111193853.jpg

设备全图

设备全图

树莓派近图

树莓派近图

模拟器截屏

模拟器截屏

原理图

原理图


演示视频
1.zip (2.41 MB, 下载次数: 4)
回复

使用道具 举报

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

关闭

站长推荐上一条 /3 下一条

手机版|爱板网

GMT+8, 2018-10-15 23:46 , Processed in 0.194594 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001056号

Powered by Discuz!

返回顶部