1.ESP8266 可以用来做串口透传,PWM 调控,远程控制开关:控制插座、开关、电器等。

2.ESP8266有几种不同的使用方式,适用于不同水平的开发工作者。

  • 使用AT指令进行操作:这是最常见的方式,也是最简单是一种方式。无需编程,使用PC端的串口助手配合简单的指令就可以实现,也可以配合单片机发送指令使用。
  • LUA语言编程:这是一种单独8266编程的方式,可以不依靠单片机和串口调试软件,直接把程序编写到8266内部。
  • Arduino 开发环境编程:这个接触过Arduino的都会比较熟悉。可以直接在Arduino ide的环境下使用Arduino的开发方式进行开发。个人比较推荐这种方式,因为比较容易接受与理解。

3.Arduino Core for ESP8266 是基于RTOS-SDK的,而且更新得比较快。支持OTA (over-the-air Update) 。它是一个在Arduino平台上开发ESP8266的插件,特别适合有Arduino开发经验的入门者。ESP8266 Arduino内核提供了使用TCP和UDP通过WiFi进行通信的库,设置HTTP、mDNS、SSDP和DNS服务器,进行OTA更新,在闪存中使用文件系统,使用SD卡、伺服器、SPI和I2C外围设备。

4.ESP8266共有三种工作模式,分别是Station模式【客户端模式】,AP模式【接入点模式】,AP+Station模式【混合模式】。ESP8266出厂默认是第三种模式。其中STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。AP 模式:ESP8266 模块作为热点,手机或电脑直接与模块连接,实现局域网无线控制。STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。

5.透传即是透明传送,是指传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。在数据的传输过程中,这组数据不发生任何形式的改变,即不竭断,不分组,不编码,不加密,不混淆等等,仿佛传输过程是透明的一样,原封不动地到了最终接收者手里。
透传模式的要求:

  • 透传模式只能在单链接模式下开启;
  • 模块开启服务器模式时,必须开启多链接模式,所以只能作为单链接模式下的客户端。

透传与非透传的区别:开启透传模式,可以连续的发送数据,而非透传模式下,每次发送数据前都需要发送相关的发送数据的AT指令。

6.MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。  MQTT的特点:MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,

小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;说简单一点,它就是一个即时通讯协议,在占用很少的资源情况下,可完成即时通讯。所以说esp8266采用mqtt通讯协议,是一个很不错的选择,使用esp8266+mqtt实现一个物联网的小实验,也是很容易的,其运行的效率也很高。

它具有以下主要的几项特性:

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
  • 对负载内容屏蔽的消息传输;
  • 使用 TCP/IP 提供网络连接;

有三种消息发布服务质量:

  • “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
  • “至少一次”,确保消息到达,但消息重复可能会发生。
  • “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

ESP8266相关知识笔记的更多相关文章

  1. Linux相关知识笔记

    Quagga要在linux下编译并配置运行,所有,学习一点linux的基础知识. 安装的Ubuntu,用户名linux,密码1 使能Ubuntu的IP转发功能,需要修改etc/sysctl.conf和 ...

  2. VBS 相关知识 笔记

    1.Option Explicit: 必须声明了变量之后才能赋值.  原话:语句在模块级别中使用,强制显式声明模块中的所有变量. w3scholl看到的内容: 变量声明 您可以使用 Dim.Publi ...

  3. 奥展项目笔记05--域名、端口、Nginx相关知识笔记

    1.我国的电信运营商是默认封闭80端口的. 中国电信屏蔽ADSL用户80端口 只是做应用服务器的话你可以使用别的端口. 80端口电脑上同时有各种各样的程序在运行,他们都需要借助网络来进行通信.例如,你 ...

  4. android开发相关知识笔记

    1.xpage页面打开: openPage(TestFragment.class) openPage("标识") // 页面打开等待结果返回: openPageForResult( ...

  5. 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识

    从之前笔记的四个程序中(http://www.cnblogs.com/take-fetter/p/8278864.html),我们可以看出分别使用了谷歌地理编码API(对URL表示地理信息查询和如何获 ...

  6. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

  7. Elasticsearch集群知识笔记

    Elasticsearch集群知识笔记 Elasticsearch内部提供了一个rest接口用于查看集群内部的健康状况: curl -XGET http://localhost:9200/_clust ...

  8. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  9. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

随机推荐

  1. 【Python】神器:Streamlit,仅使用Python开发一个运维管理后台(不需要编写html,js,css)

    背景 作为SRE,我们有很多很多自动化的工具,大部分都是自动运行的,还有一部分是CLI,我们一直苦于没有一个自己的管理后台网站,受限于前端能力薄弱,开发出来的网页只能说凑活能用,但是不好用. 现在我们 ...

  2. Git操作_从github远程仓库克隆到本地仓库, 本地代码提交

    实现目的: 从github远程仓库克隆到本地仓库:本地代码提交到远程仓库. 一.从github远程仓库克隆到本地仓库: 命令行切换到指定的仓库想存放的目录,执行如下命令:git clone  远程仓库 ...

  3. SpringBoot——配置类实现WebMvcConfigurer接口来配置拦截器、view-controller、视图解析器等

    目的:为了保留SpringBoot对SpringMVC自动配置,另外我们还想要做一些自己拓展的功能 如何做扩展? 以配置view-controller实现跳转为例: 原先在SpringMvc中我们写v ...

  4. 怎么回答面试官:你对Spring的理解?

    最近看了点Spring的源码,正好来稍微扯一扯,帮一部分培训班的朋友撕开一道口子,透透气.我自己都是看的培训班视频,所以也算培训班出身吧.所以下文开口闭口"培训班",不要觉得是我在 ...

  5. 从1+1=2来理解Java字节码从1+1=2来理解Java字节码

    编译"1+1"代码 首先我们需要写个简单的小程序,1+1的程序,学习就要从最简单的1+1开始,代码如下: 写好java类文件后,首先执行命令javac TestJava.java ...

  6. 在Intellij IDEA中查看TestNG自带的测试报告

    执行TestNG框架的测试用例,会生成测试报告.如果在IDEA中看不到,可做如下配置. 1. 点击IDEA工具栏中Run->Edit Configuration菜单,或者直接点击右上角编辑配置的 ...

  7. 合肥某小公司面试题:Spring基础

    <对线面试官>系列目前已经连载25篇啦!有深度风趣的系列! [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 & ...

  8. Golang获取CPU、内存、硬盘使用率

    Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent ...

  9. 『无为则无心』Python基础 — 13、Python流程控制语句(条件语句)

    目录 1.流程控制基本概念 2.选择结构(条件语句) (1)条件语句概念 (2)if语句语法 (3)if...else...语句 (4)多重判断 (5)if语句嵌套 3.应用:猜拳游戏 4.三元运算符 ...

  10. ClickHouse源码笔记6:探究列式存储系统的排序

    分析完成了聚合以及向量化过滤,向量化的函数计算之后.本篇,笔者将分析数据库的一个重要算子:排序.让我们从源码的角度来剖析ClickHouse作为列式存储系统是如何实现排序的. 本系列文章的源码分析基于 ...