智能宿舍设计——3.APP与MQTT通信

        为什么写这篇?

        因为现在很多毕设为了丰富内容,要求学生加上;因为有初学者不知道要通过什么方式将数据传到手机;因为在那么多网络协议里面不知道选哪一种;因为我是23年10月才学会的,我也想让其他人也学会。。。。。。

        一、最简单的APP

        在这里,我推荐一个B站博主的视频《7天JAVA0基础速成安卓开发》,人家说7天,就不会超过7.5天,看完视频后我在一周时间内学会了APP布局。当然,仅仅是应付一下毕设,这个视频的目的也是在大家没有太多基础的情况下,可以跟着教程创建一个简单可用于交互的APP。这篇文章不涉及具体代码怎么写,只是简单说一下APP的思路。

        APP的布局,也就是layout一部分就是让你设计出APP的界面,例如下图。

        实际写代码布局之前,我简单地把布局排版做出来,大家可以用PPT或者其他思维导图地软件去做,这个不做限制。里面分为三大布局,用于传感器数据显示、按钮控制、信息框,然后还有颜色的选取信息,这些在我上面推荐的视频里面都会教大家怎么做。这个部分也可以给大家做个参考,做的很简单,但是显示、控制都是有的。

 

        二、MQTT通信

        单片机要怎么跟手机通信?

        蓝牙:无线方式,硬件上需要给单片机搭配一个蓝牙模块,一般是串口协议,然后就可以根据蓝牙模块的指令将数据通过蓝牙传输出去,热门的设计有蓝牙小车;优点是协议简单,只需要串口连接模块就行,无线方式,缺点是蓝牙本身距离短,容易受干扰,特别是2.4G的WiFi频率跟蓝牙是很接近的,穿个墙估计就收不到信号了。

        WIFI:无线方式,硬件上需要给单片机搭配一个WIFI模块,或者直接采用ESP32模块;优点是WIFI协议传输速率快、带宽大,可以支持高速率的数据,缺点是你得有WIFI,场景受限,例如车内、室外一般比较难满足。

        MQTT:无线方式,硬件上需要给单片机搭配一个NB模块,以及一个支持上网的SIM卡;有点是因为有了SIM卡,所以不受室内室外限制,信号好就行,能传到外网,缺点是数据量、带宽不大,穿个传感器数据最合适,图片都费劲。

        为啥选MQTT?

        因为毕设还喜欢上云,然后还要结合当下热点搞物联网、车联网,那么在没有WIFI的情况下,MQTT通信就是一个比较好的选择,一块SIM卡,搭建一个阿里云、华为云之类的,就可以实现数据透传。MQTT本身也是TCP协议,但需要搭配模块使用,去年做的一个项目搞了一段时间,结合阿里云做的,最后效果还行。