本項(xiàng)目通過STM32的C8t6獲取DHT11的溫濕度數(shù)據(jù),以及空氣質(zhì)量傳感器MQ135,通過一塊ESP8266模塊連接wifi,把數(shù)據(jù)上傳到機(jī)智云平臺(tái),可通過手機(jī)APP查看。
1、模塊準(zhǔn)備
一塊STM32F103C8T6一塊IIC的OLED模塊一個(gè)DHT11一個(gè)MQ135空氣質(zhì)量模塊一塊ATK-8266wifi模塊一個(gè)ST-link下載模塊杜邦線若干
2、程序準(zhǔn)備
首先,先讓C8T6能夠在OLED上正常顯示溫度、濕度、以及空氣污染氣體傳感器。在這里我主要說一下MQ135的計(jì)算,至于DHT11如何顯示溫度濕度。關(guān)于MQ135:MQ-135氣體傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(Sn02)。當(dāng)傳感器所處環(huán)境中存在污染氣體時(shí),傳感器的電導(dǎo)率隨空氣中污染氣體濃度的增加而增大。使用簡單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對(duì)應(yīng)的輸出信號(hào)。MQ-135氣體傳感器對(duì)氨氣,硫化物,苯系蒸氣的靈敏度高,對(duì)煙霧和其他有害氣體的檢測也很理想。這種傳感器可檢測多種有害氣體,是一款適合多種應(yīng)用的低成本傳感器。特點(diǎn):1.在較寬的濃度范圍內(nèi)對(duì)有害氣體有良好的靈敏度2.對(duì)氨氣,硫化物,苯系等氣氛靈敏度較高3.長壽命,低成本4.簡單的驅(qū)動(dòng)電路
因?yàn)槲疫@里要讓MQ135顯示實(shí)時(shí)的空氣質(zhì)量所以我選擇了模擬量輸出,并使用了STM32的AD轉(zhuǎn)換。C文件的函數(shù)較多,請(qǐng)閱讀原文獲?。┲骱瘮?shù)部分以及計(jì)算部分
3、機(jī)智云移植
如果可以正常顯示溫度和濕度以及MQ135的數(shù)值了,那下面就開始準(zhǔn)備機(jī)智云的移植了。首先先到機(jī)智云官網(wǎng)注冊(cè)一個(gè)賬號(hào),然后登陸首先點(diǎn)擊創(chuàng)建個(gè)人項(xiàng)目
選擇方案,我這里是STM32+WIFi的方案,就選擇第一個(gè)然后添加數(shù)據(jù)點(diǎn)溫度:Temp,類型為數(shù)值,控制方式只讀,濕度:Humi,類型為數(shù)值,控制方式只讀空氣質(zhì)量:MQ135 ,類型數(shù)值,只讀,范圍這些就很好理解了開關(guān)類可選擇布爾值,比如控制LED
然后保存方案點(diǎn)開基本信息,獲取你的密鑰然后點(diǎn)擊MUC方案,點(diǎn)擊修改,把你的密鑰粘貼,然后生成代碼包點(diǎn)擊下載
我用的是標(biāo)準(zhǔn)庫,機(jī)智云生成的是Hal庫,要修改一下,這里我直接給出Usart3和定時(shí)器的代碼
把機(jī)智云生成的Pack解壓,復(fù)制里面的Gizwits和Ultis到C8t6的目錄下然后添加剛剛的Timer usart3.usart3 和Timer的代碼過多,請(qǐng)閱讀原文獲取。然后把這些文件添加到C8t6工程里面,include路徑等
然后開始打開gizwits_product.c“
接下來處理Main函數(shù)部分由于我這邊以及處理好了,我就給你們看就好了
然后是通過按鍵連接wifi部分
接下里是獲取網(wǎng)絡(luò)時(shí)間的部分
主函數(shù)部分代碼(注:某些你們沒有的頭文件記得注釋掉)
把代碼編譯通過后就下載到開發(fā)板里面然后按下按鍵,因?yàn)槲业氖莄8t6的系統(tǒng)版,有一個(gè)按鍵,你們沒有的可以用一個(gè)杜邦線接3.3來代替一下。
按下按鍵進(jìn)入AIRLINK,然后機(jī)智云點(diǎn)擊我的設(shè)備界面的右上角的+,點(diǎn)擊一鍵配置然后手機(jī)連接一個(gè)2.4g的wifi,然后等待配置成功
4、效果
開發(fā)板運(yùn)行效果
還可以在官網(wǎng)查看數(shù)據(jù)變化曲線