译者:张新慧
寻求 IoT 报道或投稿、给文章纠错,请发送邮件至mobilehub@csdn.net。微信联系 jiaweidi1214,备注“姓名+公司+职位”(以便更快审核通过),加入“CSDN 物联网技术交流群”,与作者及更多专家、技术同行进行 IoT 技术交流。
上篇文章谈到了利用 Hexiwear 加速器和陀螺仪来判断病人是否晕倒,还提及了程序编写好帮手 mbed。而这篇文章是关于如何使 OLED 显示屏推送通知以及如何使用蓝牙联系急救人员的。除此之外,还会讲到用 Evothings 开发 Android 应用和如何连接智能手机和 Hexiwear。
Hexiwear 带有可编程的 1.1 英寸的彩色 OLED 显示屏,可为用户推送通知。要实现此功能,需添加 Hexi_OLED_SSD1351.h
库文件,启动驱动程序。下文所示代码设置文本属性、背景颜色和文本位置。设定好模板后,只用更改文本即可。
void initOLED() { char text[20]; /* Text Buffer */ /* Get OLED Class Default Text Properties */ oled_text_properties_t textProperties = {0}; oled.GetTextProperties(textProperties); /* Turn on the backlight of the OLED Display */ oled.DimScreenON(); /* Fills the screen with solid black */ oled.FillScreen(COLOR_BLACK); /* Change font color to Blue */ textProperties.fontColor = COLOR_BLUE; oled.SetTextProperties(textProperties); /* Display Bluetooth Label at x=15,y=0 */ strcpy((char *) text,"DesignSpark"); oled.Label((uint8_t *)text,15,0); /* Display Text at (x=20,y=15) */ strcpy((char *) text,"HexiCare"); oled.Label((uint8_t *)text,20,15); /* Change font color to blue */ textProperties.fontColor = COLOR_BLUE; oled.SetTextProperties(textProperties); /* Set text properties to white and right aligned for the dynamic text */ textProperties.fontColor = COLOR_WHITE; textProperties.alignParam = OLED_TEXT_ALIGN_RIGHT; oled.SetTextProperties(textProperties); }
蓝牙跟 OLED 一样,也可添加现存的库来实现连接功能。库能简化编程,而 mbed 不仅支持大容量的库,而且带有硬件抽象层,能一定程度上减少处理基础硬件技术的麻烦,让开发者能专注做好软件算法。
#include "Hexi_KW40Z.h" // BLE ... KW40Z kw40z_device(PTE24, PTE25); // BLE (UART TX, UART RX) ... int main() { ... Thread txThread; // Thread to handle sending BLE ... } ... void txTask(void) { while (true) { // Send alarm data kw40z_device.SendFaintAlarm(faintAlarmBLE); Thread::wait(1000); } }
上篇文章中关于判断晕厥的算法:当晕倒时,算法中 faintAlarmBLE 变量为 1,每秒种给手机传送一次信息。连续不断传送信息很耗电,但目前尚未设计出完整系统,设备无法确定信息已传送成功,只有不断发送才最保险。
接下来是开发 Android 应用。因为没有 Android 开发经验,所以我更青睐兼容 HTML 和 JavaScript 的混合系统工具,比如 Evothings。之所以选 Evothings,也是因为看过一个介绍用 Evothings 开发 Hexiwear 应用的网络会议视频。
Evothings 很实用,无需学习原生 Android,但也有缺陷。缺陷一:基于云端,需要等待服务器更新后才能开始编程,大大影响效率;缺陷二:无内置的 SMS 选项,当尝试添加此功能时,程序停止运行。
好在应用差不多要完成了,只需添加 SMS 或拨打号码选项即可。尽管 Evothings 无内置 SMS,但它支持 Cordova 插件。有 一篇文章 是说如何给 Evothings Studio 添加 SMS。若有原生移动开发经验,选择在 Evothings 上编程可能更好;如果想使用我的改良版本,请访问我的 GitHub 主页。