2017-11-23 32 views
-2

Meine Frage ist, wie Android von Things Anwendungen mit Arduino kommunizieren. Ich möchte das gesamte Arsenal an süßen, süßen, billigen Arduino-Sensoren in meinen Android-of-Things-Projekten verwenden. Ich habe zwei Quellenlinks gefunden und versucht, aber ich habe keine Werte erhalten.Verbinden von Raspberry PI 3 mit Android Dinge zu 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() 
    } 
} 

Ich habe diese Raspberry Pi to Arduino Communication Quelle auf Stapel gefunden, aber die Diskussion ist auf meine Frage nicht verwendet. Ich möchte alle Werte von Arduino zu android Dinge RPI 3.

Wie können wir Werte von Arduino durch Android-Framework mit Java?

+0

Werfen Sie einen Blick auf [diese] (http://nilhcem.com/android-things/discovering-the-UART-api) Projekt. Es hat einen wichtigen Teil: Bidirektionale Logic Level Converter. –

Antwort

4

Die Pi und Arduino haben eine Vielzahl von Kommunikationsprotokollen in ihnen eingebettet. Der einfachste Weg wäre der Austausch von Daten über UART.

Ihr Arduino-Code könnte kontinuierlich Daten übertragen und der Pi könnte Code haben, um ihn zu empfangen. Wenn Ihre Daten nicht in ein einzelnes Byte passen, können Sie zusätzliche benutzerdefinierte Logik schreiben, um sie zu codieren und zu dekodieren.

Verwandte Themen