2019 中國.NET 開發者峰會正式啟動
目 錄
1. 概述... 2
2. 樹莓派硬體配置... 2
3. 軟體資訊... 3
4. Raspbian下載及安裝... 3
5. 準備運行程式包... 4
6. 安裝SSH.. 4
7. 安裝.netcore. 4
8. 安裝mariadb. 5
9. 安裝nginx. 7
10. 配置iNeuOS資料庫和檔案... 8
11. 運行iNeuOS. 9
1. 概述
備注:為了文章的完整性,在《.NET Core開發的iNeuOS物聯網平臺部署在Ubuntu作業系統》中的內容適用于樹莓派部署,也將在這篇文章中出現,
iNeuOS成功部署在樹莓派上,意味著iNeuOS打通了從嵌入式到云端整體鏈路,為中小企業在物聯網建設方面提供了整體解決方案,降低產品研發、專案執行方面的成本,iNeuOS部署在樹莓派主要意義在于:
(1) 可以形成企業網關產品,應用到系統建設中,
(2) 設備容器可以遠程設備資料采集進行遠程運維,并且支持設備驅動在線更新,
(3) Web組態建模可以遠程配置和開發監測頁面,現場螢屏就地顯示,
(4) 與云端系統無縫對接,快速進行私有云部署,
(5) 支持介面形式的二次開發,降低人員開發周期和成本,
(6) 降低企業開發和部署網關的成本,核心板+外殼+人工等費用,可以控制在幾百元左右,
某企業對集團級的物聯網平臺進行升級,符合對遠程部署的終端硬體網關可以進行遠程配置和運維的總體要求,
但是,也會有質疑,認為C/C++更適合嵌入式或網關級的開發,占用資源少、運行效率高,當然這是最優的方案,iNeuOS在樹莓派的部署,在考慮開發成本、專案執行周期成本、人力成本等諸多因素,從整體解決方案方面為企業提供了更多的選擇路徑,
在實際部署和使用程序,.NET Core在raspbian下的執行效率,沒有想象中的差,另外執行效率只是我們選擇方案考慮的因素之一,
2. 樹莓派硬體配置
樹莓派3代b+開發板Raspberry Pi 3b,詳細配置引數,如下圖:

3. 軟體資訊
作業系統:raspbian September 2019
Kernel版本: 4.19
.NET Core版本:2.2.402
資料庫:MariaDB (與mysql基本兼容)
4. Raspbian下載及安裝
下載地址: https://www.raspberrypi.org/downloads/raspbian/,如下圖:

使用Win32DiskImager工具把鏡像檔案寫到sd卡上,程序不再詳細介紹,
5. 準備運行程式包
把iNeuOS后臺介面服務和前端應用系統復制到Ubuntu作業系統下的work作業目錄,程式包中主要目錄,如下圖:

把Api和UI復制到Ubuntu作業系統的work目錄下,如下圖:

6. 安裝SSH
執行命令:
sudo vim /etc/ssh/sshd_config
增加如下配置資訊:
PasswordAuthentication yes
PermitRootLogin yes
7. 安裝.netcore
sudo apt-get install curl libunwind8 gettext
curl -sSL -o dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/e0050c1d-ddc6-4ac9-ba3b-07d85eec5890/614dae615fe229f6b6f43658262a8f08/dotnet-sdk-2.2.402-linux-arm.tar.gz (不是固定下載鏈接地址,可以先下載好,上傳到raspbian系統,再執行下面的命令)
sudo mkdir -p /opt/dotnet
sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
8. 安裝mariadb
(1)實體安裝
ubuntu上安裝mysql比較簡單,只需要幾條命令就可以完成,如下:
developer:~$ sudo apt-get install mariadb-server
安裝程序中會提示設定密碼,注意設定一樣,安裝完成之后可以使用如下命令來檢查是否安裝成功:
developer:~$ sudo netstat -tap | grep mysql
通過上述命令檢查之后,如果看到有mysql 的socket處于 listen 狀態則表示安裝成功,
登陸mysql資料庫可以通過如下命令:
mysql -u root -p
-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,上面命令輸入之后會提示輸入密碼,此時輸入密碼就可以登錄到mysql,
(2)區分大小寫配置
在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf檔案,在[mysqld]的下添加 lower_case_table_names=1 就行了,備注:為0時大小寫敏感,為1時大小寫不敏感,默認為0,如下圖:

(3)外網訪問權限配置
本地mysql5.7資料庫,當使用127.0.0.1和localhost時可以連接,但當使用本地ip時192.168.*.則連接拒絕,當然外網通過192.168..*同樣無法連接,
解決方法如下:
1)登陸mysql,授權外網訪問權限
developer:~$ use mysql;
developer:~$ update user set host = ‘%’ where user = ‘root’;
developer:~$ flush privileges;
2)修改my.cnf配置
在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf檔案,把bind-address=127.0.0.1修改bind-address=0.0.0.0
3) 跳過權限表,(與在Ubuntu下部署不一樣)
在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf檔案(如果是mariadb資料庫,則是:/etc/mysql/mariadb.conf.d/50-server.cnf),加下配置: skip-grant-tables

(4)執行 sudo mysql_secure_installation 設定root密碼及權限,如下圖:

其他設定,請根據實際情況進行選擇,
(5)服務命令
啟動方式:
使用 service 啟動:service mysql start
使用 mysqld 腳本啟動:/etc/inint.d/mysql start
停止方式:
使用 service 啟動:service mysql stop
使用 mysqld 腳本啟動:/etc/inint.d/mysql stop
重啟方式:
使用 service 啟動:service mysql restart
使用 mysqld 腳本啟動:/etc/inint.d/mysql restart
9. 安裝nginx
安裝反向代理nginx,啟動,命令如下:
developer:~$ sudo apt-get install nginx
developer:~$ sudo service ngnix start
然后訪問一下本機的IP地址(127.0.0.1),如果出現如下頁面,說明已經安裝成功,

10. 配置iNeuOS資料庫和檔案
(1) 創建資料庫,我是在window下使用Navicat執行sql腳本,如下圖:

(2) 修改后臺介面服務(API)訪問資料庫的組態檔,考慮到安全性的問題,進行了加密,如下圖:

(3) 修改前端應用系統(UI)訪問后臺介面服務(API)的組態檔UI\lib\buffos\js\目錄下request.js和uiconfig.js,如下圖:

11. 運行iNeuOS
(1) 運行后臺介面服務(API),修改appsettings.json組態檔,可以偵聽本地所有IP的埠,增加Kestrel配置節,如下圖:

執行運行介面命令,如下圖:

(2) 配置nginx服務,訪問前端應用系統,如下:
安裝好之后進入到以下目錄,打開default檔案,如下命令:
developer:~$ cd /etc/nginx/sites-available
developer:~$ sudo gedit default
修改為以下的內容,偵聽81埠,并指訪問的根目錄(UI)和瀏覽的默認頁(index.html),如下圖:

(3) 訪問URL(http://127.0.0.1:81或http://192.168.31.102:81)地址,效果如下圖:
登陸頁面,如下圖:

WEB組態建模開發,如下圖:

視圖應用顯示,如下圖:

參見前三篇文章:
《iNeuOS云作業系統,.NET Core全系打造》
《iNeuOS 物聯網云作業系統2.0發布,集成設備容器、視圖建模、機器學習》
《.NET Core開發的iNeuOS物聯網平臺部署在Ubuntu作業系統,無縫跨平臺》
物聯網&集成技術 QQ群:54256083
物聯網&集成合作 QQ群:727664080
網站:http://www.ineuos.net
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/103573.html
標籤:.NET Core
