目 錄html
1. 概述... 2前端
2. 樹莓派硬件配置... 2mysql
3. 軟件信息... 3linux
4. Raspbian下載及安裝... 3nginx
5. 準備運行程序包... 4sql
6. 安裝SSH.. 4數據庫
7. 安裝.netcore. 4json
8. 安裝mariadb. 5ubuntu
9. 安裝nginx. 7vim
10. 配置iNeuOS數據庫和文件... 8
11. 運行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,詳細配置參數,以下圖:
操做系統:raspbian September 2019
Kernel版本: 4.19
.NET Core版本:2.2.402
數據庫:MariaDB (與mysql基本兼容)
下載地址: https://www.raspberrypi.org/downloads/raspbian/,以下圖:
使用Win32DiskImager工具把鏡像文件寫到sd卡上,過程再也不詳細介紹。
把iNeuOS後臺接口服務和前端應用系統複製到Ubuntu操做系統下的work工做目錄,程序包中主要目錄,以下圖:
把Api和UI複製到Ubuntu操做系統的work目錄下,以下圖:
執行命令:
sudo vim /etc/ssh/sshd_config
增長以下配置信息:
PasswordAuthentication yes PermitRootLogin yes
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
(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,啓動,命令以下:
developer:~$ sudo apt-get install nginx
developer:~$ sudo service ngnix start
而後訪問一下本機的IP地址(127.0.0.1),若是出現以下頁面,說明已經安裝成功。
(1) 建立數據庫,我是在window下使用Navicat執行sql腳本。以下圖:
(2) 修改後臺接口服務(API)訪問數據庫的配置文件,考慮到安全性的問題,進行了加密,以下圖:
(3) 修改前端應用系統(UI)訪問後臺接口服務(API)的配置文件UI\lib\buffos\js\目錄下request.js和uiconfig.js,以下圖:
(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