前言

dotnet core 在3.0时代已经发展得很好. 尤其是在跨平台方面更已经是达到了很实用的阶段.

作为 dotnet 程序员, 应该对 Linux 有充分的了解, 也可以在业余时间玩玩硬件, 做个小创客

这次教学就是想让玩跨界的网友能在最短时间内上手.

本文配套视频地址是 https://www.bilibili.com/video/BV1Ap4y1y7Bh/

树莓派是什么?

如图:

树莓派它首先是一台电脑 , 它拥有Arm版的CPU, 和按G计算的内存 , 安装Linux (官方Raspbian) 后, 可以进入桌面打开网页看视频, 和做大部分Linux能做的事.

同时, 它也可称呼为嵌入式硬件, 它像单片机一样, 拥有针脚,   与我们平时买的台式机不一样的是 , 树莓派自带有40条针 .

对于不熟悉硬件的人来说, 这些针脚, 可以解释为这些用途 :

  1. 供电, 分为3.3v, 5v , 和地线 ,
  2. GPIO输出用途, 可以用代码去控制某个针脚的电压. 达到启动/关闭 LED/继电器 的作用.  甚至可以用继电器来控制220v家用电源的开关.  (简单来说就是代码控制开关)
  3. GPIO输入用途, 可以监听GPIO的电压, 最常用的是做成按钮, 监测按下的动作. 或者用作最简单的通信接收器的功能.
  4. 更复杂的电压输出功能与收集功能. 可以做成喇叭, 或者麦克风. (质量如何倒是没测试过)
  5. 数据传输功能, 使用UART/I2C/SPI/..等方式 与其他硬件连接与通信. 这些都是后话, 你现在只要记住, 硬件与硬件之间可以高速传递二进制数据就好了.
  6. 注意, 各种外设, 例如显示屏, 例如温度传感器, 等等, 本身也是硬件, 他们就是用这一套方式来传递二进制数据的.

OK, 这篇文章, 就是教学, 如何快速使用 DotNet Core 来控制 GPIO , 让一个 LED 灯进行自动的周期性闪烁.

关于树莓派的版本

现在最好的树莓派的版本是 4B, 2G内存版性价比最高. 价格是270左右包邮 , 建议码农要入手一台. 有空就拿出来玩玩.

这个4B+2G 版本, 使用TYPE-C供电. 有2个HDMI输出, 启动桌面后, 可以网页看优酷.   自带 网卡/WIFI/蓝牙 , 有4个USB接口.  接键盘鼠标, 移动硬盘都没问题.

但是这次教学,  不使用HDMI , 不连接键盘鼠标, 不接网线, 直接WIFI连.

需要的东西 :

树莓派一个 (不能是ZERO) ,  TF卡(树莓派本身没储存) , TF卡读卡器(用来写进系统)  , TYPE-C线(用外置电源供电, 电脑USB带不动) , 最好有LED灯, 3.3v的那种. 低电压的忘记接电阻会烧.

家庭WIFI , 电脑一台, 用来操作这一系列的事. (废话)

需要安装的软件:

VS2019, 用于编译程序.

PuTTY , WinSCP , Win32磁盘映像工具  (这些请自行下载, 注意现在到处都是不怀好意的下载站..)

下载和烧录镜像 :

树莓派可以装很多种系统. 但是最推荐的当然是官方镜像:

https://www.raspberrypi.org/downloads/raspbian/

选择 lite 版本 , 就没有桌面.  但是下载量很少.  需要桌面的按需下载.

lite 版本地址为 :

https://downloads.raspberrypi.org/raspbian_lite_latest

反正我觉得下载很卡:

在QQ点右下角的应用管理器, 选微云, 新建-离线下载-链接下去, 把链接贴上去后关闭, 然后刷新,

刷新 ,  这样在进去下载 , 就能获得不错的500KB/s下载速度.

解压后, 使用镜像软件写进 TF 卡内 :

写完后不要急拔出TF卡.  我们需要新建两个文件, 复制进 BOOT 分区 :

wpa_supplicant.conf 内容

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config= network={
ssid="WiFi名字"
psk="WiFi密码"
key_mgmt=WPA-PSK
priority=
}

这两个文件的用途如下 :

ssh  是为了开启 22端口, 否则没有键盘鼠标没有显示器, 就无法访问到这个树莓派了.

wpa_supplicant.conf 是为了设置WIFI, 不然你就接网线去吧.

插卡, 上电, 开机

没有开机键, 插上TYPE-C就自动开机. 红色灯是电源灯, 绿色灯是硬盘灯. 广义的硬盘.

等1分钟吧. 天知道你买的TF卡行不行.

接着我们测试一下, 它是不是启动好了? 是否连接Wifi了?

除了ping , 你还可以进入路由器管理界面, 看看路由器下面是否多了设备.

网络OK, 也要看看ssh是否开启,  启动 WinSCP , 尝试连接 :

树莓派默认用户名 pi , 默认密码 raspberry

到了这里, 树莓派已经成功启动了.  可以当它一台 Linux 主机来玩了.


开始玩 DotNet Core 的部分

Blazor Server Side 开源程序 BlazorLinuxAdmin

从 https://github.com/BlazorPlus/BlazorLinuxAdmin 下载程序 (有账号的顺便点个星星, 觉得教程有用的请帮我其他项目也点个星星 , 谢谢你. )

发布项目:

编辑配置:

发布, 成功

回到WinSCP 复制文件

首先创建一个 bla 目录, 即 /home/pi/bla

把 publish 文件夹里的东西全部复制过去.

你会看到, 没有任何一个dll , 而 BlazorLinuxAdmin 竟然是 99M 这么大 .

因为它已经包含了所有dll了, 还包含了dotnet的核心.  不需要安装框架SDK.

(如果上面发布选项, 选取剪裁未使用的程序集, 可以把大小压缩到50M)

设置程序的属性, 权限那里的 X 表示"运行" , 无脑打上.

程序已发布完毕.

运行程序

使用老牌子 PuTTY :

继续输入 pi 回车, 输入密码 raspberry 回车(不要以为键盘没按下, 只是没显示而已)

登录完毕后, 默认的目录是 ~/  , 就是 /home/pi/

我们需要进入刚才的目录 bla

cd bla

  

然后启动刚才的程序 :

sudo ./BlazorLinuxAdmin

  

看到这些信息, DotNet Core 的网站已经启动完毕.

访问网站 :

在电脑浏览器上, 输入 http://raspberrypi:6011/

继续输入 pi 和 raspberry

恭喜, 现在已经完成了教程.

关于GPIO版面

这个页面的 ON 和 OFF 是可以按的.  也可以用 CTRL+点击 , 进入 闪烁模式.

控制GPIO的关键代码为 :

更多的细节, 请参考视频  https://www.bilibili.com/video/BV1Ap4y1y7Bh/

这个教程完结了之后, 我们得到了一个结论 , DotNet Core的程序, 是不需要安装框架运行库SDK什么的,

直接COPY部署 , 真正的绿色软件. 

常见问题 :

ping raspberrypi , 连接 raspberrypi , 访问 http://raspberrypi:6011/ 都提示没有主机, 咋办?

这个可能是系统没能识别局部网的东西, 或者是树莓派没有成功向网络广播自己的名字.

这个时候, 可以进去路由器, 看看各设备的IP, 或者, 猜IP,..  如果猜来猜去都不行, 那么可能是设备没联网. 确认每一个步骤都没做错.

视频图文教学 - 用最快的速度把 DotNet Core Blazor 程序安装到 树莓派中 并且用网页控制 GPIO 闪灯的更多相关文章

  1. 【视频+图文】带你快速掌握带continue语句的双重for循环

    双重for循环掌握后,我们就一起来看看双重for循环的进阶内容一之带continue语句的双重for循环. 上期双重for循环[视频+图文]讲解传输门:点击这里可去小乔的哔哩哔哩观看for循环视频~ ...

  2. 【视频+图文】带你快速掌握Java中含break语句的双重for循环

    双重for循环掌握后,我们就一起来看看双重for循环的进阶内容一之带break语句的双重for循环. 双重for循环[视频+图文]讲解传输门:点击这里可去小乔的哔哩哔哩观看~ 带continue语句的 ...

  3. C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!!

    原文:C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!! 一般我们在开发Winodws Phone APP 的时候往 ...

  4. ZT CSDN 如何以最快的速度计算出一个二进制数中1的个数? [

    一道算法面试题:如何以最快的速度计算出一个二进制数中1的个数? [问题点数:10分,结帖人weicai_chen] 收藏 weicai_chen weicai_chen 等级: 结帖率:95.12% ...

  5. 【图文教学】如何轻松下载tiktok上的视频

    我是真诚的想和大家分享这个办法的!这个叫光影存图,图标就是这个绿色的箭头,我是苹果手机,安卓手机也可以用,就是它分免费版和会员版的,没有强制要你充会员,看一下广告就可以获取下载次数,我就是这么干的,只 ...

  6. CrackMe005-下篇 | 逆向破解分析 | 160个CrackMe(视频+图文)深度解析系列

    作者:逆向驿站微信公众号:逆向驿站知乎:逆向驿站 CrackMe005,上篇说了具体方法,下篇来发逆向分析过程,看看老夫是如何得到上篇的具体方法的! 准备 [环境和工具] win7/xp虚拟机环境 C ...

  7. 你的以太网速度足够快吗?四种更快的速度正在路上······

    以太网的未来将远远超越下一个最快速度:为无处不在的网络协议绘制路径的网络project师们正在寻找新版本号来服务于各种应用程序. 在上周六的以太网联盟(一个行业组织,用于促进IEEE以太网标准)会议上 ...

  8. Redis 中的过期元素是如何被处理的?视频+图文版给你答案——面试突击 002 期

    本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点. 涉及的知识点 过期删除策略有哪些? 这些过期策略有哪些优缺点 ...

  9. 视频+图文教程 | Java之安装JDK与环境配置

    演示所用软件JDK 8与Eclipse(Java开发工具)软件下载链接: 链接:https://pan.baidu.com/s/1Vg9ulrQH8WlGRAE89Y02UA提取码:swwl 视频介绍 ...

随机推荐

  1. asp.net core 3.1 引用的元包dll版本兼容性问题解决方案

    自从.netcore 3.1出来后,大家都想立马升级到最新版本.我也是如此,微软也对.netcore 3.1的官方组件不断升级,几乎每隔几天就会有部分元包可以升级.每次打开Nuget包管理器,“更新” ...

  2. Alterations of brain quantitative proteomics profiling revealed the molecular mechanisms of diosgenin against cerebral ischemia reperfusion effects(大脑的定量蛋白质组学揭示了薯蓣皂苷元对脑缺血再灌注效应的分子机制)

    文献名:Alterations of brain quantitative proteomics profiling revealed the molecular mechanisms of dios ...

  3. IE 跨域session丢失问题

    在测试时发现session 取不到值,以为是session赋值除了问题,但是在Chrome中一切正常,故排除此原因.那问题肯定出在浏览器身上里.于是一步一步调试,发现在IE中,如果页面跳转,Sessi ...

  4. Linux下Tomcat优化

    /etc/profileexport JAVA_OPTS="-server -showversion -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:Ma ...

  5. Koadic的安装和使用

    概述 Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript.jscript进行大部分操作 环境准备 我准备的是两台虚拟机一台kali就是攻击机器一台windows7 64位就是 ...

  6. POJ1270 toposort+DFS+回溯

    题目链接:http://poj.org/problem?id=1270 这道题其实就是求所有满足条件的topo序,我们考虑到给定的字符是确定的,也就是他们的长度都是一样的,所以为了得到所有的情况,我们 ...

  7. OpenCV-Python 使用OCR手写数据集运行KNN | 五十四

    目标 在本章中 我们将使用我们在kNN上的知识来构建基本的OCR应用程序. 我们将尝试使用OpenCV自带的数字和字母数据集. 手写数字的OCR 我们的目标是构建一个可以读取手写数字的应用程序.为此, ...

  8. JavaScript JSON 与 AJAX

    JavaScript JSON 与 AJAX JSON 是一种轻量的数据交互格式,与 AJAX 配合完成前端页面与服务端的信息传递,本文介绍 JSON 的使用.原生 AJAX 写法.JSONP 跨域解 ...

  9. WScript.Shell 与 Shell.Application 的不同

    本文主要对比,VBScript 中 CreateObject("WScript.Shell") 和 CreateObject("Shell.Application&quo ...

  10. BP神经网络及异或实现

    BP神经网络是最简单的神经网络模型了,三层能够模拟非线性函数效果. 难点: 如何确定初始化参数? 如何确定隐含层节点数量? 迭代多少次?如何更快收敛? 如何获得全局最优解? ''' neural ne ...