概述
功能:用同一局域網下的安卓手機或者蘋果電腦來控制接在樹莓派GPIO上三色燈的顏色
語言:linux C
設備:
-
安卓手機:HUAWEI Mate 10 Pro
-
蘋果電腦:MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)
-
樹莓派:樹莓派3B+ (操作系統: Raspbian)
展示:
- Mac端
- Android端
- 樹莓派的log
代碼:https://gitee.com/xuanyusan/raspberrypi_IPC.git
說明:led.c、server.c編譯后運行在樹莓派上,client.c編譯后運行在手機端或者電腦端。
安卓機的事前准備
1、下載termux
為了使在安卓手機上運行C代碼如同在linux環境下一般,需要下載termux。
推薦一篇關於termux的比較全面的介紹:https://www.sqlsec.com/2018/05/termux.html。
為了滿足這個項目,需要在termux安裝clang
pkg install clang
2、代碼的傳輸
既可以用ssh,也可以直接通過復制粘貼將代碼拷貝到手機上,用termux自帶的vi編輯器生成client.c文件。
樹莓派的事前准備
1、事前准備的事前准備
- 安裝操作系統Raspbian
- 啟動VNC(VNC不是必須的,但有必要檢查一下ssh是否開啟,默認應該是允許用戶pi遠程登陸的)
- 明確hostname和ip
2、下載wiringPi
apt install wiringPi
版本:gpio version: 2.50
3、創建具名管道
mkfifo ledFifo
蘋果機的事前准備
安裝VNC Viewer
VNC只是為了可以用熟悉的桌面操作系統操作樹莓派而已,並非必須。
最后的編譯運行
1、編譯前
編譯前我們需要將client.c所要連接的ip改成樹莓派的ip地址
2、編譯
對於led.c的編譯
gcc -o led led.c -lwiringPi
對於server.c的編譯
gcc -o server server.c
對於client.c的編譯
gcc -o client client.c
3、運行
先在樹莓派(服務端)運行
# 運行以下兩個文件的先后順序不要更改
./led
./server
再在手機或者電腦(客戶端)運行,可以同時多端運行
./client