摘要:尋思著實(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
摘要:尋思著實(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)帶口罩,還要家里...
摘要:對(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à)...
摘要:對(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à)...
摘要:雖然說(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ā)上看新聞。 小西:小迪小迪,新聞里總...
摘要:供需對(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)品思維,確立...
閱讀 1644·2023-04-25 18:19
閱讀 2090·2021-10-26 09:48
閱讀 1094·2021-10-09 09:44
閱讀 1745·2021-09-09 11:35
閱讀 3037·2019-08-30 15:54
閱讀 2033·2019-08-30 11:26
閱讀 2297·2019-08-29 17:06
閱讀 893·2019-08-29 16:38