簡體   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