一种基于Lora通信的智能滴灌系统设计方案

最近弄了一个智能滴灌系统设计,其设计方案如下:
一种基于Lora通信的智能滴灌系统设计方案
工作流程为:初始化阶段,主机会发送同步信号给从机(节点),然后从机回复。如果是多节点,使用时分复用方式,时分复用即主机同时发送信号给各节点,然后各个节点按在不同的时间间隔之后返回数据,如下图。
一种基于Lora通信的智能滴灌系统设计方案
从机接收到传感器数据通过Lora模块将数据发送给主机,在主机上挂载OLED液晶显示屏可以实时显示传感器的数据,按键更改阈值。主机通过USB-TTL连接电脑串口,通过C语言中的printf语句来上报到串口。
在上位机中主要的工作就是实时显示传感器的数据和上位机更改阈值然后下发到主机。app用C#写的上位机,在C#中有串口类可以调用。其实利用USB-TTL连接还是有一些限制,可以使用无线串口代替,在空间上就不受那么多限制,但是要考虑无线串口的传输数据的稳定性和可靠性,不要有丢包现象。然后通过用串口连接网关软件,进行设置联网。先在云服务器上部署tomcat服务器,其作用是解决浏览器的跨域访问问题。然后部署mysql数据库,我的云服务器是ubuntu的,部署mysql只需要三条命令:
1)sudo apt-get install mysql-server
2)sudo apt install mysql-client
3)sudo apt install libmysqlclient-dev

当然了,在root用户下可以不用加sudo,普通用户切换root用户可以用sudo su命令。官方用来连接云服务器是putty,我觉得并不是那么好用,就用了Xshell来连接。

看网上的配置帖子要注意看他们的系统,有一些他们没说系统的,一上来就放代码,新手按照这个操作就会碰壁。yum命令是在CentOS系统中用的,如果在ubuntu系统使用yum部署mysql就会出现很多问题安装不成功,最频繁的就是包依赖的问题。
html页面与数据库的交互需要用到ajax来异步通信,ajax对象返回值有两种类型:XML和字符串形式。XML格式数据在标签中,JavaScript操作XML DOM可以获取标签中的数据。这样一来需要将数据库中的数据转换成XML格式数据,并不太能保证实时性。可以使用PHP直接连接mysql数据库,不需要中转。如果实力允许,做个微信小程序获取云服务器中的数据显示,我是刚开始想做小程序然后选择了腾讯云,因为在腾讯云与小程序交互好配置。

最后补充一下,水流传感器用的咖啡机流量计代替的,输出的一个正弦脉冲,按商家给出的数据利用单片机的定时器输入捕获可以计算脉冲数转换为水流量就可以了。