php与硬件交互开发,一文打通前后端与软硬件交互

前言

之前看了一篇文章,直接把我之前所学的很多知识瞬间打通了,这里也给大家分享出来。主要关于如何把前端,后端,以及硬件相结合起来,其实方法有很多种,这里只是给一个思路。首先分别介绍一下软件(前后端),硬件,以及软硬件的交互。

前端

前端就是指我们用户所能够看到的页面,比如Web网页,安卓APP;以Web页面为例,Web页面可以利用一些现有的样式实现炫酷效果,熟悉前端的小伙伴应该知道前端三剑客:html5、css3、javascript。

前端开发中有一些库/框架,降低开发难度,比如jquery、Bootstrap,AngularJs,ReactJs,VueJs,利用这些库/框架,可以很容易搭建自己所要的前端UI(个人用过Java的AWT和Swing,python的PyQt5,MFC,在写样式的时候还是相对复杂的)。

还有一种选择是用微信小程序,来充当前端,或者使用Electron(实际就是利用前端的技术来搭建的)来搭建桌面UI。

后端

后端接收前端发来的请求,处理业务逻辑,数据库的访问,并返回响应结果。后端开发语言比较多了,Java,Python,C,C++,PHP等等,后端开发个人用的比较多的是Java和Python。Java开发在IT行业用的比较多(SSM,SSH等一些框架,Springboot…),在实验室,我用的比较多的是Python了(个人没有使用过java操作硬件,常用Python),Python在处理矩阵很方便,还有很多包都可以直接用pip安装(这里打个广告,自己之前写了一个pip安装的工具,可以自动扫描文件中的包并且下载,点击这里),使用也很方便。

前后端交互

前端通过ip地址和端口号进行后端访问,后端接收前端的数据,进行业务处理,将结果返回到前端。Tomcat是一个web服务器,常用在JavaWeb开发中。因为个人常用python作为后端开发,利用tornado包可以搭建python的一个web服务器,然后前端可以根据ip地址和端口号访问python,执行后端python文件。

硬件

个人熟悉的硬件有51单片机,stm32芯片,Arduino,都是用c语言来编程的,可以利用这些芯片的GPIO来控制其他的电子元件,比如LED,舵机等。

后端与硬件的交互

后端如何给芯片发送数据呢?最简单的就是通过串口了,当然还可以通过其他的比如无线,蓝牙等等。比如在Python中,有serial这个包,可以操作串口,那么硬件连接上只需要用一个数据线连接电脑的usb和芯片的串口。

串接所有技术

如果有这么一个需求:在PC上的一个网页上有前后2个按钮,我们需要通过这2个按钮控制小车的前进和后退,该如何实现呢?

答:如果理清思路,就发现问题并不难,其实质就是就是把前端的数据传送到芯片,当然还可以接收返回来的数据。

1) 前端通过前面介绍的前端技术,框架,很容易实现页面的布局(甚至是酷炫的效果),然后通过AJAX(或者其他的Http请求库,jquery等)发起HTTP请求,访问后端Python的代码。

2) 后端的Python解析前端发来的数据,然后进行处理,这里处理逻辑就看实际需要!!然后Python通过serial操作串口,通过串口给硬件芯片发送数据。

3) 硬件芯片开启串口的监测,接收Python发来的数据,解析并执行相关的操作(比如点亮led,驱动舵机,读取传感器的数据等),然后通过串口给Python后端发送响应数据。

4) Python后端通过串口接收硬件芯片发来的数据,进行处理,然后通过HTTP响应,把数据返回到前端,甚至还可以把数据存入到数据库,常用的数据库Mysql,Redis等。

5) 前端接收到数据就可以展示在页面上。尤其在展示曲线、图上,前端很方便,比如Echarts这个就很好用。

框图

php与硬件交互开发,一文打通前后端与软硬件交互_第1张图片

后续

其实,还有一个很好用的硬件,树莓派。树莓派是一个小型的电脑,可以装linux系统,就和使用linux服务器没啥区别,当做电脑/服务器使用就OK,同时树莓派还引出了IO口供硬件驱动。可以把树莓派当做一个服务器,将前端后端的项目直接部署在树莓派,通过浏览器访问(同一局域网下),同时直接用树莓派驱动硬件。

你可能感兴趣的:(php与硬件交互开发)