要做一个偏远地区的物联网控制应用,考虑了多种通信方式,据我所知总共也就这几种:有线,WIFI,GPRS。其余的什么MQTT,XBEE,RFID等等也离不开网络,或者可以这样设计:用RFID做设备间信息传输,然后部署一台另外的设备负责把最终信息存储设备的信息通过网络发送到服务端,这样能减少一些联网设备,不过感觉意义不大。
首先是第一个坑,现在arduino gprs设备几乎都是使用的2G通信,而运营商的2G通道渐渐都关闭了,会伴随着速度缓慢,信号丢失,无反应等各种情况,所以有时候写出来程序调试半天发现是通信的问题,直接让人怀疑选型gprs是个错误,这时候就要在通信程序中加入各种判断,考虑各种情况,工作量大幅上升。
去V2EX发帖吐槽,总结了网友给出消息:摩拜单车锁用的通信方式是移动定制的4G物联网流量卡,公路上的抓拍摄像头使用的是有线连接,自动货物出售机普遍采用4G物联网卡,远洋船舶通信是卫星信号,流量费贵出天际。总之GPRS通信处于被淘汰的边缘了。
应该有人问,那为什么不选4G?一个字:“穷”,arduino官方有支持2G/3G/4G的模块,一个将近900元,在硬件领域,有时候1分钱都要比较,不是斤斤计较,因为大量的设备意味着造价数量级的升高,同样能给出解决方案,老板肯定会选择报价低的。自己做?我反正做不出。
第二个坑,arduino gprs通信模块便宜的有A6,SIM800,SIM900,这些模块发送一个HTTP GET请求都要非常多的步骤,甚至A6模块要自己实现HTTP请求,因为它自带的只有TCP,更别说加密请求,生成鉴权token等东西了,这一套写下来,没有个几千行搞不定。
第三个坑,耗电量大,GPRS本就不是为物联网设计的,它甚至要外部供电,通信瞬间电流可达到2A,瞬间RF功率2W……耗电量刷刷的~
总之,以后想选型GPRS模块的朋友要做好心里准备,再加上近期的伪基站诈骗一夜一无所有的事件,2G短信通道会被关闭的更多,GPRS不再是一个好的选择方式。