前言

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. Natas3 Writeup(爬虫协议robots.txt)

    Natas3: 页面提示本页面什么都没有. 在源码中发现提示:无信息泄露,谷歌这次不会发现它.提到了搜索引擎,猜测爬虫协议robots.txt中存在信息泄露,访问网站爬虫协议http://natas3 ...

  2. BeanShell调用自己写的jar包进行MD5加密

    1.在eclipse中新建一个java工程,工程名随意. 2.在工程中添加一个package,package名为md5,在package下添加一个class,class名为mymd5. package ...

  3. C# 基础知识系列- 2 字符串

    String的常见方法 String 变量的声明方式 C#中字符串常见的声明有两种: 直接使用字面值 即String s = "12321"; 使用构造器,即String s = ...

  4. Journal of Proteome Research | Proteomic analysis of Rhizobium favelukesii LPU83 in response to acid stress.(酸胁迫下根瘤菌LPU83(Rhizobium favelukesii)的蛋白质组学分析)(解读人:丑天胜)

    文献名:Proteomic analysis of Rhizobium favelukesii LPU83 in response to acid stress.(酸胁迫下根瘤菌LPU83(Rhizo ...

  5. Consider defining a bean named 'authenticator' in your configuration.

    SpringBoot整合Shiro时出错: 异常日志: o.s.b.d.LoggingFailureAnalysisReporter: *************************** APPL ...

  6. 扯一扯基于4046系IC的锁相电路设计

             4046系IC(下简称4046),包括最常见的CD4046(HEF4046),可以工作在更高频的74(V)HC4046,以及冷门而且巨难买到的74HC(T)7046和74HCT904 ...

  7. [模板] dfs序

    B.树之呼吸-贰之型-dfs序 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 42 (16 users) Total Accepted ...

  8. 面试刷题22:CAS和AQS是什么?

    java并发包提供的同步工具和线程池,底层是基于什么原理来设计和实现的呢?这个非常重要. 我是李福春,我在准备面试,今天的题目是: CAS和AQS是什么? 答:CAS是一系列的操作集合,获取当前值进行 ...

  9. 一篇文章让你了解动态数组的数据结构的实现过程(Java 实现)

    目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类 ...

  10. FaceBook 发布星际争霸最大 AI 数据集

    简介 我们刚发布了最大的星际争霸:Brood War 重播数据集,有 65646 个游戏.完整的数据集经过压缩之后有 365 GB,1535 million 帧,和 496 million 操作动作. ...