Sublime Text3默认不支持GBK的编码格式,因此打开GBK的代码文件中文字符会出现乱码现象。非常影响正常使用,解决该问题的办法,就是安装相关的插件包。
具体流程:
本文是基于自主设计的CA-02模块编写的基础教程系列的第一篇,在接下来的一段时间里我会继续围绕CA-02模块做一些基础教程和工程上的应用。
可能会有人对CAN总线比较陌生,在之前的博文中,我已经简单介绍了关于CAN总线的特殊性及和其他通信方式的对比,这里就不再赘述了。
这里我们为什么要用ESP8266而不是其他MCU,比如51单片机,stm32单片机等,其实实现原理上都是一样的只不过我们在使用ESP8266的时候可以使用Arduino进行编写程序,这就意味着我们可以引用其他人编写好的代码库,所谓库,就是将底层寄存器的操作封装起来,我们无需关心具体寄存器是怎么操作的,直接使用API函数编程就可以了,这对于入门来说非常容易。使用ESP8266的原因还有一个就是ESP8266自带WIFI,这就意味着我们可以做一个CAN总线的网关,无论是在智能家居、工业控制还是其他物联网的应用中,网关是必不可少的组件,所以我们只要学会使用这些,基本上实现一个智能网关就非常容易了。
预告一下ESP32的相关教程,目前来说使用ESP32作为网关的话性价比要比ESP8266要高一些,这里暂不阐明原因,后面也会有关于ESP32的教程,会具体说明原因,ESP8266作为终端设备的性价比基本上是物联网应用中最高的,所以ESP8266的学习应用是必须的
文章主要对ESP8266进行简单介绍,展示了常用模块及开发板的引脚图
HardwareSerial 库是c++编写的,应用于esp32 Arduino应用环境的串口驱动库,我们在安装好ESP32的Arduino开发环境后就已经集成了这个串口操作库,在实际应用时直接引用就可以了。
注意:ESP32共有3个UART端口, 其中UART1用于Flash读/写,我们使用串口1时需要注意,需要将串口1映射到其他GPIO上即可,我测试了一下GPIO12、GPIO13,使用串口1时可以完美运行
串口名 | Arduino名 | TX | RX |
---|---|---|---|
UART0 | Serial | pin1 | pin3 |
UART1 | Serial1 | pin10 | pin9 |
UART2 | Serial2 | pin17 | pin16 |
demo程序,将串口0接收到的数据传个串口1,再将串口1接受到的数据传输得串口0
问题
你想实现一个服务器,通过TCP协议和客户端通信。
解决方案
创建一个TCP服务器的一个简单方法是使用 socketserver 库。例如,下面是一个简单的应答服务器:
1 | from socketserver import BaseRequestHandler, TCPServer |
在这段代码中,你定义了一个特殊的处理类,实现了一个 handle() 方法,用来为客户端连接服务。 request 属性是客户端socket,client_address 有客户端地址。 为了测试这个服务器,运行它并打开另外一个Python进程连接这个服务器: