极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12378|回复: 2

基于乐联网的智能家居DIY(3)--------家中环境监测

[复制链接]
发表于 2016-4-7 12:16:01 | 显示全部楼层 |阅读模式
本帖最后由 casc007 于 2016-5-10 23:19 编辑

本系列其他教程:
本系列其他教程链接
教程1 基于乐联网的智能家居DIY(1)--------家庭用电监控与分析
教程2 基于乐联网的智能家居DIY(2)--------传感器数据上传,全国雾霾污染分析大数据
教程3 基于乐联网的智能家居DIY(3)--------家中环境监测
教程4 基于乐联网的智能家居DIY(4)--------车内的环境监测
教程5 基于乐联网的智能家居DIY(5)--------设备远程控制
智能家居在家庭生活中越来越重要,而家庭环境监测就像是一双眼睛,感受着家里环境的变化,所谓知己知彼百战不殆,有了这双眼睛你就能“知己”了。
家中环境主要有温湿度,空气质量(颗粒物,甲醛,二氧化碳等),安全(红外传感,水位传感,燃气传感,烟雾传感和火焰传感等)。有了这些,即使不在家也能感受到家中的状况。家里热不热?热了可以远程开启空调,回家后凉爽的感觉能驱走一天的疲惫;家中环境怎么样?甲醛,颗粒物超标?快快启动新风系统换气,让清新的空气围绕在你身边。
本文就以乐联网+温湿度+颗粒物和甲醛传感器为例,继续抛砖引玉。
材料及费用,esp8266板 27元,7021温湿度传感器20元,甲醛传感器150元,攀藤颗粒物传感器g5 95元,洞洞板3元,oled显示屏 20元,300多点就能搞一个靠谱的环境监测何乐而不为呢?
首先连接硬件电路 其中7021,甲醛传感器为3.3v,颗粒物传感器和oled显示屏是5v,不要接错,颗粒物传感器和甲醛传感器使用串口,但8266只有一对串口,所以要两个。7021和oled显示使用I2C通讯。图示很复杂,在洞洞板上就很简单,注意不要让物体挡住G5的进风口,7021也要尽可能离8266远些,以防其产生的热量影响准确度。
实物接线图:

连接好实物后就要刷固件了,固件地址和部分程序在github,使用microUSB连接到8266板子上即可刷固件(不要连接其他设备),程序要用官方提供的FLASH_DOWNLOAD_TOOLS软件,按图示填写设置,最后设置连接完成后,按住板子上的flash不松开,之后点软件start并迅速按板子上的reset,旁边MAC Adress窗口会出现mac地址就刷上固件了,耐心等待完成即可。
  
使用ESploer可以轻松写入,修改和删除板上的lua程序,如果板上之前刷固件后更改过程序,最好先通过菜单的ESP-formatESP格式化一下,重新刷入需要的固件修改程序。如果感觉写入lua文件时经常出问题也可以格式化后重新来过。

都设置完成后,就要进行物联网——乐联网配置了,进入乐联网,注册或登录帐号后进入用户中心,新建设备,设备号要记住,以后配置要用。选择颗粒物即可,公开数据,在地图上标定大致位置,保存就可以。

之后进入我的账户,点开设置个人信息,看到自己的userkey记下来备用,这相当于你设备的身份证。

网站设置好后就可以开机测试了,microUSB供电(电流至少大于1A,推荐2A),oled会显示一个ssid和密码用手机搜到并连接,打开192.168.4.1进入设置

分别输入连接WIFI的ssid,密码,设备号和userkey之后点保存,即可,设备自动重启并连接wifi上传数据,oled也会显示数据内容。


下面分别是我的甲醛和颗粒物的图,从图上看颗粒物开窗后会增加,而甲醛在关窗后慢慢上升,甲醛的两个高峰是柜子和抽屉,虽然买了7年了,却还在慢慢释放甲醛……



如果有新风系统或空气净化器还可以通过乐联反控在达到环境污染阈值时自动开启。

如对此内容感兴趣可加入乐联网讨论群一起研究,群号59162154
最后感谢群成员对我的技术问题的指导!


附上,乐联网8266+甲醛+OLED+SI7021的run.lua程序文件

[pre lang="lua" line="1"]require("LeweiHttpClient")
local HCHO = nil
local crc = nil
local Hum = nil
local Temp = nil     
local sensorId
if(_G["sensorId"] ~= nil) then sensorId = _G["sensorId"]
else sensorId = "dust"
end
local disp
function init_OLED(sda,scl) --Set up the u8glib lib
     sla = 0x3c
     i2c.setup(0, sda, scl, i2c.SLOW)
     disp = u8g.ssd1306_128x64_i2c(sla)
     disp:setFont(u8g.font_6x10)
     disp:setFontRefHeightExtendedText()
     disp:setDefaultForegroundColor()
     disp:setFontPosTop()
end
init_OLED(5,6) --Run setting up




LeweiHttpClient.init("01","your_api_key_here")

tmr.alarm(0, 30000, 1, function()
          if(HCHO ~=nil) then
if(Temp~=nil) then LeweiHttpClient.appendSensorValue("T1",Temp)  end
               if(Hum~=nil) then LeweiHttpClient.appendSensorValue("H1",Hum) end

          --LeweiHttpClient.appendSensorValue("HCHO",HCHO)
            LeweiHttpClient.sendSensorValue("HCHO",HCHO)
            HCHO = nil
          end
end)
tmr.alarm(1, 5000, 1, function()
     --read HCHO commd.
     uart.write(0,0x42,0x4d,0x01,0x00,0x00,0x00,0x90)  
end)

uart.setup( 0, 9600, 8, 0, 1, 0 )
uart.on("data", 0,
     function(data)
     if((string.len(data)==10) and (string.byte(data,1)==0x42) and (string.byte(data,2)==0x4d))  then
          local ccrc = chkcrc(data,8)
          --print(ccrc)        
          if ( tonumber(string.byte(data,10)) + tonumber(string.byte(data,9))*256 )==ccrc then         
               HCHO = (string.byte(data,7)*256+string.byte(data,8))/100

local si7021 = require("si7021")

          SDA_PIN = 5 -- sda pin, GPIO12
          SCL_PIN = 6 -- scl pin, GPIO14

          si7021.init(SDA_PIN, SCL_PIN)
          si7021.read(OSS)
          Hum = si7021.getHumidity()
          Temp = si7021.getTemperature()
          --print(Hum)
          --print(Temp)
          -- release module
          si7021 = nil
          _G["si7021"]=nil
           disp:firstPage()
           repeat
               disp:drawStr(10,20,"HCHO:"..HCHO.." mg/m3")
               disp:drawStr(10,40,"Temp:"..Temp.."'C")
               disp:drawStr(10,50,"Humi:"..Hum.."%")         
           until disp:nextPage() == false  
end              
     end

end, 0)

function chkcrc(buf,len)
    crc=0
    for i=1 , len do   
       crc=string.byte(buf,i)+crc
    end
     return (crc)
end
[/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-4-7 22:54:48 | 显示全部楼层
求绿色底板购买链接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-10 13:35:42 | 显示全部楼层
shytian 发表于 2016-4-7 22:54
求绿色底板购买链接

进群说一下,符合条件可以送
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 22:12 , Processed in 0.050525 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表