物联网分为两方面环境监测和设备控制;环境监测方面主要通过传感器获得数据。 传感器大都会采用RS485通讯,可以通过转接头连接电脑上进行调试。
也可以连接DTU,通过TCP/UDP协议或者mqtt协议将数据连接到TCP服务器或者MQTT服务器上;
而设备控制也可以通过协议发送指令给控制设备,控制设备根据指令执行相应的操作。

1.选择环境
php+linux+Nginx+mysql+influxdb
php 是基础环境,可以选择框架开发,我采用的是laravel;
linux 是服务器环境,服务器由于面向的是传感器数据的采集,所以写入的量会比读出的量,在选择配置是针对业务量进行选择;
nginx 是一个高性能的HTTP和反向代理web服务器,并发量大时要比Apache要更合适;
influxdb是时序数据库,将传感器数据存放到influxdb(时序数据库)中;
mysql是关系型数据,将基础信息及其他非时序类的数据存放在mysql中;
emq是mqtt协议的服务器,用了进行数据的中转;
swoole 在mqtt中可以用swoole做客户端订阅者,在tcp协议中构建tcp服务器方便传感器的请求;
2.认清协议
mqtt协议
MQTT是一种基于发布/订阅模式的轻量级通讯协议,该协议构建于TCP/IP协议上,其分为发布者和订阅者;发布者根据主题发布消息,订阅者可以根据订阅主题来进行数据的交互。
tcp协议
可以长连接和短连接,长连接是客户端请求服务器并建立连接,然后定时上报数据,建立长连接服务器可以对连接的客户端发送命令。短连接是连接服务器上报完数据后自行断开。
由于都是和硬件做交互,上述基本上要用到位运算已经16进制2进制类似的进制转换
3.数据库
传感器类数据存储目前大都会采用时序数据库 ,时序数据库的有点就是存入和读取的速度快,缺点是修改数据这样的操作会很慢。
而一般时序数据库的设计模式就是,分为短期有效数据表和长期有效的数据表,短期的精确到几秒,然后有效时间是一个月或者几个月。长期的精确到小时,有效数据可以是永久,这样既能满足数据的有效利用,也能减轻存储的压力。
然后普通数据内容存在mysql中,方便增删改查的操作,同时量也不会很大也不会有很多的压力。

oss:图片视频等文件专门存在oss中,减轻服务器的存储压力,同时在网站读取图片时,也对读取有很大的帮助,流量大时针对性的扩展oss的配置。
4.视频的连接
如果用海康的产品。目前简单的分两种模式,一种是用萤石云,其对pc端配置后可以直接引入;另一种是对接到阿里云的视频中心,然后再从阿里云中将视频获取到。海康针对PHP没有现成的sdk,直接去连接还需要再做研究
5.数据的展示
大数据屏幕中的图表用些ECharts这样的图表库,地图上针对需求引入百度或者高德的js。

新增思路

当面对小型项目时(总数据量不会超过千万),也可以用redis实现队列,将最新的数据存入到队列中和mysql数据库,队列先进先出,这样查询实时数据和最近历史数据时(少量)直接请求redis,当需要查询历史数据时再请求mysql查询,这样既保证数据实时性,又降低成本。

three.js:基于WebGLD的3D模型库,网页3D模型制作常用技术,很多数据大屏的项目上都会用到它

用PHP做物联网平台经验小谈相关推荐

  1. 【物联网】esp8266 + 物联网平台 + 微信小程序的智能环境监测系统

    文章目录 成果演示 项目介绍 原理 设备端 ------ NodeMcu 物联网平台 ----- 巴法云 与设备端建立TCP连接,实现订阅/发布 设备端发送信息到巴法云 设备端从巴法云接收信息 客户端 ...

  2. 智慧农业: STM32F103ZE+ESP8266+腾讯云物联网平台+微信小程序设计

    一.环境介绍 单片机采用:STM32F103ZET6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可.比如:GSM模块.有线网卡等. 与物联网云平台的通信协议:  标准M ...

  3. 华为云物联网平台微信小程序开发教程2.0【完整详细教程】

    一.简介   在之前曾发布过一篇文章"华为云物联网平台的微信小程序开发",在最近接到部分用户私信在使用开发过程中出现的问题,例如API访问的"401"现象等问题 ...

  4. 应届毕业生Android面试经验小谈

    前言 2016年开始接触Android,从刚开始接触就不断地听到Android市场饱和工作难找等消息. 虽然当时也非常迷茫,不过由于第一次深入接触编程语言,再加上自己的一点兴趣,就一直坚持下来了. 通 ...

  5. 焊接 0.5mm 间距 40pin 软排线底座FPC 的经验小谈

    首先声明我是个焊接新手 最近需要焊接一个 40pin的  软排线底座,0.5mm间距,感觉特别难焊,也是想尽了手头的各种办法,一开始用热风枪吹,结果发现一根也没吹上去,用排头烙铁焊也是,经常性 短路, ...

  6. 浅谈企业级物联网平台

    随著越来越多的公司开始涉足物联网相关领域,这也意味着会有很多原来是做互联网项目开发的同学也不得不开始学习物联网的开发,同样的对于项目经理来说,如何确定一个满足业务需求的物联网技术架构则至关重要,笔者根 ...

  7. 做消息推送 8 年的极光,为何做物联网 JIoT 平台?

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在移动开发里,开发者有三大刚需:统计分析.消息推送.统一登录.其中对于消息推送,有一家企业自移动开发的潮流伊始,便坚持为开发者提供这项基 ...

  8. 微信小程序使用MQTT远程控制单片机——阿里云物联网平台

    微信小程序使用MQTT远程控制单片机--阿里云物联网平台① 阿里云物联网平台的使用 第一,注册阿里云 第二,找到找到物联网平台并创建设备 MQTT协议格式的讲解 MQTT中文文档 固定报头 Fixed ...

  9. 微信小程序连接物联网(三):微信小程序远程遥控宿舍开门 基于NodeMCU通过MQTT协议连接阿里云物联网平台

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

最新文章

  1. 活动预告丨SMP十周年系列论坛第一期:社交机器人论坛开幕
  2. Halcon初学者知识 【11】自定义算子和应用实例
  3. 自己动手实现的 Spring IOC 和 AOP - 上篇
  4. 每日一题题目6:二分查找
  5. python求数组最大值_Python算法与数据结构--求所有子数组的和的最大值
  6. 手把手教你全家桶之React(一)
  7. 关于Hibernate 3
  8. C语言extern的用法
  9. Python面试真题第二节
  10. 下一代面向知识的 BI 到底有何不同,从 nextionBI 数据解读能力中一探究竟
  11. 项目实战之服务端分页的实现——SQL
  12. 命令行 sql 将结果导出到文件
  13. AutoHotkey 命令列表
  14. codesys 简单案例_CoDeSys编程手册范本
  15. win7如何设置电脑自动拨号?
  16. The signing key‘s size is 1024 bits which is not secure enough for the RS256 algorithm.
  17. tkinter在Mac下运行主界面显示黑色
  18. 【游戏面包屑】时间回溯·逆流吧
  19. 学校教育网站建设方案
  20. 使用任务计划实现宽带pppoe断线自动连接 - Windows

热门文章

  1. 循环 异常 java_java – 增强的循环异常
  2. 如何读取不确定列数的txt文档?
  3. 原生php ajax post_使用原生ajax发送post请求完整案例
  4. 吴恩达机器学习(二十二)精确率和召回率
  5. win7家庭版升级到旗舰版实例
  6. three相机在模型上_Three.js加载外部模型的教程详细解说
  7. oracle选择列时重命名列,oracle修改列的属性,给列重命名
  8. 一文解读Nginx+Tomcat实现负载均衡、动静分离
  9. python微信点赞收费吗_点赞关于怎样微信刷投票数,我来教你微信投票怎样花钱买票...
  10. HPPC,循环工况测试,EIS测试