现在基于c#的开发框架.net core已经开源并支持跨平台运行,.net core,已经非常成熟,很优秀,推荐大家使用,于是我也尝试使用树莓派进行部署并以后用于深入进行物联网的一些操作,当前实例用的是.net core2.2,当然现在推出了.net core3.1操作也相似的,然后分享经验,对c#的开发者带来惊喜,也共同为c#的发展作出贡献!
从淘宝买了一个树莓派3b+(两百多块钱),买回来进行折腾了一个小时,装拆了两次,完美组装之后变成了这样子,注意TF卡插的位置
第一步,首先安装系统(拿出买树莓派时附带的tf卡,通过以下操作把系统装进去)
1、从官网下载系统https://www.raspberrypi.org/downloads/raspbian/
选Raspbian Stretch with desktop and recommended software下载回来,并解压后面第3步使用
2、下载tf卡格式化工具 :SD card formatter
下载地址:https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html,打开网址后按 Accept开始下载
插入tf卡到电脑,格式化tf卡
3、下载系统写入工具 win32diskimager
下载地址:https://jaist.dl.sourceforge.net/project/win32diskimager/Archive/win32diskimager-1.0.0-install.exe
插入tf卡到电脑,打开后选择第1步下载回来的解压后的系统镜像文件,设备选tf卡,按"写入“
4、配置无线网络(如果有条件插网线,就不需要配置了)
然后设置上网,在tf卡也就是当前的boot盘新建一个wpa_supplicant.conf
的文件,写入上网配置命令:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="iPhone 手机热点wifi名称"
psk="104104104 wifi密码"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="普通路由器wifi名称"
psk="104104104 wifi密码"
priority=2
}
如果是使用手机热点,在network里面再增加一行 key_mgmt=WPA-PSK
这里注意一定要在boot目录下创建这个conf,否则系统装好后将无法启动wifi连接。
5、开启SSH连接功能,需要在tf卡的根目录下增加一个文件名为“ssh”的空文件,记住是没有缀名的文件名就只有ssh三个字母
恭喜你,到这里系统已经配置完成,把tf卡插入到树莓派线路板上面那个小插槽,接上电源即可!!(配图)
二、SSL连接树莓派
准备工作:把tf卡插到树莓派的插槽上面、没有配置无线网络就要插网线、插上电源,打开电源,机子就自动启动了。
回到自己的window电脑上面
1、下载一个内网电脑IP查看工具Advanced_IP_Scanner.rar
查看到一个名字叫Raspberry Pi的计算机名称,就是树莓派的,记下他的IP地址
2、下载一个ssh操作工具(破解版)Xshell 6和文件上传工具Xftp 6, 这两个是配套使用的
打开Xsheel6工具,输入树莓派的IP,连接,连接成功后输入默认的用户名pi,密码raspberry
恭喜你,到这里你已经成功连接树莓派,下面开始部署程序了。
三、搭建.net core运行环境
1)下载安装SDK或者Runtime:官方地址:https://www.microsoft.com/net/download/linux
这里使用最简单的方法下载安装,直接复制下载连接地址,按顺序执行以下三条命令:
下载运行时runtime
curl -sSL -o dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/5ca39d79-c65c-4c03-bba1-e904c7255c44/4fb100d62b0a3fff5fbf5dd24f761d71/aspnetcore-runtime-2.2.2-linux-arm.tar.gz
提取内容
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
设置可以执行DotNet:
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
2)测试:dotnet --help 或者 dotnet --info.成功,则就如下图
三、部署.net core控制台程序
1、在自己的电脑上使用VS写一个NetCore2.2的控制台程序,我假设我就写个Helloworld。
发布项目
使用xshell6+xftp6上传程序
回到在xshell中,进入目录输入:cd consolepublish,运行程序: dotnet ConsoleApp1.dll
输出hello world,成功!
四、部署.net core网站程序
1、发布你的项目
使用xshell6+xftp6上传程序
回到xshell6,f进入目录输入: cd webPublish 运行程序:dotnet test2.2.dll
访问地址为:http://localhost:5000,尝访问如下:
已经出现 html代码,证明是可以访问的,部署成功了!但默认只能在树梅派中访问,如果web要在别的内网电脑通过IP访问是访问不了的。需要进行以下设置
局域名或者外网如何通过IP访问树莓派的WEB程序?
Net Core 默认创建的项目部署完成以后,只能在本机内访问,外部通过IP是打不开的,可以通过配置Nginx实现。也可以通过修改Program.cs
public static void Main(string[] args) {
CreateWebHostBuilder(args).Build().Run();
}
默认只能在树莓派本地通过localhost:5000访问
改为
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://*:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup
.Build();
host.Run();
}
说明:UseUrls(http://*:5000) 即可实现通过IP访问程序。如 http://192.168.1.101:5000
觉得好的同学,记得点个赞!