一
設(shè)備端的開發(fā)是一個非常簡單的工作。零妖今天就簡單講解一下物聯(lián)網(wǎng)彈幕器這個設(shè)備的源代碼,給大家提供一個裸機上云的思路。連載文章更新到這里要告一段落,因為真的沒啥要講的了。
二
首先要說的是使用技小新的MQTT單片機編程小工具生成一個C語言的頭文件,這個在之前的文章里已經(jīng)說過了。你的單片機要干的事情就是通過串口把這些16進制的數(shù)據(jù)發(fā)送給CH9121模塊,然后CH9121模塊會自動把這些數(shù)據(jù)打包一下以TCP的形式發(fā)送給服務(wù)器。
三
單片機的串口資源真的非常好用。STM32F103C8T6這個型號的單片機有三個可以獨立使用的串口資源,物聯(lián)網(wǎng)彈幕器真正用的其實是兩個,一個是串口1和電腦的串口連接,調(diào)試代碼時候輸出數(shù)據(jù)用的,一個是串口3用來和CH9121通信用的。在代碼上你可以讓串口1和串口3連接在一起,這樣就可以在電腦上發(fā)送數(shù)據(jù)給CH9121了,實現(xiàn)的方法請看代碼。
在單片機的內(nèi)部程序里,也是可以控制串口3發(fā)送任何數(shù)據(jù)的,所以就能發(fā)送小工具生成的數(shù)組到CH9121了。代碼如下。
四
從云端下發(fā)給設(shè)備的信息可能每次都不一樣,比如說彈幕信息,每個人發(fā)送的都不一樣那么單片機接收的數(shù)據(jù)長度就不一樣,這需要你使用循環(huán)隊列的方法來接收數(shù)據(jù)。首先你要預(yù)測一下云端一次性有可能下發(fā)數(shù)據(jù)的最大字節(jié)數(shù),然后隊列緩沖區(qū)的大小要是它的兩倍以上。這樣的處理可以非常有效的防止數(shù)據(jù)接收丟失的問題。
五
為了示范物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)上報流程,物聯(lián)網(wǎng)彈幕器上面安裝了一個溫度傳感器。這個溫度傳感器輸出的是一個電壓信號,這個電壓的大小是和溫度成正比例關(guān)系的。單片機能夠通過一種叫ADC的方法來獲取這個電壓數(shù)值,然后就可以計算溫度了。
六
在開始做規(guī)劃的時候,我從來沒有認為顯示一個漢字會是整個項目中最大的絆腳石。從網(wǎng)頁上下發(fā)的彈幕信息是一個字符串,這個字符串是UTF8編碼的,英文字母一切正常,但是涉及到漢字就一定會亂碼,因為單片機這邊按照往年經(jīng)驗直接做了GBK編碼的處理。
經(jīng)過零妖老哥的不斷摸索,終于發(fā)現(xiàn)了一個曲折的救國之路,就是先把UTF8編碼轉(zhuǎn)換為Unicode編碼,然后再把它轉(zhuǎn)化為能夠顯示再OLED上面的點陣信息,存到外部存儲器里面,需要的時候就讀取一下并顯示出來。相關(guān)代碼如下:
七
好了,零妖老哥的物聯(lián)網(wǎng)全棧教程分享到這里就結(jié)束了。感謝各位兄弟的支持和鼓勵讓我有動力連載完畢(堅持做一件事情真的好難)。尤其感謝阿里巴巴IOT事業(yè)部的同學(xué)提供技術(shù)上的幫助。
有很多的想法和具體的細節(jié)是沒辦法在一個文章里寫清楚的,為了能幫助更多的朋友快速上云,零妖把這個教程拍成了一個系列的視頻教程,同時提供了物聯(lián)網(wǎng)彈幕器的相關(guān)硬件(前面已經(jīng)給了你開源地址,你完全可以自己做硬件哦)給想節(jié)約時間的工程師評估物聯(lián)網(wǎng)項目使用。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2927文章
45909瀏覽量
388260
發(fā)布評論請先 登錄
物聯(lián)網(wǎng)工程師為什么要學(xué)Linux?
全棧開發(fā)進階指南:LuatOS-log庫從入門到實戰(zhàn)!

從云端到終端:RAKsmart服務(wù)器構(gòu)筑AI云平臺智慧城市全棧解決方案
有人物聯(lián)網(wǎng):工業(yè)物聯(lián)網(wǎng)解決方案專家??
從邊緣計算 到云端計算

工業(yè)物聯(lián)網(wǎng)平臺全解析:從數(shù)據(jù)采集到設(shè)備維護
蜂窩物聯(lián)網(wǎng)怎么選
宇樹科技在物聯(lián)網(wǎng)方面
曙光云開啟全棧智能時代
物聯(lián)網(wǎng)學(xué)習路線來啦!
特斯拉FSD,從全棧自研到智能駕駛的未來

物聯(lián)網(wǎng)設(shè)備的標準與規(guī)范
從邊緣設(shè)備到云端平臺,合宙DTU&RTU打造無縫物聯(lián)網(wǎng)解決方案

什么是物聯(lián)網(wǎng)技術(shù)?
Modbus物聯(lián)網(wǎng)網(wǎng)關(guān)是什么

評論