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