成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

2021愛(ài)智先行者—記錄一次 Spirit 1 和 IoT Pi 開(kāi)發(fā)板的實(shí)戰(zhàn)經(jīng)歷

Amos / 2955人閱讀

摘要:安裝完成后,在的左下角選擇創(chuàng)建項(xiàng)目,具體操作如下圖所示項(xiàng)目創(chuàng)建頁(yè)面會(huì)出現(xiàn)很多模板庫(kù),如果只有兩個(gè)或者沒(méi)有模版,可以嘗試點(diǎn)擊左下角的刷新模板信息按鈕。

目錄

前言

正文

一、IoT Pi 開(kāi)發(fā)板介紹

二、開(kāi)發(fā)實(shí)戰(zhàn)

1. 連接設(shè)備

2. 搭建開(kāi)發(fā)環(huán)境

3. 開(kāi)始編碼

4. 編譯打包

5. 安裝應(yīng)用程序

6. LED燈開(kāi)關(guān)控制演示

7. 程序升級(jí)改造

8. 如何支持設(shè)備熱插拔??

?結(jié)尾


前言

IoT Pi 是一塊小巧的物聯(lián)網(wǎng)開(kāi)發(fā)板,開(kāi)發(fā)者們可以把它入門級(jí)開(kāi)發(fā)板來(lái)使用,通過(guò)它熟悉和掌握 MS-RTOS 的開(kāi)發(fā)實(shí)戰(zhàn)技能。今天就來(lái)介紹一下如何使用 Spirit 1 配合?IoT Pi 開(kāi)發(fā)板開(kāi)發(fā)一個(gè) LED 燈控制系統(tǒng)。

正文

一、IoT Pi 開(kāi)發(fā)板介紹

IoT Pi 開(kāi)發(fā)板內(nèi)置了主頻高達(dá)100MHz的 Cortex-M4 處理器,包含512KB的 FLASH 儲(chǔ)存空間和256KB的RAM空間,通過(guò)燒錄系統(tǒng),能夠保證流暢的運(yùn)行 MS-RTOS 和多個(gè)應(yīng)用程序。另外,IoT Pi 開(kāi)發(fā)板還搭載了 EEPROM 和 SD 卡插座,可用于儲(chǔ)存數(shù)據(jù)和與 PC 機(jī)交互文件。 同時(shí),還支持 WiFi 功能。IoT Pi 還板載了三個(gè)按鍵和三個(gè) LED 及一個(gè) USB 轉(zhuǎn)串口,使用USB線供電的同時(shí)也能與 PC 機(jī)進(jìn)行串口通信。講了這么多,讓我們來(lái)看看 IoT Pi 開(kāi)發(fā)板長(zhǎng)什么樣吧,如下圖所示:

再來(lái)看一下官方給出?IoT Pi 產(chǎn)品的詳細(xì)參數(shù):

主芯片STM32F412RET6,512KB FLASH,256KB RAM
EEPROMFT24C02
SD 卡板載 TF 卡座
下載接口SWD 下載調(diào)試接口,2.54mm插針
USB 通信5V供電,和 USB 串口通信
按鍵3個(gè)用戶自定義按鍵,1個(gè)復(fù)位功能按鍵
LED 燈3個(gè)用戶自定義 LED,1個(gè)電源指示燈
IO 接口兩排2.54mm,20PIN 插針接口,其中24個(gè)通用 IO,
4個(gè)5V,4個(gè)3.3V,6個(gè)GND

如果想更加直觀的了解上述硬件模塊,請(qǐng)參看下圖:

好了,通過(guò)上面的介紹,我們基本上對(duì) IoT Pi 開(kāi)發(fā)板有了大致的認(rèn)識(shí)。接下來(lái)就讓我們基于它開(kāi)發(fā)一個(gè) LED 燈智能控制程序吧。

二、開(kāi)發(fā)實(shí)戰(zhàn)

1. 連接設(shè)備

首先,給 IoT Pi 開(kāi)發(fā)板安裝四個(gè)塑料銅柱,方便固定和散熱。接下來(lái),使用電源線?連接?IoT Pi 開(kāi)發(fā)板和 PC 電腦。

然后,電腦連接 Spirit 1 的 wifi,同時(shí),連續(xù)按?IoT Pi 開(kāi)發(fā)板的 key1 鍵三次,啟動(dòng)設(shè)備發(fā)現(xiàn)模式,此時(shí),開(kāi)發(fā)板的三個(gè) LED 燈會(huì)不斷閃爍,表明已經(jīng)進(jìn)入發(fā)現(xiàn)模式。之后,我們?cè)跒g覽器中輸入地址:https://192.168.128.1/#/desktop,進(jìn)入?Spirit 1 界面,打開(kāi)“設(shè)備”,進(jìn)入應(yīng)用內(nèi)選擇添加設(shè)備,具體操作如下圖所示:

當(dāng)然,我們也可以在手機(jī)端操作添加設(shè)備,在下圖中點(diǎn)擊“添加設(shè)備”按鈕。

點(diǎn)擊“添加設(shè)備”按鈕后進(jìn)入掃描設(shè)備頁(yè)面,具體情況如下圖所示:

在掃描設(shè)備頁(yè)面打開(kāi)“高級(jí)設(shè)置”,啟動(dòng)“SmartConfig”開(kāi)關(guān),輸入SSID和密碼后,點(diǎn)擊“完成”按鈕,比如下圖所示:

在掃描設(shè)備頁(yè)面提示我們發(fā)現(xiàn)了 IoT?Pi 開(kāi)發(fā)板,我們選擇“添加”,操作如下圖所示:??

在添加?IoT?Pi 開(kāi)發(fā)板的過(guò)程中需要輸入設(shè)備密碼,這是系統(tǒng)燒錄時(shí)寫死的,目前官方默認(rèn)開(kāi)發(fā)板的密碼是1234567890,如果輸入錯(cuò)誤會(huì)給出“設(shè)備拒絕連接,請(qǐng)重試”的提示,具體如下圖所示:

完成添加后,我們?cè)谠O(shè)備列表中就可以看到?IoT?Pi 開(kāi)發(fā)板的設(shè)備了,如下圖所示:

完成設(shè)備添加后,我們開(kāi)始進(jìn)行開(kāi)發(fā)環(huán)境的搭建工作。?

2. 搭建開(kāi)發(fā)環(huán)境

在 PC 端搭建愛(ài)智系統(tǒng)的開(kāi)發(fā)環(huán)境還是非常方便的,可以直接使用 VSCode 開(kāi)發(fā)工具,再安裝一個(gè) EdgerOS 開(kāi)發(fā)插件。插件的安裝也非常方便,在 VSCode 中擴(kuò)展程序中搜索 edger 關(guān)鍵字,會(huì)出現(xiàn)下圖所示的插件工具,點(diǎn)擊“安裝”即可。

安裝完成后,在 VSCode 的左下角選擇“創(chuàng)建項(xiàng)目”,具體操作如下圖所示:?

項(xiàng)目創(chuàng)建頁(yè)面會(huì)出現(xiàn)很多模板庫(kù),如果只有兩個(gè)或者沒(méi)有模版,可以嘗試點(diǎn)擊左下角的“刷新模板信息”按鈕。如果還是沒(méi)有,可以切換倉(cāng)庫(kù)源為 Gitee,因?yàn)殚_(kāi)發(fā)插件默認(rèn)的倉(cāng)庫(kù)源在?Github 上,國(guó)內(nèi)很多用戶可能會(huì)因?yàn)榫W(wǎng)絡(luò)問(wèn)題導(dǎo)致無(wú)法訪問(wèn),具體操作可以參考下圖:

獲取全部模板庫(kù)之后,我們可以從中看到一個(gè)名為“IoT Pi”的模板庫(kù),因?yàn)槲覀冊(cè)O(shè)備就是 IoT Pi 開(kāi)發(fā)板,因此選擇這個(gè)模板庫(kù)初始化項(xiàng)目工程,選擇“立即應(yīng)用”,具體操作請(qǐng)看下圖:

點(diǎn)擊“立即應(yīng)用”后,我們進(jìn)入了項(xiàng)目信息頁(yè)面,可以參考下圖完成項(xiàng)目配置,然后選擇“立即創(chuàng)建”。? ?

工程創(chuàng)建后,我們可以看到一個(gè)前后端分離的工程目錄,其中,iotpi目錄是后端邏輯部分,web目錄中是前端頁(yè)面部分。?

3. 開(kāi)始編碼

引入依賴庫(kù)和定義部分變量,代碼如下:

const Web = require("webapp");var Device = require("device");/* IoT Pi device */var iotpi = undefined;/* IoT Pi devices */var iotpis = new Map();const app = Web.createApp();app.use(Web.static("./public", { index: ["index.html", "index.htm"] }));

選擇設(shè)備服務(wù)接口,代碼如下:

app.post("/api/select/:devid", function(req, res) {	iotpi = new Device();	iotpi.request(req.params.devid, function(error) {		if (error) {			res.send({				result: false,				code: 50004,				message: `設(shè)備錯(cuò)誤:${error.message}`			});			iotpi = undefined;		} else {			res.send({				result: true,				code: 20000,				message: "success"			});			iotpi.on("lost", iotpiRemove);			iotpi.on("message", function(msg) {				io.emit("iotpi-message", msg);			});			iotpi.send({ query: true }, function(error) {				if (error) {					console.error("Query IoT Pi error:", error.message);				} else {					console.log("Query IoT Pi Ok!");				}			}, 3);		}	});});

啟動(dòng)?Socket IO 通道,用來(lái)完成前后端的消息通訊,代碼如下:

/* Socket IO */var io = require("socket.io")(	app, {		path: "/iotpi",		serveClient: false,		pingInterval: 10000,		pingTimeout: 5000,		cookie: false	});// 客戶端連接或者斷開(kāi)io.on("connection", function(sockio) {	sockio.on("iotpi-control", function(msg) {		if (iotpi && iotpi.devid) {			console.log("Client send message:", JSON.stringify(msg));			iotpi.send(msg, function(error) {				if (error) {					console.error("Send message to IoT Pi error:", error.message);				}			}, 3);		} else {			sockio.emit("iotpi-error", { code: 50002, error: "無(wú)效設(shè)備!" });		}	});	sockio.on("iotpi-list", function(result) {		var devs = [];		iotpis.forEach(function(iotpi) {			devs.push(iotpi);		});		result(devs);	});});

監(jiān)控設(shè)備的連接狀態(tài),可能設(shè)備會(huì)有熱插拔的操作,代碼如下:

// 移除設(shè)備Device.on("lost", function(devid) {	if (iotpis.has(devid)) {		iotpis.delete(devid);		if (iotpi && iotpi.devid === devid) {			iotpiRemove();		}		io.emit("iotpi-lost", devid);	}});// 添加設(shè)備Device.on("join", function(devid, info) {	if (info.report.name === "IoT Pi") {		var devobj = {			devid: devid, alias: info.alias, report: info.report		};		iotpis.set(devid, devobj);		io.emit("iotpi-join", devobj);	}});function iotpiRemove() {	if (iotpi) {		iotpi.release();		iotpi.removeAllListeners();	}}

4. 編譯打包

其實(shí),前后端目錄可以理解成兩個(gè)多帶帶的 Node.js 工程,在 iotpi 和 web 目錄中分別執(zhí)行如下命令:

npm install

執(zhí)行成功后,兩個(gè)目錄中各自生成了自己的 node_modules 目錄。

進(jìn)入 web 目錄,執(zhí)行如下命令進(jìn)行編譯打包:

npm run build

命令執(zhí)行成功后,會(huì)生成對(duì)應(yīng)的 dist 目錄。最后,需要將其中的文件拷貝到 iotpi 的 public 目錄中。

5. 安裝應(yīng)用程序

在安裝應(yīng)用程序之前,我們可以參考下圖添加新的 IoT Pi 設(shè)備選項(xiàng)。

添加設(shè)備之后,我們選擇“安裝 EdgerOS APP”,具體操作如下圖所示:

安裝過(guò)程中可能會(huì)遇到如下兩個(gè)問(wèn)題,這里記錄一下。

問(wèn)題1. Install EdgerOS App : Error: edger connect illegalConnect

這個(gè)錯(cuò)誤不用擔(dān)心,其實(shí)是你沒(méi)有連接 Spirit 1 的 wifi,切換 wifi 網(wǎng)絡(luò)就好了。

問(wèn)題2. Install EdgerOS App : Error: edger connect wrongPassword?

這個(gè)問(wèn)題其實(shí)是設(shè)備開(kāi)發(fā)密碼寫錯(cuò)了,需要重新填寫一遍,具體可以參考下圖獲取。

正確安裝應(yīng)用程序后,會(huì)給出如下提示:?

Install app success

具體如下圖所示:

6. LED燈開(kāi)關(guān)控制演示

程序安裝成功后,我們回到瀏覽器頁(yè)面(https://192.168.128.1/#/desktop)中, 會(huì)發(fā)現(xiàn)主頁(yè)中新增了一個(gè) IoT Pi Trying 的應(yīng)用圖標(biāo),具體如下圖所示:

點(diǎn)擊圖標(biāo)進(jìn)入應(yīng)用程序中,在設(shè)備列表中選擇 IoT Pi 設(shè)備,此時(shí),可能會(huì)出現(xiàn)設(shè)備權(quán)限問(wèn)題,如下圖所示:

那么,我們可以在系統(tǒng)設(shè)置中進(jìn)行授權(quán),如下圖所示:

完成授權(quán)后,就可以進(jìn)入設(shè)備操作界面了,在界面中控制三個(gè) LED 燈的打開(kāi)和關(guān)閉,同時(shí),手動(dòng)操作開(kāi)發(fā)板的開(kāi)關(guān),操作頁(yè)面也會(huì)隨著變化,具體如下所示:

為了更加形象的展示實(shí)現(xiàn)效果,我們來(lái)看一段視頻:

IoT Pi 開(kāi)發(fā)板 LED 燈控制演示

7. 程序升級(jí)改造

其實(shí),我們還可以進(jìn)一步修改程序,在頁(yè)面左上角添加一個(gè)總的開(kāi)關(guān)按鈕,同時(shí)控制開(kāi)發(fā)板上三個(gè) LED 燈的打開(kāi)和關(guān)閉。編碼實(shí)現(xiàn)也非常簡(jiǎn)單,開(kāi)關(guān)時(shí)分別發(fā)送三條控制就可以了,下面看一下實(shí)現(xiàn)效果:

全部 LED 燈都打開(kāi)的情況:

全部 LED 燈都關(guān)閉的情況:?

8. 如何支持設(shè)備熱插拔??

在開(kāi)發(fā)過(guò)程中發(fā)現(xiàn),系統(tǒng)是支持設(shè)備熱插拔的,我非常好奇其中的實(shí)現(xiàn)機(jī)制,因此自己特別留意了一下。最終發(fā)現(xiàn),系統(tǒng)檢測(cè)設(shè)備的連接和斷開(kāi)狀態(tài)是通過(guò)心跳包機(jī)制來(lái)實(shí)現(xiàn)的,這符合我們常規(guī)的做法。通過(guò)每15秒一次的 ping 請(qǐng)求來(lái)判斷設(shè)備是否在線,具體如下圖所示:?

設(shè)備離線時(shí)的彈窗提醒:

設(shè)備上線時(shí)的彈窗提醒:

結(jié)尾

好了,本次利用?Spirit 1 配合 IoT Pi 開(kāi)發(fā)板開(kāi)發(fā)一個(gè) LED 燈控制系統(tǒng)的實(shí)戰(zhàn)經(jīng)歷就介紹完了,是不是非常精彩?自己非常喜歡在 EdgerOS 系統(tǒng)上開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用的感覺(jué),架構(gòu)設(shè)計(jì)清晰合理,技術(shù)棧簡(jiǎn)單易學(xué),設(shè)備性能也非常給力,總之是一次非常愉快的開(kāi)發(fā)體驗(yàn)。如果你感興趣的話,也來(lái)一期參與吧!一起為國(guó)產(chǎn)操作系統(tǒng)加油助力!

【本文正在參與"2021愛(ài)智先行者-征文大賽"活動(dòng)】,活動(dòng)鏈接:https://bbs.csdn.net/topics/602601454?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/123451.html

相關(guān)文章

  • 2021愛(ài)智行者—設(shè)備到來(lái)之前的先導(dǎo)篇

    摘要:一個(gè)物聯(lián)網(wǎng)操作系統(tǒng)是否能夠流行,其與其他設(shè)備的友好連接性會(huì)是一個(gè)非常重要的衡量指標(biāo)。內(nèi)置了眾多安全存儲(chǔ)與安全通訊技術(shù),能夠鑒別可信硬件,識(shí)別并拒絕未經(jīng)授權(quán)的設(shè)備或用戶訪問(wèn)系統(tǒng)應(yīng)用和數(shù)據(jù),把安全措施不足的普通物聯(lián)網(wǎng)設(shè)備置于強(qiáng)大的保護(hù)之下。 ...

    Warren 評(píng)論0 收藏0
  • 2021愛(ài)智行者—(2)零基礎(chǔ)APP開(kāi)發(fā)實(shí)例

    摘要:有鑒于此,本文以未安裝工具軟件的計(jì)算機(jī)未激活的愛(ài)智設(shè)備為例,實(shí)戰(zhàn)解說(shuō)零基礎(chǔ)小白的愛(ài)智開(kāi)發(fā)過(guò)程。愛(ài)智設(shè)備斷開(kāi)互聯(lián)網(wǎng)也可以運(yùn)行,但本文中的開(kāi)發(fā)部署等功能無(wú)法操作。 【本...

    paney129 評(píng)論0 收藏0
  • 2021愛(ài)智行者——EdgerOS Spirit 1深度使用體驗(yàn)與EdgerOS應(yīng)用開(kāi)發(fā)實(shí)踐

    摘要:是下一代面向物聯(lián)網(wǎng)和邊緣計(jì)算的智能操作系統(tǒng),可廣泛應(yīng)用于面向個(gè)人家庭和行業(yè)的物聯(lián)網(wǎng)產(chǎn)品和解決方案,有效降低開(kāi)發(fā)門檻縮短開(kāi)發(fā)周期。 一、前言 ① 智能邊緣計(jì)算操作系統(tǒng)...

    spacewander 評(píng)論0 收藏0
  • 2021愛(ài)智行者—我的第一個(gè)愛(ài)智小游戲之切方塊

    摘要:證書安裝步驟我也是跟著官方給的教程一步一步來(lái),可以參考安裝成功如下所示三應(yīng)用開(kāi)發(fā)到這里軟硬件方面的部署已經(jīng)基本完成,現(xiàn)在讓我來(lái)帶大家用愛(ài)智系統(tǒng)做一個(gè)小游戲。 本文正...

    Barry_Ng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<