查看: 986|回复: 0

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

[复制链接]

主题

好友

290

积分

秀才

  • TA的每日心情

    2018-12-17 11:16
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 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)
    回复

    使用道具 举报

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

    关闭

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

    手机版|爱板网

    GMT+8, 2019-1-20 01:50 , Processed in 0.071720 second(s), 15 queries , MemCache On.

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

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部