香橙派Orange Pi i96 初次使用遇到的坑和解决方法+附加c# iot .net 代码实例

news/2024/5/2 10:32:16/文章来源:https://blog.csdn.net/qq_16005627/article/details/127015266

香橙派Orange Pi i96这个主板是香橙派最便宜的一样主板,功能也不少,我觉得可以满足我的需求,如果可以用好的话,可以做很多东西,批量买也便宜,做出来的产品,定价也不用很高,符合效益


但是不知是否由于Orange Pi i96比较便宜(包邮费一共47元)的原因,官方对这个型号的软件代码更新比较慢,在使用的时候会遇到一些问题,没办法走下去。。

7aa929782c6b4a34aa3edb1efd3dec69.png

 

我折腾了3天,把问题摸清楚了,记录下来,后人看到避免踩坑

1、系统装好,重启第二次后进不去系统(声卡问题)

2、连接wifi,重启后,一直报wlan相关错误,刷屏,无法操作(网络接收不好问题)

3、gpio无法使用问题(官方说明书里的不用能用,我找客服提供了别的库)

4、串口连接电脑使用时,有时候会显示比较乱(关掉重连)

5、说明书提到的用orangepi热点,是不行的,一定要用ttl转usb线连接电脑登录,再配置wifi

开造

推荐你用官方提供的ubuntu, tf卡烧好后,一定,一定要用串口连接电脑,也只能用串口连接

4f96505bc92f4b5ba324b9020da2fb1c.png87c0ad2cbec642cdbe9efd214ce29422.png

85fe29a7b8314ad69d76879b54d13acd.jpg

 

 配置wifi:

nmtui

问题:设置完成后,重启板子,出现无法进入系统的情况。原因一直没有找到。在这里卡了很久,每次都要重新烧录镜像才行。

 这里说到了这个问题,因为声卡驱动有问题

首次进入系统后,不能着急重启,要先把声卡相关的删除。

sudo apt purge alsa-utils

  使用以上命令,删除alsa的相关东西,然后才能重启!这点非常重要

 

配置好wifi,删除声卡相关后重启

问题:重启后啥也没干,就出现这个一直刷,目测是网卡相关问题

43415c67bb1e406cb167863b8a9af273.jpeg

 还要修改以下wifi的所在地域。

sudo vim /etc/default/crda

查看到里面的内容 REGDOMAIN= 我设置为

REGDOMAIN=US

我想设成中国,但不知道配置啥,网上说配置成us可以,目前看是好使的。

设完之后,还有可能会在 你之前配置的 wifi连接不上的时候,还会继续刷报信息出来,可以不用管,或者移到路由器近一些,就不会再刷了。。。原因是板子的天线接收能力不好,要靠近路由才行,连不上就报错, 或者你换一跟大一点的天线

 

系统搞定了

 

问题:gpio readall 查看 用不了

官方提供的安装wiringOP是太老旧了,用不了的,我折腾了很久,安装就报错,无解的

b76b87afe3fc43ebb855580b1886e497.png

 

于是问客服,提供了另一种方法,使用一个国外提供的库,我下了回来 放到gitee上面给大家使用

opioforOrangeI96: opioforOrangeI96opioforOrangeI96opioforOrangeI96: opioforOrangeI96

用这个就可以了

下回来后执行下面指令

//升权限

su

//授 权

chmod 777 /usr/dotnet/opio/opio readall  

//查看gpio

/usr/dotnet/opio/opio readall  

出来结果

d8e1fd61c28d4a05beb364b8946cba1c.png

问题:ssh连接慢,老是断开

在串口转usb模式下 ifconfig 查看网卡ip

用ssh连接,在离路由器远的情况下(尽管手机连接信号很好),会比较慢,断开,都是天线接收网络有限问题


然后我用c#写了代码 

sdk用.net6的 官网下载即可 :aspnetcore-runtime-6.0.8-linux-arm.tar.gz

调用,即可以实现继电器的开关

 /// <summary>/// 由于i96比较特别,不能用wiringOP, 官方推荐以下方法,通过opoi进行i96引脚操作,,/// 类库为于项目:opio_file下,复制到你的/usr/dotnet/自建目录下面即可 或在线上下载opoi, https://wiki.pbeirne.com/patb/opio /// https://discuss.96boards.org/t/resources-for-the-i96-orangepi/11444/// </summary>public class Device_OrangeI96_GpioModeService{//运行调用例子public static void test(){while (true){Console.WriteLine("输入o打开,输入c关闭");//控制台中输入内容string command = Console.ReadLine();if (!string.IsNullOrWhiteSpace(command)){setGpioModeOutPut(28, "on");}}}/// <summary>/// opio存放目录/// </summary>static string opioPath="/usr/dotnet/opio/";/// <summary>/// pin输入高电平或低电平/// </summary>/// <param name="pin"></param>/// <param name="state"></param>public static void setGpioModeOutPut(int pin, string state){string command = opioPath+"opio  mode " + pin + " out";processCommond(command);if (state == "on"){command = opioPath + "opio  write " + pin + " on";processCommond(command);}else if (state == "off"){command = opioPath + "opio  write " + pin + " off";processCommond(command);}}/// <summary>/// pin输入高电平或低电平/// </summary>/// <param name="pin"></param>/// <param name="state"></param>public static void setGpioModeInPut(int pin, string state){string command = opioPath + "opio  mode " + pin + " in";processCommond(command);if (state == "on"){command = opioPath + "opio  write " + pin + " on";processCommond(command);}else if (state == "off"){command = opioPath + "opio  write " + pin + " off";processCommond(command);}}/// <summary>/// 读取pin值  返回 1 高电平,0低电平/// </summary>/// <param name="pin"></param>/// <returns></returns>public static string getGpioRead(int pin){string command = opioPath + "opio  read " + pin + "";return processCommond(command);}//执行public static string processCommond(string command){var process = new Process{StartInfo = new ProcessStartInfo("/bin/bash", "")};process.StartInfo.RedirectStandardInput = true;process.StartInfo.RedirectStandardOutput = true;process.StartInfo.UseShellExecute = false;process.Start();process.StandardInput.WriteLine(command);process.StandardInput.Close();var cpuInfo = process.StandardOutput.ReadToEnd();process.WaitForExit();process.Dispose();var lines = cpuInfo.Split('\n');foreach (var item in lines){Console.WriteLine(item);}return cpuInfo;}}

代码已开源,里面还有很多关于香橙派和传感器的调用方法

见:https://gitee.com/yihong-lin/OrangePIWiringOPforCsharp

caf2e292962543db8d06e0d56ce3a756.png

 

 

 

 

搜索

复制

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_12915.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4计算机网络与信息安全——软件设计师

一、七层模型 内容&#xff1a; 习题&#xff1a; 局域网不能通过三层通信 二、网络技术标准与协议 一般分为4/5层(没有明确说明&#xff0c;了解主要几层即可) TCP协议: DHCP协议 DNS协议 递归直接回答&#xff0c;迭代刨根到底 三、网络类型与拓扑类型 计算机网络按不同…

一起Talk Android吧(第三百八十五回:数据绑定-DataBinding总结)

文章目录数据绑定使用方法7.单向数据绑8.双向数据绑定9.绑定事件演示结果使用总结各位看官们&#xff0c;大家好&#xff0c;上一回中咱们说的是数据绑定-DataBinding的例子,这一回中咱们继承介绍该例子。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&am…

线程池概念2

线程池类图 ExecutorService:是一个线程池最基本的接口&#xff0c;提供了提交任务&#xff0c;关闭线程池这些基本的方法。 ScheduledExecutorService:扩展接口&#xff0c;在基础线程池的功能上又新增了任务调度的功能&#xff0c;可以用来定时执行任务。 线程池状态 线程…

Devtools Console 面板输入了 1+1 ,浏览器内部发生了什么?

背景 新来的实习生妹子问了一个问题&#xff1a;「你看 Chrome 的 Devtools 调试工具&#xff0c;代码写一半还没运行下面就会提示输出结果&#xff0c;这个咋做到的&#xff1f;」 咋做的&#xff1f;对于 Devtools 的内部执行逻辑&#xff0c;咱不了解&#xff0c;但咱也不能…

WhatsApp和WhatsApp Business之间的区别

关键词&#xff1a;WhatsApp、WhatsApp Business WhatsApp 无疑是一款超级方便、免费且毫不费力的即时通讯应用程序。这就是庞大的用户群的原因。对于企业来说&#xff0c;它也是一个超级方便、免费且不费吹灰之力的即时通讯应用程序。特别是自从 WhatsApp 推出了 WhatsApp Bus…

《MySQL DBA封神打怪之路》专栏学习大纲

《MySQL DBA封神打怪之路》专栏学习大纲 文章目录《MySQL DBA封神打怪之路》专栏学习大纲1、作者介绍2、专栏介绍3、专栏部分文章截图3.1.所有文章一栏3.2.文章内容截图4、专栏大纲学习指南4.1对数据库的初步认识4.2.四种类型的SQL语句基本使用4.3.超丰富的多表联查案例4.4.事物…

消除笔去水印怎么做?教你怎么用这些消除笔软件

在网上看到好看的照片想要用作壁纸&#xff0c;但是上面有水印看起来不好看怎么办&#xff1f;我们可以用有消除笔的软件将图片水印去除&#xff0c;那么消除笔去水印怎么做呢&#xff1f;今天的这个教程分享给你们。方法一&#xff1a;借助“Styler”进行去水印操作 这是一款拥…

Echarts绘制geo地图属性设置大全(一)

1、Echarts版本 "echarts": "^5.3.3", 2、基础地图绘制&#xff08;以中国地图为例&#xff09; 绘制地图需要有用于绘制地理坐标系的数据&#xff0c;如示例使用的china.js <template><div ref"mapBar" class"map-class"&…

面试之HashMap

1.初始大小&#xff1a;HashMap默认初始大小是16&#xff0c;这个默认值是可以设置的&#xff0c;如果事先知道大概的数据量有多大&#xff0c;可以通过修改默认初始大小&#xff0c;减少动态扩容的次数&#xff0c;这样会大大提高HashMap的性能 2.动态扩容&#xff1a;最大 装…

兼容性测试包含哪几类呢?

兼容性测试包含哪几类呢? (1)浏览器方面 关于浏览器的兼容性测试&#xff0c;主要是检查页面的交互、元素和样式展示是否正常。我们都知道&#xff0c;目前市面上主流的浏览器非常多&#xff0c;像&#xff1a;360、搜狗、火狐等等。 在进行测试的时候&#xff0c;由于兼容性问…

2022出海东南亚:越南电商市场现状及网红营销特点

近几年&#xff0c;东南亚整体发展态势非常好&#xff0c;加上国内市场饱和&#xff0c;不少国内企业在计划出海或已经出海东南亚。作为东南亚第二大电商市场&#xff0c;越南自然也成了香饽饽&#xff0c;越南蓬勃发展的数字经济和电商领域&#xff0c;让其成为了卖家挖掘新商…

Vue 力导图d3js 实现

PowerBI 自定义组件推荐用D3JS 实现&#xff0c;实现一个PowerBI 的力导图组件&#xff0c;为调试方便&#xff0c;先用Vue 实现一个&#xff0c;然后再移植到PowerBI 中&#xff0c;话不多说&#xff0c;上效果&#xff1a; 体验入口 上代码是最好的老师&#xff1a; <t…

【easyExcel】后端将模板文件写入流供前端下载报错,easyexcel下载模板文件出错

目录事件起因环境和工具操作过程解决办法参考内容&#xff1a;结束语事件起因 报错内容&#xff08;我主要搜索的两个错误内容点&#xff09;&#xff1a; com.alibaba.excel.exception.ExcelGenerateException: Create workbook failure 和 Caused by: org.apache.poi.openx…

kingbaseES(人大金仓)数据库语法和常用函数 以及 踩坑记录

前言 最近公司弄了个新项目&#xff0c;数据库指定使用kingbase数据库 刚开始一看这名字都不知道这是啥数据库&#xff0c;后来百度一搜&#xff0c;看到中文名字就知道了。 虽然没用过&#xff0c;但那几个国产数据库也听说过 这不&#xff0c;刚开始用&#xff0c;语法都不熟…

概率统计·概率论的基本概念【条件概率】

条件概率 定义 条件概率与积事件的区别 条件概率——在A事件发生的前提下&#xff0c;发生B 积事件——AB同时发生 性质 **注意&#xff08;3&#xff09;要在B1&#xff0c;B2……是互斥事件 &#xff08;6&#xff09;用得多 纯乐&#xff0c;自己都说了&#xff08;6&…

数智赋能,美创助力绍兴市上虞区建设医共体管理平台

什么是医共体&#xff1f; 开展县域医共体建设是深化医改的重要步骤和制度创新&#xff0c;旨在通过医共体模式&#xff0c;推动医疗卫生服务供给侧结构性改革&#xff0c;调整优化医疗资源结构布局&#xff0c;促进医疗卫生工作重心下移和资源下沉&#xff0c;提升基层服务能力…

瑞吉外卖(14) - 上传文件功能开发

文章目录文件上传介绍文件上传代码实现查看效果新建CommonController类断点测试转存文件取消拦截器过滤LoginCheckFilter.java运行测试完善功能编写application.xml编写CommonController.java运行测试完善二级目录编写application.yml编写CommonControler.java测试成功文件上传…

使用streamstring实现格式化输入

目的&#xff1a;在windows系统写c项目&#xff0c;常用sscanf_s进行格式化输入。但是在ubuntu系统上发现sscanf_s不可用&#xff08;只有sscanf可用&#xff0c;但是它是c 99 的函数了&#xff09;。后面查阅知道&#xff0c;这个sscanf_s函数是微软专有的函数&#xff0c;不具…

linux 竞态与并发编程

前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&#xff0c;本文就介绍了机器学习的基础内容。 提示&#xff1a;以下是本篇文…

Mapper代理开发

Mapper代理开发一. Mapper代理开发概述二. 使用Mapper代理要求(重点中的重点)三. 实操的代码main目录下的java目录中1. UserMapper接口2. User类3. MybatisDemo类main目录下的resources目录中1. UserMapper.xml2. logback.xml3. mybatis.xml一. Mapper代理开发概述 之前我们写的…