2019 中國.NET 開發者峰會正式啟動 目 錄 1. 概述... 2 2. 樹莓派硬體配置... 2 3. 軟體信息... 3 4. Raspbian下載及安裝... 3 5. 準備運行程式包... 4 6. 安裝SSH.. 4 7. 安裝.netcore. 4 8. 安裝mariadb. 5 ...
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 物聯網雲操作系統2.0發佈,集成設備容器、視圖建模、機器學習》
《.NET Core開發的iNeuOS物聯網平臺部署在Ubuntu操作系統,無縫跨平臺》
物聯網&集成技術 QQ群:54256083
物聯網&集成合作 QQ群:727664080