成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

EMB-nodeMCU自動(dòng)化控制實(shí)現(xiàn)空氣質(zhì)量管家

junbaor / 1345人閱讀

摘要:尋思著實(shí)現(xiàn)個(gè)自動(dòng)化控制玩玩。自從穹頂之下的信息被普及,不僅要出門(mén)帶口罩,還要家里開(kāi)空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽(tīng)顆粒溫濕度煙霧繼電器源碼

背景

前陣子樹(shù)莓派由于沒(méi)外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實(shí)現(xiàn)個(gè)自動(dòng)化控制玩玩。自從“穹頂之下”的信息被普及,不僅要出門(mén)帶口罩,還要家里開(kāi)空氣凈化器。于是照著知乎也DIY了一個(gè)。但作為一個(gè)程序員,不搗鼓一點(diǎn)硬件軟件怎么可以,于是花了兩三天搗鼓了lua,順便配了個(gè)web端的語(yǔ)音播報(bào),軟硬件組合達(dá)到了期望的效果。(順便吐槽一下tinyOS的組件式編程,文檔也少得可憐)

實(shí)現(xiàn)思路

硬件:

MQ煙霧/可燃?xì)怏w傳感器

dth溫濕度傳感器

空氣顆粒物(pm1.0,pm2.5,pm10)傳感器

繼電器*4(用來(lái)控制 取暖器,加濕器,凈化器,煙霧報(bào)警裝置)

軟件:

萬(wàn)能的web(html js jq)

php(負(fù)責(zé)爬天氣預(yù)報(bào)和空氣質(zhì)量,以及和nodeMCU通訊)

用socket拼接http去獲取天氣,結(jié)果寫(xiě)完發(fā)現(xiàn)它的socket接受發(fā)送最大1440字節(jié),本來(lái)想直接寫(xiě)進(jìn)MCU做個(gè)lua server??上Я?,于是控制規(guī)則干脆寫(xiě)到前端,php做大量的數(shù)據(jù)獲取支持。

用的空氣顆粒物傳感器接TX口,init.lua加載前會(huì)根據(jù)D3 D4 TX 來(lái)判斷是否進(jìn)入燒寫(xiě)模式,之前接繼電器總是上電亂跳,最終把data out 的2口放到D3 D4,解決了這個(gè)問(wèn)題。

效果圖

nodeMCU代碼(init.lua)
--家庭空氣質(zhì)量管家
--sensor為傳感器data口
--power為繼電器控制口
--D0    CH1             0
--D1    CH2             0
--D2    CH4             0
--D3    MQ-DATA  1
--D4    DHT-DATA 0
--D5    CH3             0
--D6    DHT-VCC    1
--RX    PM-TX
Air={
    pm010=0,pm025=0,pm100=0,
    temp=0,humi=0,smoke=1,
    gpio_pm=0,gpio_temp=0,gpio_humi=0,gpio_smoke=0,
    humi_power=0, pm_power=1,
    smoke_power=2,   mq_sensor=3,
    dht_sensor=4,    temp_power=5
}
--引腳初始化
for pi=0,6,1 do
    gpio.mode(pi, gpio.OUTPUT,(pi==6)and gpio.PULLUP or gpio.FLOAT)
    gpio.write(pi,(pi==3 or pi==6)and gpio.HIGH or gpio.LOW)
end
--網(wǎng)絡(luò)
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","PASSWORD")
--串口監(jiān)聽(tīng)
uart.setup( 0, 9600, 8, 0, 1, 0 )
uart.on("data",
  function(data)
    if(string.len(data)==32 and string.byte(data)==66) then
        --顆粒
        Air.pm010=tonumber(string.byte(data,11))*256+tonumber(string.byte(data,12))
        Air.pm025=tonumber(string.byte(data,13))*256+tonumber(string.byte(data,14))
        Air.pm100=tonumber(string.byte(data,15))*256+tonumber(string.byte(data,16))
        --溫濕度
        _,Air.temp,Air.humi, _, _ =dht.read(Air.dht_sensor)
        --煙霧
        Air.smoke=gpio.read(Air.mq_sensor)
        --繼電器
        Air.gpio_pm,Air.gpio_temp,Air.gpio_humi,Air.gpio_smoke=gpio.read(Air.pm_power),gpio.read(Air.temp_power),gpio.read(Air.humi_power),gpio.read(Air.smoke_power)
    end
end, 0)
--http
srv=net.createServer(net.TCP)  
srv:listen(80,function(conn)  
    conn:on("receive", function(client,request)  
        local buf = "{"
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP")
        if(method == nil)then  
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP")
        end  
        local _GET = {}  
        if (vars ~= nil)then  
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do  
                _GET[k] = v  
            end  
        end  
        if(_GET.action == "read")then
            for key,value in pairs(Air) do
                buf=buf..key..":"..value..","
            end
        elseif(_GET.action == "write")then
              gpio.write(_GET.pin,_GET.level)
        elseif(_GET.action == "debug")then
              node.input(_GET.data)
        end  
        client:send(buf.."error:0}")
        client:close()
        collectgarbage()
    end)  
end)  
源碼

https://github.com/Seasonley/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81563.html

相關(guān)文章

  • EMB-nodeMCU動(dòng)化控制實(shí)現(xiàn)空氣質(zhì)量管家

    摘要:尋思著實(shí)現(xiàn)個(gè)自動(dòng)化控制玩玩。自從穹頂之下的信息被普及,不僅要出門(mén)帶口罩,還要家里開(kāi)空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽(tīng)顆粒溫濕度煙霧繼電器源碼 背景 前陣子樹(shù)莓派由于沒(méi)外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實(shí)現(xiàn)個(gè)自動(dòng)化控制玩玩。自從穹頂之下的信息被普及,不僅要出門(mén)帶口罩,還要家里...

    Terry_Tai 評(píng)論0 收藏0
  • 內(nèi)存泄露從入門(mén)到精通三部曲之排查方法篇

    摘要:對(duì)比操作前后的來(lái)定位內(nèi)存泄露的根因所在。手機(jī)管家內(nèi)存泄露每日監(jiān)控方案目前手機(jī)管家的內(nèi)存泄露每日監(jiān)控會(huì)自動(dòng)運(yùn)行并輸出是否存在疑似泄露的報(bào)告郵件,不論泄露對(duì)象的大小。 騰訊Bugly特約作者: 姚潮生 最原始的內(nèi)存泄露測(cè)試 重復(fù)多次操作關(guān)鍵的可疑的路徑,從內(nèi)存監(jiān)控工具中觀察內(nèi)存曲線,是否存在不斷上升的趨勢(shì)且不會(huì)在程序返回時(shí)明顯回落。這種方式可以發(fā)現(xiàn)最基本,也是最明顯的內(nèi)存泄露問(wèn)題,對(duì)用戶(hù)價(jià)...

    李世贊 評(píng)論0 收藏0
  • 內(nèi)存泄露從入門(mén)到精通三部曲之排查方法篇

    摘要:對(duì)比操作前后的來(lái)定位內(nèi)存泄露的根因所在。手機(jī)管家內(nèi)存泄露每日監(jiān)控方案目前手機(jī)管家的內(nèi)存泄露每日監(jiān)控會(huì)自動(dòng)運(yùn)行并輸出是否存在疑似泄露的報(bào)告郵件,不論泄露對(duì)象的大小。 騰訊Bugly特約作者: 姚潮生 最原始的內(nèi)存泄露測(cè)試 重復(fù)多次操作關(guān)鍵的可疑的路徑,從內(nèi)存監(jiān)控工具中觀察內(nèi)存曲線,是否存在不斷上升的趨勢(shì)且不會(huì)在程序返回時(shí)明顯回落。這種方式可以發(fā)現(xiàn)最基本,也是最明顯的內(nèi)存泄露問(wèn)題,對(duì)用戶(hù)價(jià)...

    sutaking 評(píng)論0 收藏0
  • 5G與人工智能有什么關(guān)系?

    摘要:雖然說(shuō)數(shù)據(jù)包是手機(jī)之間傳輸,但是我們?nèi)匀恍枰揽炕緜鬏斝帕?,運(yùn)營(yíng)商的錢(qián)還是要給的與人工智能小西原來(lái)技術(shù)包含了這么多黑科技呀那這些黑科技有什么應(yīng)用呢,它跟人工智能又有什么關(guān)系呢小迪這可就多了。 showImg(https://segmentfault.com/img/remote/1460000019373664); 又是一個(gè)周末,小西與小迪坐在沙發(fā)上看新聞。 小西:小迪小迪,新聞里總...

    jay_tian 評(píng)論0 收藏0
  • 質(zhì)量基礎(chǔ)設(shè)施NQI“一站式”線上公共服務(wù)平臺(tái)建設(shè)方案

    摘要:供需對(duì)接提供中小微企業(yè)供需發(fā)布平臺(tái),降低中小微企業(yè)投入成本資源庫(kù)建設(shè)質(zhì)量基礎(chǔ)設(shè)施相關(guān)的機(jī)構(gòu)人才設(shè)備政策法規(guī)業(yè)務(wù)知識(shí)庫(kù),為企業(yè)提供一站式查詢(xún)服務(wù)。 質(zhì)量基礎(chǔ)設(shè)施NQI一站式線上公共服務(wù)平臺(tái)建設(shè)方案質(zhì)量基礎(chǔ)設(shè)施NQI一站式線上公共服務(wù)平臺(tái),本著基礎(chǔ)業(yè)務(wù)在線辦結(jié),要素資源高效協(xié)同,特色服務(wù)培育品牌的平臺(tái)產(chǎn)品思維,確立...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<