目 錄
- 概述... 2
- 樹莓派硬體配置... 2
- 軟體資訊... 3
- Raspbian下載下傳及安裝... 3
- 準備運作程式包... 4
- 安裝SSH.. 4
- 安裝.netcore. 4
- 安裝mariadb. 5
- 安裝nginx. 7
- 配置iNeuOS資料庫和檔案... 8
- 運作iNeuOS. 9
- 概述
備注:為了文章的完整性,在《.NET Core開發的iNeuOS物聯網平台部署在Ubuntu作業系統》中的内容适用于樹莓派部署,也将在這篇文章中出現。 iNeuOS成功部署在樹莓派上,意味着iNeuOS打通了從嵌入式到雲端整體鍊路,為中小企業在物聯網建設方面提供了整體解決方案,降低産品研發、項目執行方面的成本。iNeuOS部署在樹莓派主要意義在于: (1) 可以形成企業網關産品,應用到系統建設中。 (2) 裝置容器可以遠端裝置資料采集進行遠端運維,并且支援裝置驅動線上更新。 (3) Web組态模組化可以遠端配置和開發監測頁面,現場螢幕就地顯示。 (4) 與雲端系統無縫對接,快速進行私有雲部署。 (5) 支援接口形式的二次開發,降低人員開發周期和成本。 (6) 降低企業開發和部署網關的成本,核心闆+外殼+人工等費用,可以控制在幾百元左右。 某企業對集團級的物聯網平台進行更新,符合對遠端部署的終端硬體網關可以進行遠端配置和運維的總體要求。 但是,也會有質疑,認為C/C++更适合嵌入式或網關級的開發,占用資源少、運作效率高,當然這是最優的方案。iNeuOS在樹莓派的部署,在考慮開發成本、項目執行周期成本、人力成本等諸多因素,從整體解決方案方面為企業提供了更多的選擇路徑。 在實際部署和使用過程,.NET Core在raspbian下的執行效率,沒有想象中的差,另外執行效率隻是我們選擇方案考慮的因素之一。
- 樹莓派硬體配置
樹莓派3代b+開發闆Raspberry Pi 3b,詳細配置參數,如下圖:
.NET Core開發的iNeuOS物聯網平台部署樹黴派(raspbian),從網關到雲端整體解決方案。 - 軟體資訊
作業系統:raspbian September 2019 Kernel版本: 4.19 .NET Core版本:2.2.402 資料庫:MariaDB (與mysql基本相容)
- Raspbian下載下傳及安裝
下載下傳位址: https://www.raspberrypi.org/downloads/raspbian/,如下圖:
.NET Core開發的iNeuOS物聯網平台部署樹黴派(raspbian),從網關到雲端整體解決方案。
使用Win32DiskImager工具把鏡像檔案寫到sd卡上,過程不再詳細介紹。
- 準備運作程式包
把iNeuOS背景接口服務和前端應用系統複制到Ubuntu作業系統下的work工作目錄,程式包中主要目錄,如下圖:
.NET Core開發的iNeuOS物聯網平台部署樹黴派(raspbian),從網關到雲端整體解決方案。
把Api和UI複制到Ubuntu作業系統的work目錄下,如下圖:
- 安裝SSH
執行指令:
sudo vim /etc/ssh/sshd_config
增加如下配置資訊:
PasswordAuthentication yes
PermitRootLogin yes
-
安裝.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
- 安裝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
- 安裝nginx
安裝反向代理nginx,啟動,指令如下:
developer:~$ sudo apt-get install nginx
developer:~$ sudo service ngnix start
然後通路一下本機的IP位址(127.0.0.1),如果出現如下頁面,說明已經安裝成功。
- 配置iNeuOS資料庫和檔案
(1) 建立資料庫,我是在window下使用Navicat執行sql腳本。如下圖:
(2) 修改背景接口服務(API)通路資料庫的配置檔案,考慮到安全性的問題,進行了加密,如下圖:
(3) 修改前端應用系統(UI)通路背景接口服務(API)的配置檔案UIlibbuffosjs目錄下request.js和uiconfig.js,如下圖:
- 運作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