基於對公司老項目的兼容性需求,以及后期新項目開發的便捷需要,我選擇了樹莓派作為小型工控機。一方面,樹莓派性能比一般的路由器方案(mt76xx系列)要強一些,已經是一台成熟的微型計算機了。另一方面,樹莓派能夠兼容各種系統及開發工具,加上教程也相對多,開發體驗較為舒適。
本教程主要涉及樹莓派的系統安裝,以及.net core,asp.net core開發環境的搭建。
本教程基於樹莓派3b ,推薦安裝官方系統 Raspbian
一.官方系統安裝方法
參考https://blog.csdn.net/weixin_39449466/article/details/80686835
主要步驟
1.官網下系統
2.用SD card formatter工具格卡
3.用win32diskimager往sd卡中寫入鏡像(下載系統解壓后的img文件)
4.插卡上電over
二.安裝.netcore2.1
參考https://blog.csdn.net/qq_16005627/article/details/87909864
主要步驟
1.下載
curl -sSL -o dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/ccc989da-fa6c-4b1b-a8a8-ed43ab4bba38/77e9e57aa69a2a84f1a45e861cc4eed5/dotnet-runtime-2.1.17-linux-arm.tar.gz
2.提取內容
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
3.設置可執行dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
4.測試
測試:執行dotnet --help 或者 dotnet --info.成功
5.安裝asp.net core2.1
1.下載asp.net core
wget https://download.visualstudio.microsoft.com/download/pr/1a3c3183-ea43-4060-9205-09151a6ab9d7/6f15f282afcd70fffd8b9e12de4cd8b9/aspnetcore-runtime-2.1.17-linux-arm.tar.gz
2.解壓到之前的.netcore路徑
sudo mkdir -p /opt/dotnet && sudo tar zxf aspnetcore-runtime-2.1.17-linux-arm.tar.gz -C /opt/dotnet
3.查看安裝信息
使用dotnet --info查看已安裝運行時,如果存在asp.net core runtime ,即表示安裝成功。
三.安裝mariadb數據庫(其實就是mysql).
參考https://www.cnblogs.com/Cookies-Tang/p/10871556.html
主要步驟
1.下載Mariadb
sudo apt-get install mariadb-server
2.連接到MariaDB
sudo mysql
3.配置默認root密碼:password
use mysql; UPDATE user SET password=password('password') WHERE user='root'; UPDATE user SET plugin='mysql_native_password' WHERE user = 'root'; flush privileges; exit
4.重啟服務
sudo systemctl restart mariadb
5.使用新密碼驗證登錄
mysql -u root -p
6.開啟遠程連接
修改配置文件
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
打開后
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1(這一行用#注釋,監聽所有ip)
同樣使用上一步中的mysql命令連接到MariaDB,輸入如下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; --格式如下 GRANT ALL PRIVILEGES ON *.* TO 'user'@'remoteip' IDENTIFIED BY 'password' WITH GRANT OPTION; --更新權限 FLUSH PRIVILEGES;
7.注意:
在導出導入數據庫文件的時候總是出問題,建議使用MySQL-Front軟件執行操作
四,運行采集程序
1.用winSCP把程序拖到某個目錄
2.終端執行 sudo dotnet 路徑+程序.dll 執行完事兒~
五.開啟熱點(ap)
參考https://www.cnblogs.com/visionsl/p/8042315.html
參考https://blog.csdn.net/zanran8/article/details/80698347
1.開啟熱點
#將代碼copy到本地,安裝
sudo git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install
#安裝依賴的庫
sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq
#開啟熱點
sudo create_ap --no-virt wlan0 eth0(輸入熱點名和密碼)
或者
sudo create_ap --no-virt wlan0 eth0 ssidname password(一句話完事兒)
2.設置開機自啟動
sudo nano /usr/lib/systemd/system/create_ap.service
然后在最下方加上下面語句:
ExecStart=/usr/bin/create_ap -n wlan0 熱點名 密碼
保存退出,然后執行以下語句:
systemctl daemon-reload
systemctl enable create_ap.service
systemctl start create_ap.service
reboot
3.修改開機自啟動的默認熱點名
打開/home/pi/create_ap文件夾中的create_ap.conf文件,默認熱點名是MyAccessPoint,密碼12345678
4.注意:
1.當前WiFi模塊要設定為開啟狀態。
2.WiFi應該未連接任何無線網絡。
六.開啟web服務
參考 https://cloud.tencent.com/developer/article/1517120
參考https://blog.csdn.net/zhuyu19911016520/article/details/61210489
參考https://blog.csdn.net/qq_16005627/article/details/87909864
一定要安裝好.netcore和asp.net core環境
方案一:
使用dotnet直接運行(目前項目不能包含https,如果編譯https項目,會出錯,這個我再研究下)
與應用程序一樣,dotnet完事兒。原理是.netcore中集成了kestrel Web服務,但要注意代碼中要設置監聽所有端口。
加上 .UseUrls("http://*:5000");
方案二:
使用nginx
1.安裝nginx
sudo apt-get install nginx
2.啟動服務
sudo /etc/init.d/nginx start
關閉服務
sudo /etc/init.d/nginx stop
然后瀏覽器輸入本機ip看能否出現nginx網頁,出現即成功。
3.修改配置(注意編碼為utf8,空格不能用tab)
sudo nano /etc/nginx/sites-available/default
使用以下內容:
server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
4.檢查&重載
檢查配置文件
sudo nginx -t
重新加載
sudo /etc/init.d/nginx reload