繁体   English   中英

如何通过蓝牙将Android应用程序连接到Raspberry Pi,以发送数字文本文件?

[英]How can I connect an Android app to Raspberry Pi, via Bluetooth, in order to send a text file of numbers?

我正在使用Android Studio中的Android应用程序,以及在NOOBS上运行的Raspberry Pi 3。 我想让该应用向Pi查询文本文件中的数字,或者在需要时仅查询整个文本文件。

到目前为止,我已经按照本教程进行了操作:( http://www.instructables.com/id/Control-Raspberry-Pi-GPIO-Using-an-App/?ALLSTEPS ),用于制作一个操作LED的应用程序,该LED连接到Raspberry Pi的GPIO。 我成功了,但是没有使用蓝牙。 我主要是为了确认我可以在Android应用程序和Raspberry Pi之间做些什么。

然后,我尝试了本教程:( http://www.instructables.com/id/Android-Bluetooth-Control-LED-Part-2/?ALLSTEPS ),该教程创建了一个通过蓝牙进行连接以控制LED的Android应用。 但是,本教程使用Arduino,而不是Raspberry Pi。 因此,Arduino草图无法在Pi上运行。 我尝试编写自己的C程序,该程序模仿Arduino草图的功能,但对我不起作用。 我在本教程中的尝试失败。 我将在下面发布我尝试编写的代码,以防有人可以帮助我修复我的C程序,并可能在此程序上另谋高就。

我编写的用于通过Android应用程序蓝牙连接控制Raspberry Pi上的LED的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wiringSerial.h>
#include <wiringPi.h>

#define LED 11 // Pin 17

void ledOn();
void ledOff();

char command[4];
char strin[4];
int ledon = 0;
int strtolVal;
int fd;
char sgc[4];
int sgci;

void ledOn() {
    digitalWrite(LED, 1);
}

void ledOff() {
    digitalWrite(LED, 0);
}

int main() {
    fd = serialOpen("/dev/rfcomm1", 115200);
    wiringPiSetup();
    pinMode(11, OUTPUT); // physical #11, GPIO #17

    while(1) {

        if(serialDataAvail(fd) > 0) {
            sgci = serialGetchar(fd);
        }

        sgci = serialGetchar(fd);
        sgc[0] = sgci + '0';

        if(strcmp(sgc, "0") == 0) {
            ledOff();
        } else if (strcmp(sgc, "1") == 0) {
            ledOn();
        }   
    } // end while loop
} // end main()

控制LED并不是我的最终目标,因此,我不太担心我有一个运行中的Android应用程序来控制LED,而是更担心我可以通过蓝牙在Android应用程序和Pi之间获得某些工作。 因此,我的新目标是能够在Android应用程序中显示文本,该文本是通过Pi从蓝牙接收的。

我一直在不停地寻找解决此问题的方法,或者是不是通过蓝牙连接,或者是应用程序与Pi以外的其他设备连接的情况。 如果某种原因,那里确实有某种功能可以满足我的搜索需求,那么我为我的搜索能力不佳而道歉。

几分钟前,我在另一个类似的问题上问了另一个类似的问题: 配对的Android和Raspberry PI之间通过蓝牙进行数据传输

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM