我想在我的iPhone上构建一个连接到我的覆盆子Pi的应用程序。因为这些将非常接近(彼此相邻),我想使用有线连接(闪存端口到USB)进行通信。这可能还是我必须使用无线技术?我的假设是有线会更好,因为它确保连接并且会更快,但是,我愿意接受纠正。
这与我想在iphone上访问覆盆子pi传感器的业余爱好者项目有关。传感器(和Pi)将位于iphone旁边。我正在构建一个定制奇怪的案例来组合它们。
任何想法都非常感激。
谢谢 伊恩
我想在我的iPhone上构建一个连接到我的覆盆子Pi的应用程序。因为这些将非常接近(彼此相邻),我想使用有线连接(闪存端口到USB)进行通信。这可能还是我必须使用无线技术?我的假设是有线会更好,因为它确保连接并且会更快,但是,我愿意接受纠正。
这与我想在iphone上访问覆盆子pi传感器的业余爱好者项目有关。传感器(和Pi)将位于iphone旁边。我正在构建一个定制奇怪的案例来组合它们。
任何想法都非常感激。
谢谢 伊恩
对于与外围设备(例如Raspberry Pi)的通信,您有几种选择。
UART通过30针或闪电连接器 (需要MFi)
USB通过30针或闪电连接器 (需要MFi)
快速开始: Microchip的开发套件。该模块可以延长与RPi的通信,或者您可以尝试将附件堆栈(以及与验证芯片的通信)实现到RPi本身。
通过音频插孔进行FSK或类似的调制音频通信 (不需要MFi)
您必须在RPi端实现硬件FSK调制解调器,在iOS端实现软件调制解调器。这有点棘手,但绝不是不可能的。
当然你也可以在RPi端实现软件调制解调器。但由于RPi没有音频输入,你必须使用USB声卡或其他东西。或者让您的生活变得复杂,试图快速采样模拟引脚。
用户并不是真的杰克在这个主题上做了一个令人印象深刻的链接列表 在这里。
蓝牙作为外部附件 (需要MFi)
快速开始: RN-41/42 APL
易于使用的蓝牙堆栈。与认证芯片的通信由BT模块处理。请注意,与iOS设备通信时,数据吞吐量并不比使用BLE模块时好。
蓝牙作为 BLE 模 (不需要MFi)
数据吞吐量并没有那么糟糕 老人 BT。实现通信可能在代码方面更棘手。 这个模块 看起来很有趣
WiFi通讯 (不需要MFi)
WiFi可能是一个不错的选择。但是,为了使您的设备和iOS设备能够找到彼此,您将需要静态IP(对于服务器设备)或最小 零配置 (你好)实施。
使用WiFi时,您可以使用基础设施网络(使用外部接入点),也可以使用AdHoc(由您的设备创建)。后来看起来很有希望但要小心 - iOS7和AdHoc网络似乎并没有很好地协同工作。
有了WiFi,你有很多模块可供选择。更简单的使用将是一个类似的模块 RN-XV WiFly模块。 TCP堆栈已在模块中实现 - 您可以使用简单的UART通信。我不确定如何在这个上实现Zeroconf。
或者有 生的 像WiFi模块一样 MRF24WG0MA / MB。它们稳定可靠,可用于家用蚀刻PCB。 RPi用户的缺点是你几乎肯定需要一个PIC24或RPi和MRF24W之间的东西。 Microchip为其微控制器提供免费的TCP / IP堆栈,该堆栈包括Zeroconf。
而最简单的方法:您可以简单地使用WiFi加密狗(使用RPi)进行通信。 Zeroconf应该足够容易在RPi上实现 - 如果你可以为RPi分配静态IP(如果它充当服务器),那么在开始时它甚至都不需要。
虽然@RokJarc的答案非常完整,但我也使用iOS的个人热点在有线(闪电到USB)和无线连接方面取得了成功。以下是步骤:
对于有线,在Pi上安装 ipheth-utils
:
sudo apt-get install ipheth-utils
并添加一个 eth1
网络界面通过编辑 /etc/network/interfaces
包括:
allow-hotplug eth1
iface eth1 inet manual
对于无线,请确保 /etc/network/interfaces
有一个无线网络条目,如:
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
如果您正在使用wpa_supplicant并为iPhone的热点添加网络条目 /etc/wpa_supplicant/wpa_supplicant.conf
:
network={
ssid="Banana Phone"
psk="ring ring ring"
key_mgmt=WPA-PSK
id_str="banana"
priority=3
}
ssid应该是手机的名称 Settings -> General -> About -> Name
密码应来自个人热点屏幕。
现在启动手机上的个人热点。当通过USB连接到照明电缆或使用wifi时,pi应自动连接。在连接之后,应该在某处将pi分配给ip 172.20.10.x
。你可以跑 ifconfig
在pi上找出哪一个。 (我相信你应该能够在这里定义一个静态IP,但还没有弄乱)
从那里,您可以将另一台计算机连接到热点,然后使用.sh连接到pi 172.20.10.x
ip或甚至直接从手机ssh。
在我的个人测试中,闪电的延迟一直很低,而且我已经 在Raspberry Pi Two和Raspberry Pi Zero上使用它,用于将实时mjpeg视频从两个摄像头传输到VR耳机。在该方案中,网络是100ms左右延迟的相当小的来源。当然,体验并不是Vive质量,但它仍然可用,iPhone + Pi组合提供了许多有趣的黑客机会