android - 将带有 Android Things 的 Raspberry PI 3 连接到 Arduino

标签 android arduino communication android-things

<分区>

我的问题是关于如何将 Android of Things 应用程序与 Arduino 进行通信。我想在我的 Android of Things 项目中使用所有便宜的 Arduino 传感器。我找到了两个源链接并进行了尝试,但没有得到值。

enter image description here

class Arduino(uartDevice: String = "UART0"): AutoCloseable {
    private val TAG = "Arduino"
    private val uart: UartDevice by lazy {
        PeripheralManagerService().openUartDevice(uartDevice).apply {
            setBaudrate(115200)
            setDataSize(8)
            setParity(UartDevice.PARITY_NONE)
            setStopBits(1)
        }
    }

    fun read(): String {
        val maxCount = 8
        val buffer = ByteArray(maxCount)
        var output = ""
        do {
            val count = uart.read(buffer, buffer.size)
            output += buffer.toReadableString()
            if(count == 0) break
            Log.d(TAG, "Read ${buffer.toReadableString()} $count bytes from peripheral")
        } while (true)
        return output
    }

    private fun ByteArray.toReadableString() = filter { it > 0.toByte() }
            .joinToString(separator = "") { it.toChar().toString() }

    fun write(value: String) {
        val count = uart.write(value.toByteArray(), value.length)
        Log.d(TAG, "Wrote $value $count bytes to peripheral")
    }

    override fun close() {
        uart.close()
    }
}

我找到了这个 Raspberry Pi to Arduino Communication堆栈上的源代码,但讨论与我的问题无关。我想要从 arduino 到 android things RPI 3 的所有值。

我们如何使用 java 通过 android 框架从 arduino 获取值?

最佳答案

Pi 和 Arduino 中嵌入了多种通信协议(protocol)。最简单的方法是通过 UART 交换数据。

您的 Arduino 代码可以持续传输数据,而 Pi 可以有代码来接收数据。如果您的数据不适合单个字节,您可以编写额外的自定义逻辑来对其进行编码和解码。

关于android - 将带有 Android Things 的 Raspberry PI 3 连接到 Arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47454527/

相关文章:

Android studio 2.2无法解析符号 'FragmentPagerAdapter'

安卓 JNI : java. lang.UnsatisfiedLinkError

android - 通过蓝牙在 Arduino 和 Android 之间传输串行数据

c++ - 动态创建包含另一个动态创建的结构数组的结构数组时的内存管理

serial-port - 如何让Scilab在Linux(Ubuntu)中打开与/dev/ttyACM0 USB端口的串口通信

angular - 两个自定义( Angular )元素之间的通信

android - 使用 ViewBinder 在数据库中显示图标

android - 如何上传 gif 文件以在 android 中解析为解析文件

java - 以 dB 表示音乐音频样本?

algorithm - 如果我采用 max(abs(m) 或 max(m),有什么区别?