我正在使用Android Studio中的Android应用程序和在NOOBS上运行的Raspberry Pi 3。我想让应用程序从文本文件中查询Pi的数字,或者如果需要,只查询整个文本文件。
到目前为止,我已经按照本教程:( http://www.instructables.com/id/Control-Raspberry-Pi-GPIO-Using-an-App/?ALLSTEPS)制作了一个应用程序来操作连接到Raspberry Pi的GPIO的LED。我很成功,但这并没有使用蓝牙。我试过它主要是为了确认我可以在Android应用和Raspberry Pi之间做些什么。
然后我尝试了本教程:( http://www.instructables.com/id/Android-Bluetooth-Control-LED-Part-2/?ALLSTEPS)创建一个Android应用程序,通过蓝牙连接,以控制LED。但是,本教程使用的是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之外的其他东西。如果不知何故,那里有一些东西正是我正在寻找的东西,那么我为我糟糕的搜索技巧道歉。
答案 0 :(得分:0)
我几分钟前就类似主题提出了另一个类似的问题: Data transfer via bluetooth between paired Android and Raspberry PI