国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Amos / 2938人閱讀

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

目錄

前言

正文

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

二、開發(fā)實戰(zhàn)

1. 連接設(shè)備

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

3. 開始編碼

4. 編譯打包

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

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

7. 程序升級改造

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

?結(jié)尾


前言

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

正文

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

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

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

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

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

好了,通過上面的介紹,我們基本上對 IoT Pi 開發(fā)板有了大致的認識。接下來就讓我們基于它開發(fā)一個 LED 燈智能控制程序吧。

二、開發(fā)實戰(zhàn)

1. 連接設(shè)備

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. 開始編碼

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

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è)備錯誤:${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);		}	});});

啟動?Socket IO 通道,用來完成前后端的消息通訊,代碼如下:

/* Socket IO */var io = require("socket.io")(	app, {		path: "/iotpi",		serveClient: false,		pingInterval: 10000,		pingTimeout: 5000,		cookie: false	});// 客戶端連接或者斷開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: "無效設(shè)備!" });		}	});	sockio.on("iotpi-list", function(result) {		var devs = [];		iotpis.forEach(function(iotpi) {			devs.push(iotpi);		});		result(devs);	});});

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

// 移除設(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. 編譯打包

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

npm install

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

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

npm run build

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

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

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

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

安裝過程中可能會遇到如下兩個問題,這里記錄一下。

問題1. Install EdgerOS App : Error: edger connect illegalConnect

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

問題2. Install EdgerOS App : Error: edger connect wrongPassword?

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

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

Install app success

具體如下圖所示:

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

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

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

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

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

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

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

7. 程序升級改造

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

全部 LED 燈都打開的情況:

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

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

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

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

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

結(jié)尾

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

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

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/123451.html

相關(guān)文章

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

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

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

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

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

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

    spacewander 評論0 收藏0
  • 2021愛智行者—我的第一個愛智小游戲之切方塊

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

    Barry_Ng 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<