基于STM32平台的物联网远程控制系统
这个系统主要由三个部分组成:
一、STM32控制器平台;
二、服务器端;
三、客户端(这里只用到手机端的APP,其他客户端尚未开发。);
系统框图如下图所示。。
第一部分STM32控制器端设计:
功能框图如下所示:
STM32 控制端由两个部分组成-------->STM32L053R8开发板 + 控制底板。
首先要是STM32连接服务器端,还需要事先连接到网络上。而接入网络还需要其他的硬件做辅助,计划了两个方案。
主要功能有接入网络跟四个继电器模块的控制,模拟指针时钟,etc.
方案一:
通过GSM模块的GPRS功能接入网络。
使用SIM900A GSM模块。
方案二:
使用WIFI模块接入网络。
使用ESP8266WIFI模块。
最终选择WIFI模块做为STM32控制器接入网络的辅助硬件,由于这个WIFI模块价格方面都比市场上任意一款GSM模块都低廉,话说够用就好了。
使用Electronics Designer Automatic 软件对部分电路进行设计。制作成PCB板。
接下来开始制作设计好的PCB板。由于是实验性的项目就不发外面工厂打样了。
挑灯夜战,底板设计经历了V1.1最终成型了。
然后进行焊接调试阶段。
由于时间原因STM32 控制端没有做的很全面,OLED只做了一个模拟时钟的界面。最快OLED大多数我是用来Debug的显示一些东西。嘿嘿
第二部分服务器端设计:
功能框图如下图所示:
Port1000 是根STM32控制板通讯的。
Port1001就是给手机APP通讯使用的。
(其实我想补充一点,关于监听端口的。。。。。。原则上我不应该是用Port1000&Port1001的,因为他们属于系统保留的端口。印象中好像是0~1023是系统保留的,监听端口的使用范围是0~65535。除了0~1023后面还有那么多,我也不知道我为什么要用1000根1001。。。。)
小弟库没有银子真的搞一台Server来。只好在PC机上来做咯。
没有技术时就有那么简单就做那么简单。
其实就是一个简单的上位机程序。。。。。而且还是用VB写的。。。。尽管的吐槽吧。
没办法我就只会这些渣渣的东西。因为简单嘛。呵呵。本来还想用猥琐Studio,高级一点的VB.net语言来写写或者使用C#写还没有那么丢人。一点击打开猥琐Studio弹出一个窗口说我的试用期到了,我也赖得去重装或者破解了,时间原因啦。所以就在网上下载了不足20MB的VB6.0开发环境。
然后噼里啪啦敲几行代码就完事了。
VB的编辑界面,调几个控件出来然后就噼里啪啦敲键盘就OK了。
第三部分客户端设计:
先贴个截屏
结果这个APP的界面不仅简陋而且还丑到爆,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
这个APP的功能是通过网络连接到服务器端,把数据发到服务器通过服务器进行转发到STM32控制器。从而达到控制STM32控制器的动作。动作?? 动作就只有四个咯,,,开开开开,关关关关,,,不。应该是八个动作才对。
Android APP的设计是使用Android Studio 1.5版本的集成开发环境制作的。
顺便提一下,有一款可以使用中文编写Android APP的IDE。没错,你没有听错,就是使用中文汉字编写安卓程序的软件。是不是不敢想象那编程界面是怎么样的?
一条if(i>0); ---> 如果(i 大于 0);会是这样吗?有兴趣直接去百度看看。反正我是接受不了的了。
好了这些装备工作都完成了。可以开始联合调试了。
--------------->>>>>开始调试<<<<<------------------------
先是STM32控制端与服务器端连接的测试。当STM32控制端发起一个请求是服务器端会弹出一个窗口,是否同意它的连接。点击确定,这样stm32控制端就连接到了服务器端了。
在服务器端,的软件也可以直接控制STM32控制端的动作开开开开,关关关关。。。。。
然后我使用的Android虚拟机来调试APP。
APP运行的界面
需要在IP端的地方输入你要连接服务器的IP地址还有端口号,然后在点击连接。连接成功后会弹出一条对话。提示“连接成功!”。
像服务器端发起一个连接的请求,需要在服务器端确认才可以连接到服务器端。
当STM32 控制端连接成功后,设计APP端也连接成功了,就可以使用手机去控制STM32控制端的动作了了,还是开开开开,关关关关,哈哈哈哈哈。
再来几张照片
希望可以多举办这样的活动,已经我在这个活动里学习很多东西了,其实我不会Android编程,也不会Java语言,在做这个项目我只用了四天半吧。从开始有这个设想,到实施计划。
第一天就写了STM32的程序,
第二天写了VB的程序,
第三天开始着手Android程序,我都不会,我应该怎么搞?我就按照自己的思想评估了一下它的难易程度。应该跟VB端的差不多的吧。调用Socket就可以实现的东西。于是我就只看了半天Android的视频就开始着手编写我的处女作了,第一个Android程序。有道什么问题不懂就及时利用搜索引擎去解决问题。
第四天继续写Android程序跟联合调试
第五天上午也就是礼拜六,所以这个项目是很赶的,没有做出什么花样来,只是给大家分享了这个一个流程而已,谢谢大家这么辛苦看这么无聊的帖子。
好了,终于编辑完了,现在已经夜深了。