admin 管理员组

文章数量: 887021

【技术交流群:5853529】

目录-2023-02-03-9:35

  • 【技术交流群:5853529】
  • 一、单片机嵌入式
    • 1.1、C语言
    • 1.2、单片机(微控制器)
    • 1.3、电路原理
    • 1.4、通讯协议
    • 1.5、操作系统
    • 1.6、外设
    • 1.7、网络协议
    • 1.8、数据格式
  • 二、WEB前端
    • 2.1、HTML语言
    • 2.2、JavaScript语言
    • 2.3、vue框架 vuetify框架
    • 2.4、Bootstrap框架
    • 2.5、Ajax
    • 2.6、NodeJS环境
  • 三、WEB后端
    • 3.1、Java语言
    • 3.2、数据库SQL
    • 3.3、SpringBoot框架
    • 3.4、安卓开发
  • 四、物联网平台搭建
    • 4.1、云端服务器
    • 4.2、IP、域名、
    • 4.3、端口
    • 4.4、MQTT服务安装
    • 4.5、数据库安装
    • 4.6、Java环境安装
    • 4.7、【核心:业务逻辑分析】-架构师
  • 五、物联网平台使用与拓展
    • 5.1、MCU+以太网模块
    • 5.2、MCU+WIFI模块
    • 5.3、MCU+基站模块
    • 5.4、以太网-SOC
    • 5.5、WIFI-SOC
    • 5.6、联网步骤
    • 5.7、硬件设备接入平台步骤
    • 5.8、云云对接

一、单片机嵌入式

1.1、C语言

  • 万丈高楼平地起,C语言是物联网的基础。只有C语言能承上启下,作为硬件与软件的交互手段。至少需要掌握
  • 1、赋值与条件判断
  • 2、循环与数组

1.2、单片机(微控制器)

  • 1、通常而言,常见的控制器为8位 或者32位 。对于有网络功能的产品,需要更大Flash以及RAM。

1.3、电路原理

  • 1、电路的基本概念即,数字电路、模拟电路。一般来说
  • 2、数字电路当中只有0和1。只分高低,不分渐变。
  • 3、模拟电路当中需要考虑过程,信号的变化受到物理特性的影响,必然需要量变引起质变。

1.4、通讯协议

  • 1、格式+校验 以MODBUS-RTU协议为例,通讯的双方或多方必须先定义一个共同的数据格式。假设
    一次发送8个字节的数据,那么需要规定其中每个字节代表的含义。如第1个字节代表地址,值01H表示
    主机,02H表示从机 依此类推

1.5、操作系统

  • 1、本处只讨论 FreeRTOS,当逻辑复杂,需要处理多个外设快速到来的数据。我们需要分时处理。比如,
    要求用一只手把3个手机的音量同时从0调到最高1000,不能让人听出一高一低。该如何处理,从理论上来说,
    这是不可能的,违反物理现象。但是实际上人无法感知微弱变化。所以只要每个按一下 ,那么既满足了听不出
    一高一低,也满足了几乎同时改变。

1.6、外设

  • 1、GOIO
  • 2、定时器、串口、中断
  • 3、ADC、DAC
  • 4、WIFI 、蓝牙、以太网
  • 等等

1.7、网络协议

  • 1、必须掌握HTTP以及MQTT
  • 2、一般来说都会使用到POST和GET 这是与服务器通讯最基本的方式,能够直接获取以及推送数据到服务器,此处不保持长连接。因此服务器无法在任意时刻联系到客户端设备。

1.8、数据格式

  • 1、一般来说对于物联网,必然用到二进制、十进制、十六进制、ASC码、JSON。其中JSON为必须要掌握且非常有承上启下作用的格式,因为他是HTTP最常用的格式。键值对的概念必须要时刻谨记。

二、WEB前端

2.1、HTML语言

  • 1、超文本标记语言,HTML是基于浏览器的UI控件。他与安卓的控件、LVGL的控件、emwin的控件,是一个概念。要改变其属性如形状、颜色等,则需要借助函数动态修改。
  • 2、CSS 样式表,样式表即HTML的属性,长宽高、颜色等。初始化之后,需要借助函数动态修改。

2.2、JavaScript语言

  • 1、JS作为一个java语言得变种,它的主要任务是处理HTML所表示的业务逻辑,以及HTML本身的属性。可以简单认为它就是HTML的函数。但它同样也是页面与服务器交互的媒介语言。其衍生的语法不同,又可命名为不同的技术,如:Jquery 、Ajax
  • 2、Jquery,可以认为是C与C++的类似关系,封装了不同的功能的变种JS

2.3、vue框架 vuetify框架

  • 1、早期的前端WEB非常简单,如路由器的内置MTML,其不涉及多个界面、多种布局、也不支持多种设备的兼容。因此使用简单的HTML+JS即可完成。但随着技术发展,WEB必须满足多种设备的屏幕显示以及各种布局。因此要实现这些功能而用原生代码去编写,那不仅难度大,而且周期长。无法实现社会发展的需求。因此出现了多种框架,不论是偏重UI还是偏重业务,它们都可成为框架。类似于C与函数库的关系。可以多框架同时存在。

2.4、Bootstrap框架

  • 1、Bootstrap框架为当前较为流行的框架,简单却功能强大。不论是什么类型的网站,都能友好的支持。其UI余业务都支持的比较优秀。是一个大型的框架,兼容性比较强
  • 2、有时候我们需要用到图表、3D、地图,此时会使用到第三方的库,如EChart、three.js、百度地图等

2.5、Ajax

  • 1、异步,可认为是后台操作不引起HTML的任何变化,或者只引起指定变化。

2.6、NodeJS环境

  • 1、前端后端分离时,当前经常使用NodeJS环境来运行前端代码。即后端在服务器运行,前端在客户端中的nodejs环境运行,即可在客户端本机进行页面访问与服务器交互。

三、WEB后端

3.1、Java语言

  • 1、java最基本的操作即类与对象,时刻谨记封装的思想。java语言有很多功能,其强大之处在于对多种业务逻辑的处理。如文件、音视频、以及数据库等

3.2、数据库SQL

  • 1、常见数据库oracle、sqlserver、mysql,本处只讨论免费的MySQL。数据库即存储简单格式的分散数据的集合体。为什么这么说,因为一般来说数据库存储的都是分散的类似于目录的数据。不会存储文件、音视频,注意区分此特性。
  • 2、数据库语言,数据库是有自己的语言的。其语言可以非常复杂。包含各种业务逻辑
  • 3、通配符 ,通配符的概念即用指定格式的符号代表某类事物

3.3、SpringBoot框架

  • 1、后端框架也很多,此处只讨论SpringBoot。本框架的优点是用的人多,上手简单却功能强大,资料齐全。只要会搜索碰到的问题,基本都能找到解决的办法。其支持的各种第三方插件的对接,兼容性较强。

3.4、安卓开发

  • 1、安卓的开发有2种路线,基于控件,早期安卓的APP大多数基于控件,但也视使用场景而言。智能家居行业大多数都使用控件开发路线。因为多数专业开发APP的都是直接学的安卓,而不是浏览器开发,而基于行业需求,此类APP需要明显的按键与显示,因此选择此路线更具行业特殊。
  • 2、基于浏览器,随着电商的发展基于浏览器的开发更普遍,业务逻辑复杂。注重点在于页面内容展示而不在于控件。因此当前大多数电商网站手机端都基于浏览器开发。

四、物联网平台搭建

4.1、云端服务器

  • 1、服务器厂商,腾讯云、阿里云、华为云、百度云,以及其他云。可选择海内外的服务器,离得越近访问延迟越低。一般使用香港服务器就能访问外网。前期阶段可以买一个一年期的轻量服务器,大概一百来块一年。

4.2、IP、域名、

  • 1、IP是一串数字,域名是这串数字的壳子。一般来说服务器厂家都会提供简单的域名解析服务,不收费。购买服务器送IP,购买域名送解析。域名一般几十块钱一年,看标识度收费。

4.3、端口

  • 1、服务器端口与电脑端口相同,不同的通讯类型都有指定的端口。若不按照指定端口设计,容易造成端口占用。网站用80、8080,MQTT用18083、 1883、 8883、 等等
  • 2、一定要注意防火墙的关闭,否则无法访问对应端口

4.4、MQTT服务安装

  • 1、 本处只讨论开源EMQX,当然还有其他MQTT服务。注意MQTT服务是安装在服务器上的一个应用而已,与数据库类似只是一个应用程序。

4.5、数据库安装

  • 1、数据库的安装需要注意数据库的版本,不同的版本,安装方式有细微差别。版本也直接影响到springboot的支持程度。

4.6、Java环境安装

  • 1、当前端和后端整合之后打包部署时需要依赖java环境,即运行jar包。

4.7、【核心:业务逻辑分析】-架构师

  • 1、实际上不论掌握多少技术,不论技术熟练度是多少。业务逻辑才是整个项目的关键影响。因为只有业务逻辑明确,才能在中后期不断地增加功能。若是业务逻辑不清晰,那么一旦后期新的功能与旧的功能冲突,那么只能推翻前期工作。这会非常影响项目的进度。因此开始时一定要充分思考业务范围,技术路线,以及封装,
  • 2、时刻谨记封装的思想,减少耦合,不论是业务逻辑或者功能板块,都要尽量去思考减少耦合度。
  • 3、架构,对于整个项目,最好能有个明确的架构图,方便随时复盘、拓展,因为一般来说一个web项目至少需要1+2+1个人来确保前后期运转,所以如果一人完成,则需要有更加清晰的记录。1个架构师 1个前端 1个后台 1个其他

五、物联网平台使用与拓展

5.1、MCU+以太网模块

  • 以太网模块有很多,模块只处理以太网部分的协议,单片机即使只是8位的,也能与之组合连到互联网。

5.2、MCU+WIFI模块

  • WIFI模块更多 乐鑫、涂鸦、 机智云、 庆科等厂商都有现成模块,单片机即使只是8位的,也能与之组合连到互联网

5.3、MCU+基站模块

  • 1、通常连接基站来上网的分为2G 3G 4G 5G ,速度慢数据小的NBIOT为例,速度快数据大的4G为例,单片机即使只是8位的,也能与之组合连到互联网

5.4、以太网-SOC

  • 1、大多数32位单片机厂家都有一类互联网接口的产品,大多集成了百兆网口,只需要外接一个网络芯片。就能实现以太网的功能。

5.5、WIFI-SOC

  • 1、一般的WIFI单芯片方案都是32位的多,目前对于单片机工程师比较友好的还是全开源的乐鑫。不仅支持WIFI,更支持多种网络协议,不需要自己再去编写一套复杂的发送接收与解析。只要更专注业务即可

5.6、联网步骤

  • 1、设备首先要连接到路由器或者交换机,对于以太网,直接动态获取本地IP,对于WIFI则需要先配置账号密码。账号密码的配置方式可以多种多样,无线广播、内置HTML、串口等都可以。看方便程度。最好都有所支持。

5.7、硬件设备接入平台步骤

  • 1、不论是以太网还是WIFI,第一步是连接到路由器。然后才能访问外网。对于MQTT,需要先在云端创建设备唯一标识,即KEY。然后单片机用KEY去与服务器对接获取分配到的主题,从而订阅发布消息。

5.8、云云对接

  • 1、对于物联网而言,更多的专注点应该在于数据。因为只有数据是别人无法超越的。只要积累了足够多的数据,那别人无法在短期内超。竞争力会更强。不存在弯道超车。因此设备数据最好在自己的服务器,其他数据可以通过云与云的对接,即只要后台去对接就可以。从而实现你控我的设备我控你的设备都不需要设计到设备实体的改变。
  • 2、数据分析、数据报表是未来人工智能的根基,从当下积累数据,才能在给未来提供更多的数据训练。

本文标签: 技能 SpringBoot MQTT MySQL bootstrap