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

20 篇文章 3 订阅
16 篇文章 3 订阅

香橙派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上面给大家使用

https://gitee.com/yihong-lin/opio-for-orange-i96​​​​​​​

用这个就可以了

下回来后执行下面指令

//升权限

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/IotDeviceForCsharp.git
 

caf2e292962543db8d06e0d56ce3a756.png

 

 

 

 

搜索

复制

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.net亦洪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值