首页 文章

控制GPIO的Android插槽

提问于
浏览
0

我想构建一个基于套接字的Android应用程序,它连接到树莓派,并有一个(开关)或两个控制GPIO状态的按钮 . 我只是成功地根据IP地址和端口在我的应用程序和覆盆子pi之间 Build 了一个简单的按钮连接 . 它控制GPIO,但在几秒钟之后没有任何理由它会自动将状态从高低调改变 . 我是否必须从Android应用程序或来自raspberry pi的服务器/客户端java文件控制GPIO状态?

请帮忙 ...

3 回答

  • 1

    对于python引脚控件,首先安装python库: sudo apt-get install python-dev python-rpi.gpio

    以下python脚本将启动引脚18(BCM编号),然后在5秒后关闭它:

    import RPi.GPIO as GPIO
    import time
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(18, GPIO.OUT)
    GPIO.output(18, GPIO.HIGH)
    time.sleep(5)
    GPIO.output(18, GPIO.LOW)
    

    覆盆子pi上的引脚编号有两种符号(BOARD和BCM),请检查this链接以获取两者的映射 . 由于两个符号,它很容易被误认为不工作,例如GPIO23 =引脚16

    对于应用程序架构,我建议MQTT,它是轻量级的,非常适合物联网架构 . 有androidpython的库以及HiveMq和Mosquitto等几个经纪人 . 我写了一个演示,它与android和一个覆盆子pi here(python部分)和here(android部分)maby之间进行通信它可以帮助你开始 .

  • 0

    我正在研究类似的东西,但是通过wifi p2p使用TI cc3200 . 我没有使用Raspberry Pi的经验,所以记住这一点 . 如果您的GPIO正在更改状态而没有从您的应用程序发送任何其他命令,我会查看Raspberry的问题 . 一些想法,你的android可能设置一个断点,你发送信号到Raspberry,看看是否发生了你不想要的任何事情 . 使用Raspberry可能会在pi接收命令的例程中设置断点 . (我说你对用于pi的IDE没有任何了解 . )一般而言,断点和执行步骤是你发现正在发生的事情的地方 . 我认为您可以研究下拉式电阻器和微处理器的稳定性 . 自从我处理了那种事以来已经很长时间了,所以我不确定,那么可能不适用于Pi . 只是一个想法 . 最后,也许比我聪明的人可以权衡 .

  • 0

    据我所知,您正在询问应用程序架构 . 我认为在RaspberryPi中你应该实现一种套接字监听器,它有一组预定义的命令,如开关GPIO引脚状态,获得GPIO引脚状态等等 . 从Android端,您将连接到服务器,通过发送适当的命令检索状态(如果您需要显示当前的GPIO状态),并在控件上发送预定义的命令单击以告知服务器端执行某些操作 . 像这样 . 这是我自己的看法 .

相关问题