如何在iPhone和Arduino+Bluetooth Mate之间创建蓝牙串口连接?

7
我有一个项目,需要我的iPhone与Arduino通信。蓝牙似乎是通信的最佳选择。我应该如何编程我的iPhone(使用哪个框架?)来与Bluetooth Mate通信,或者苹果的限制是否阻止了这一点?如果使用越狱的iPhone是否可行?除了蓝牙外还有更好的方法吗?示例代码会很有帮助。
提前感谢。
7个回答

10

7
同时,Seeedstudio提供了一个Arduino扩展板:蓝牙低功耗扩展板
符合Bluetooth 4.0规范的设备可以被所有搭载有蓝牙4.0芯片的iPhone/iPad型号(目前为iPhone 4S、5和iPad 3)在iOS 6上访问。对于大多数目的,您不再需要加入MFI计划或越狱设备。使用Core Bluetooth Framework,该框架也在WWDC 2012视频中讨论过,包括《Core Bluetooth 101(Core OS)》和《Advanced Core Bluetooth(Core OS)》。

6

自从我最后一次接触嵌入式蓝牙到iPhone设备以来已经有一段时间了,但据我所记,您必须从苹果购买认证芯片。


Apple MFi

但是,如果越狱是一种选择,那么这可能起作用。 但我从未尝试过这样做,因为我曾经拥有一些认证芯片。

我在快速搜索中找到了btstack,也许它会有所帮助。


你能确认这仍然是最新的答案吗?事情有变化吗? - mm24

0

苹果的操作系统应用沙盒阻止股票操作系统设备上的通用(经典非BLE)蓝牙串行数据通信,除了一些在其MFi计划中注册的公司。


0
尝试安装蓝牙iBlueNova,它将与每个设备进行通信。

这不是一个文件传输应用吗? - cduck

0

是的,做这个最好的方法是使用Blynk。创建一个账户,复制示例代码,然后开始使用Blynk应用程序!


-1

最可靠且可能是最简单的解决方案是使用Arduino Ethernet Shield并通过物理网络连接到您的WiFi路由器。 Arduino将托管Web页面或直接响应http以为您完成工作。

无需越狱,无需BT编程,无需串行通信端口等。只需普通的旧网页。太棒了。

最简单的解决方案是使用任何浏览器在您的网络上导航,包括您的iPhone,然后向Arduino发出命令。

例如:

http://192.168.1.101/?1

192.168.1.101 = 你的Arduino的IP地址

?1表示PIN13被拉高(即打开LED)

你的代码应该是这样的:

EthernetClient client = server.available();
while (client.connected())
{
    if (client.available()) 
    {
        char cVar = client.read();
        if (cVar != '?') return;
        Serial.Print(cVar)
        if (cVar == '1') digitalWrite(13, HIGH); //turn on the led
    }
}

那段代码写得很快很脏,所以不要责怪我!

让我知道你决定了什么,以及它的工作效果如何。我需要去阅读一下关于http://blog.makezine.com/2012/03/19/bluetooth-4-0-from-arduino-to-iphone-no-jailbreaking-no-mfi/的内容。

感谢提供链接,ygbr!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接