概述
功能:用同一局域网下的安卓手机或者苹果电脑来控制接在树莓派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