1. 程式人生 > WINDOWS開發 >使用C#編寫STM32對接物聯網平臺IoTSharp傳送遙測資料

使用C#編寫STM32對接物聯網平臺IoTSharp傳送遙測資料

在之前的文章中,我們闡述瞭如何用C#在STM32上寫第一個Hello world , 有朋友抱怨國內介紹文章, 都是一個 Hello world , 然後再也沒有音訊,寫到這裡我想提一下我的初心, 那就是告訴所有人C#無所不能, C#可以寫微控制器, 也可以寫Web應用, 也可以寫移動應用, 也可以寫桌面應用, 又有人提到nanoFramework 的效能問題, 這點我認為跟MicroPython 等解釋型STM32應用一致的, 跟C寫的 程式碼我認為是無法匹敵的!工作中長期使用C來寫應用, 這點是公認也是非常有感觸的。那麼今天我再介紹一下如何使用nanoFramework 在STM32下面對接物聯網平臺IoTSharp !

一、選用開發板

這次我們選擇了開發板ST NUCLEO-F746ZG

技術分享圖片

技術分享圖片

NUCLEO-F746ZG 是ST公司推出的一款針對STM32F7系列設計的Cortex-M7 Nucleo-144開發板,支援mbed,相容Arduino、還帶有ST Zio和 ST Morpho 擴充套件介面,可連線微控制器的所有周邊外設。

開發板基於STM32F746ZGT6設計,開發板還集成了ST-LINK/V2-1模擬下載器(但僅對外提供SWD介面),免除您另外採購模擬器或下載器的麻煩。並且具備Arduino介面,可接入 Arduino 巨大生態系統的各種 Shield 擴充套件板,讓您能夠輕鬆快速增加特殊功能。

之所以選擇NUCLEO-F746ZG是因為 他具有網口, 用C#在STM32上寫第一個Hello world 文章中選擇的開發板不具有網路功能。

二、建立應用:

如果看過用C#在STM32上寫第一個Hello world 這篇文章, 我們就不必再闡述如何建立專案了, 具體demo 我已經提交到了https://github.com/IoTSharp/IoTSharp.Edge.nanoFramework , 專案中需要引用到nanoFramework.M2Mqtt , 我們通過他來連線 IoTSharp的 Mqtt Broker,首先, 啟動IoTSharp 專案 https://github.com/IoTSharp/IoTSharp , 啟動專案https://github.com/IoTSharp/Cicada , 這裡如果有所有問題, 可以到相關專案裡面提問, 這裡不再闡述, 我們首先在Cicada 中建立一個裝置

技術分享圖片

, 複製貼上 Token ,

在專案oTSharp.Edge.nanoFramework的 Program.cs 中 修改

private const string _token = "581e918118a34c9faf2b9ede8245be33";//修改合理為TokenprivateconststringBrokerAddress="192.168.0.23";//啟動IoTSharp的IP地址

三、連線並部署專案至ST NUCLEO-F746ZG

由於ST NUCLEO-F746ZG跟之前文章不同 , 一個Micro USB線 即能跟ST-LINK連線, 又支援串列埠, 還能識別出來儲存, 因此一根線搞定一切, 也不需要弄烏七八糟的杜邦線之類的, 因此簡單很多。按照用C#在STM32上寫第一個Hello world 的方法, 我們依然需要下載他的https://bintray.com/nfbot/nanoframework-images-community-targets/ST_NUCLEO144_F746ZG/_latestVersion 解壓後, 燒寫, 然後VS中Device Explorer 中就可以看到裝置,如下圖:

技術分享圖片

點選VS中的啟動, 來啟動除錯專案

啟動後, 你可以看到我們的應用已經啟動了, 如下圖所示:

技術分享圖片

,通過IoTSharp的客戶端可以看到上傳的遙測資料和客戶端屬性資料:

技術分享圖片

關於rpc和屬性更新, 我們會在基於此專案基礎上進行進一步完善。

如果有任何相關問題, 大家可以在相關專案提Issuse 或者加入QQ群:63631741,共同學習, 共同進步。