摘要:尋思著實(shí)現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里開空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽顆粒溫濕度煙霧繼電器源碼
背景
前陣子樹莓派由于沒外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實(shí)現(xiàn)個自動化控制玩玩。自從“穹頂之下”的信息被普及,不僅要出門帶口罩,還要家里開空氣凈化器。于是照著知乎也DIY了一個。但作為一個程序員,不搗鼓一點(diǎn)硬件軟件怎么可以,于是花了兩三天搗鼓了lua,順便配了個web端的語音播報,軟硬件組合達(dá)到了期望的效果。(順便吐槽一下tinyOS的組件式編程,文檔也少得可憐)
實(shí)現(xiàn)思路硬件:
MQ煙霧/可燃?xì)怏w傳感器
dth溫濕度傳感器
空氣顆粒物(pm1.0,pm2.5,pm10)傳感器
繼電器*4(用來控制 取暖器,加濕器,凈化器,煙霧報警裝置)
軟件:
萬能的web(html js jq)
php(負(fù)責(zé)爬天氣預(yù)報和空氣質(zhì)量,以及和nodeMCU通訊)
坑用socket拼接http去獲取天氣,結(jié)果寫完發(fā)現(xiàn)它的socket接受發(fā)送最大1440字節(jié),本來想直接寫進(jìn)MCU做個lua server。可惜了,于是控制規(guī)則干脆寫到前端,php做大量的數(shù)據(jù)獲取支持。
用的空氣顆粒物傳感器接TX口,init.lua加載前會根據(jù)D3 D4 TX 來判斷是否進(jìn)入燒寫模式,之前接繼電器總是上電亂跳,最終把data out 的2口放到D3 D4,解決了這個問題。
效果圖 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)聽 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81563.html
摘要:尋思著實(shí)現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里開空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽顆粒溫濕度煙霧繼電器源碼 背景 前陣子樹莓派由于沒外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實(shí)現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里...
摘要:對比操作前后的來定位內(nèi)存泄露的根因所在。手機(jī)管家內(nèi)存泄露每日監(jiān)控方案目前手機(jī)管家的內(nèi)存泄露每日監(jiān)控會自動運(yùn)行并輸出是否存在疑似泄露的報告郵件,不論泄露對象的大小。 騰訊Bugly特約作者: 姚潮生 最原始的內(nèi)存泄露測試 重復(fù)多次操作關(guān)鍵的可疑的路徑,從內(nèi)存監(jiān)控工具中觀察內(nèi)存曲線,是否存在不斷上升的趨勢且不會在程序返回時明顯回落。這種方式可以發(fā)現(xiàn)最基本,也是最明顯的內(nèi)存泄露問題,對用戶價...
摘要:對比操作前后的來定位內(nèi)存泄露的根因所在。手機(jī)管家內(nèi)存泄露每日監(jiān)控方案目前手機(jī)管家的內(nèi)存泄露每日監(jiān)控會自動運(yùn)行并輸出是否存在疑似泄露的報告郵件,不論泄露對象的大小。 騰訊Bugly特約作者: 姚潮生 最原始的內(nèi)存泄露測試 重復(fù)多次操作關(guān)鍵的可疑的路徑,從內(nèi)存監(jiān)控工具中觀察內(nèi)存曲線,是否存在不斷上升的趨勢且不會在程序返回時明顯回落。這種方式可以發(fā)現(xiàn)最基本,也是最明顯的內(nèi)存泄露問題,對用戶價...
摘要:雖然說數(shù)據(jù)包是手機(jī)之間傳輸,但是我們?nèi)匀恍枰揽炕緜鬏斝帕睿\(yùn)營商的錢還是要給的與人工智能小西原來技術(shù)包含了這么多黑科技呀那這些黑科技有什么應(yīng)用呢,它跟人工智能又有什么關(guān)系呢小迪這可就多了。 showImg(https://segmentfault.com/img/remote/1460000019373664); 又是一個周末,小西與小迪坐在沙發(fā)上看新聞。 小西:小迪小迪,新聞里總...
摘要:供需對接提供中小微企業(yè)供需發(fā)布平臺,降低中小微企業(yè)投入成本資源庫建設(shè)質(zhì)量基礎(chǔ)設(shè)施相關(guān)的機(jī)構(gòu)人才設(shè)備政策法規(guī)業(yè)務(wù)知識庫,為企業(yè)提供一站式查詢服務(wù)。 質(zhì)量基礎(chǔ)設(shè)施NQI一站式線上公共服務(wù)平臺建設(shè)方案質(zhì)量基礎(chǔ)設(shè)施NQI一站式線上公共服務(wù)平臺,本著基礎(chǔ)業(yè)務(wù)在線辦結(jié),要素資源高效協(xié)同,特色服務(wù)培育品牌的平臺產(chǎn)品思維,確立...
閱讀 1629·2023-04-25 18:19
閱讀 2078·2021-10-26 09:48
閱讀 1079·2021-10-09 09:44
閱讀 1730·2021-09-09 11:35
閱讀 3027·2019-08-30 15:54
閱讀 2020·2019-08-30 11:26
閱讀 2284·2019-08-29 17:06
閱讀 883·2019-08-29 16:38