TPYBoard-ESP8266开发板:支持MicroPython兼容NodeMCU
esp8266 技术参考 说明书

3.2.1.
平台介绍 ......................................................................................................................13
第9章
I2C 接口口说明
描述 I2C 的功能、master 接口口和使用用示例例。
第 10 章
I2S 接口口说明
描述 I2S 的功能、模块配置和接口口函数说明。
第 11 章
UART 接口口说明
描述 UART 的功能、硬件资源、参数配置、配置中断、中断处理理
函数示例例流程和屏蔽上电打印。
第 12 章
PWM 接口口说明
附录
附录
GPIO 寄存器器、SPI 寄存器器、UART 寄存器器、定时器器寄存器器。
描述 SDIO 的功能、DEMO 实现方方案、ESP8266 端及 STM32 端
软件说明。
描述 SPI 的功能、SPI 主/从机协议格式和 API 函数说明。
描述 SPI 的功能、从机协议格式、从机状态定义与中断线行行行为和
应用用场景 1 参数配置 .....................................................................................................8
2.3.2.
应用用场景 2 参数配置 .....................................................................................................9
1.3. 串串行行行外设接口口(SPI/HSPI) .....................................................................................................1
ESP8266 WiFi模块介绍

ESP8266 WiFi模块介绍ESP8266 WiFi模块简介ESP8266 是一个完整且自成体系的 WiFi 网络解决方案,能够独立运行,也可以作为 slave 搭载于其他 Host 运行。
ESP8266 在搭载应用并作为设备中唯一的应用处理器时,能够直接从外接闪存中启动。
内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。
另外一种情况是,无线上网接入承担 WiFi 适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易行,只需通过 SPI/SDIO 接口或中央处理器 AHB 桥接口即可。
ESP8266 强大的片上处理和存储能力,使其可通过 GPIO 口集成传感器及其他应用的特定设备,实现了最低前期的开发和运行中最少地占用系统资源。
ESP8266 高度片内集成,包括天线开关balun、电源管理转换器,因此仅需极少的外部电路,且包括前端模块在内的整个解决方案在设计时将所占PCB空间降到最低。
装有ESP8266的系统表现出来的领先特征有:节能VoIP在睡眠/唤醒模式之间的快速切换、配合低功率操作的自适应无线电偏置、前端信号的处理功能、故障排除和无线电系统共存特性为消除蜂窝/蓝牙/DDR/LVDS/LCD干扰。
ESP8266 WiFi模块特点1、802.11 b/g/n。
2、***********,支持 WPA/WPA2 安全模式。
3、超小尺寸模组 11.5mm*11.5mm。
4、内置 10 bit 高精度 ADC。
5、内置 TCP/IP 协议栈。
6、内置 TR 开关、balun、LNA、功率放大器和匹配网络。
7、内置 PLL、稳压器和电源管理组件。
8、802.11b 模式下+ 19.5dBm 的输出功率。
9、支持天线分集。
10、断电泄露电流小于10uA。
11、内置低功率 32 位 CPU:可以兼作应用处理器。
12、SDIO 2.0、 SPI、UART。
13、STBC、1x1 MIMO、2x1 MIMO。
ESP8266无线串口模块介绍

ESP8266⽆线串⼝模块介绍ESP8266浅谈ESP8266是⼀款串⼝转⽆线模块,内部有⾃带固件,操作简单。
⼀、ESP8266简介ESP8266芯⽚是⼀款串⼝转⽆线模芯⽚,内部⾃带固件,⽤户操作简单,⽆需编写时序信号等。
ESP8266 系列模组是安信可(Ai-thinker)公司采⽤乐鑫ESP8266开发的⼀系列wifi 模组模块ESP8266 特性:*802.11 b/g/n*内置低功耗32位CPU:可以兼作应⽤处理器*内置10 bit⾼精度ADC*内置TCP/IP协议栈*内置TR开关、balun、LNA、功率放⼤器和匹配⽹络*内置PLL、稳压器和管理组件*⽀持天线分集*STBC、1x1 MIMO、2x1 MIMO*A-MPDU、A-MSDU的聚合和0.4 s的保护间隔*WiFi @ 2.4 GHz,⽀持 WPA/WPA2 安全模式*⽀持STA/AP/STA+AP⼯作模式*⽀持Smart Config功能(包括Android和iOS设备)*SDIO 2.0、(H) SPI、UART、I2C、I2S、IR Remote Control、PWM、GPIO*深度睡眠保持电流为10 uA,关断电流⼩于5 uA*2 ms之内唤醒、连接并传递数据包*802.11b模式下+20 dBm的输出功率*待机状态消耗功率⼩于1.0 mW (DTIM3)*⼯作温度范围:-40°C - 125°C*通过 FCC, CE, TELEC, WiFi Alliance 及 SRRC 认证模块有如下类别:(图⽚转载于电⼦发烧友,如有侵权,请联系摘下)⼆、硬件连接ESP8266模块组供引出6个引脚,如下图所⽰。
⽤于通信的有四个引脚,也就是和我们单⽚机的USART⼀样的引脚。
连接⽅式按照如下连接:STM32单⽚机端配置硬件配置:单⽚机端TXD(PA9)--ESP8266RXD单⽚机端RXD(PA10)--ESP8166TXD共地。
[Micropython][ESP8266]TPYBoardV202之控制OLED液晶显示屏
![[Micropython][ESP8266]TPYBoardV202之控制OLED液晶显示屏](https://img.taocdn.com/s3/m/2b67526430b765ce0508763231126edb6f1a76c2.png)
[Micropython][ESP8266]TPYBoardV202之控制OLED液晶显示屏[Micropython][ESP8266]TPYBoard V202之控制OLED液晶显示屏1.实验目的1.学习在PC机系统中扩展简单I/O 接口的方法。
2.进一步学习编制数据输出程序的设计方法。
3.学习TPYBoard v202控制OLED显示字符。
2.所需元器件TPYBoard v202开发板一块数据线一条杜邦线若干OLED液晶屏一块3.什么是OLED显示屏(1) OLED显示屏简介有机发光二极管(organic light-emitting diode,OLED)是一种由柯达公司开发并拥有专利的显示技术,这项技术使用有机聚合材料作为发光二极管中的半导体(semiconductor)材料。
聚合材料可以是天然的,也可能是人工合成的,可能尺寸很大,也可能尺寸很小。
其广泛运用于手机、数码摄像机、DVD机、个人数字助理(PDA)、笔记本电脑、汽车音响和电视。
OLED显示器很薄很轻,因为它不使用背光。
本例中使用0.96 寸OLED显示屏,该屏具有高亮度,低功耗屏,显示颜色纯正,在阳光下有很好的可视效果。
模块供电可以是3.3V 也可以是5V,不需要修改模块电路,同时兼容3种通信方式:4 线SPI、3线SPI、IIC,通信模式的选择可以根据提供的BOM表进行跳选。
该模块一共有三种颜色:蓝色、白色、黄蓝双色。
OLED 屏具有多个控制指令,可以控制OLED 的亮度、对比度、开关升压电路等指令。
操作方便,功能丰富。
同时为了方便应用在产品上,预留4个M2 固定孔,方便用户固定在机壳上。
0.96寸OLED显示屏的驱动芯片为:SSD1306(已集成在屏中)。
(2)实际显示效果(3)OLED接口定义1> GND= 电源地2> VCC= 电源地(2.8V~5.5V)3> D0 = 时钟线4> D1 = 数据线5> RES= 复位线6> DC = 数据/命令7> CS = 片选4.具体接线方法5.实物接线图6.程序源代码main.py 程序源代码# main.py -- put your code here!import machinefrom machine import Pin,I2C,SPIimport ssd1306import mathimport timespi = SPI(baudrate=10000000, polarity=1, phase=0, sck=Pin(14,Pin.OUT), mosi=Pin(13,Pin.OUT), miso=Pin(12)) display = ssd1306.SSD1306_SPI(128, 64, spi, Pin(5),Pin(4), Pin(16))led_blue = machine.Pin(2, Pin.OUT) # 设置GPIO2 为输出led_blue.high()try:display.poweron()display.init_display()display.text('TPYBoard V202',1,1)display.text('Hi, TurnipSmart',1,16)display.text('I Love You',1,31)display.text('This is DNA!!',1,46)display.show()time.sleep(3)display.fill(0)#显示DNAfor x in range(0, 128):display.pixel(x, 32+int(math.cos(x/64*math.pi)*30 +2), 1)display.pixel(x, 32+int(math.cos((x+64)/64*math.pi)*30+2), 1) display.show()except Exception as ex:led_blue.low()print('Unexpected error: {0}'.format(ex))display.poweroff()ssd1306程序源代码import pybimport font# ConstantsDISPLAYOFF = 0xAESETCONTRAST = 0x81DISPLAYALLON_RESUME = 0xA4DISPLAYALLON = 0xA5NORMALDISPLAY = 0xA6INVERTDISPLAY = 0xA7DISPLAYON = 0xAFSETDISPLAYOFFSET = 0xD3SETCOMPINS = 0xDASETVCOMDETECT = 0xDB SETDISPLAYCLOCKDIV = 0xD5 SETPRECHARGE = 0xD9SETMULTIPLEX = 0xA8SETLOWCOLUMN = 0x00SETHIGHCOLUMN = 0x10SETSTARTLINE = 0x40MEMORYMODE = 0x20COLUMNADDR = 0x21PAGEADDR = 0x22COMSCANINC = 0xC0COMSCANDEC = 0xC8SEGREMAP = 0xA0CHARGEPUMP = 0x8DEXTERNALVCC = 0x10SWITCHCAPVCC = 0x20SETPAGEADDR = 0xB0SETCOLADDR_LOW = 0x00SETCOLADDR_HIGH = 0x10ACTIVATE_SCROLL = 0x2FDEACTIVATE_SCROLL = 0x2ESET_VERTICAL_SCROLL_AREA = 0xA3RIGHT_HORIZONTAL_SCROLL = 0x26LEFT_HORIZONTAL_SCROLL = 0x27VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL = 0x29VERTICAL_AND_LEFT_HORIZONTAL_SCROLL = 0x2A# I2C devices are accessed through a Device ID. This is a 7-bit# value but is sometimes expressed left-shifted by 1 as an 8-bit value.# A pin on SSD1306 allows it to respond to ID 0x3C or 0x3D. The board# I bought from ebay used a 0-ohm resistor to select between "0x78"# (0x3c << 1) or "0x7a" (0x3d << 1). The default was set to "0x78"DEVID = 0x3c# I2C communication here is either# or <><><><>...# These two values encode the Co (Continuation) bit as b7 and the# D/C# (Data/Command Selection) bit as b6.CTL_CMD = 0x80CTL_DAT = 0x40class SSD1306(object):def __init__(self, pinout, height=32, external_vcc=True, i2c_devid=DEVID):self.external_vcc = external_vccself.height = 32 if height == 32 else 64self.pages = int(self.height / 8)self.columns = 128# Infer interface type from entries in pinout{}if 'dc' in pinout:# SPIrate = 16 * 1024 * 1024self.spi = pyb.SPI(1, pyb.SPI.MASTER, baudrate=rate, polarity=1, phase=0) # SCK: Y6: MOSI: Y8self.dc = pyb.Pin(pinout['dc'], pyb.Pin.OUT_PP, pyb.Pin.PULL_DOWN)self.res = pyb.Pin(pinout['res'], pyb.Pin.OUT_PP, pyb.Pin.PULL_DOWN)self.offset = 0else:# Infer bus number from pinif pinout['sda'] == 'X10':self.i2c = pyb.I2C(1)else:self.i2c = pyb.I2C(2)self.i2c.init(pyb.I2C.MASTER, baudrate=400000) # 400kHzself.devid = i2c_devid# used to reserve an extra byte in the image buffer AND as a way to # infer the interface typeself.offset = 1# I2C command bufferself.cbuffer = bytearray(2)self.cbuffer[0] = CTL_CMDdef clear(self):self.buffer = bytearray(self.offset + self.pages * self.columns) if self.offset == 1:self.buffer[0] = CTL_DATdef write_command(self, command_byte):if self.offset == 1:self.cbuffer[1] = command_byteself.i2c.send(self.cbuffer, addr=self.devid, timeout=5000)else:self.dc.low()self.spi.send(command_byte)def invert_display(self, invert):self.write_command(INVERTDISPLAY if invert else NORMALDISPLAY)def display(self):self.write_command(COLUMNADDR)self.write_command(0)self.write_command(self.columns - 1)self.write_command(PAGEADDR)self.write_command(0)self.write_command(self.pages - 1)if self.offset == 1:self.i2c.send(self.buffer, addr=self.devid, timeout=5000)else:self.dc.high()self.spi.send(self.buffer)def set_pixel(self, x, y, state):index = x + (int(y / 8) * self.columns)if state:self.buffer[self.offset + index] |= (1 << (y & 7))else:self.buffer[self.offset + index] &= ~(1 << (y & 7))def init_display(self):chargepump = 0x10 if self.external_vcc else 0x14precharge = 0x22 if self.external_vcc else 0xf1multiplex = 0x1f if self.height == 32 else 0x3fcompins = 0x02 if self.height == 32 else 0x12contrast = 0xff # 0x8f if self.height == 32 else (0x9f if self.external_vcc else 0x9f) data = [DISPLAYOFF,SETDISPLAYCLOCKDIV, 0x80,SETMULTIPLEX, multiplex,SETDISPLAYOFFSET, 0x00,SETSTARTLINE | 0x00,CHARGEPUMP, chargepump,MEMORYMODE, 0x00,SEGREMAP | 0x10,COMSCANDEC,SETCOMPINS, compins,SETCONTRAST, contrast,SETPRECHARGE, precharge,SETVCOMDETECT, 0x40,DISPLAYALLON_RESUME,NORMALDISPLAY,DISPLAYON]for item in data:self.write_command(item)self.clear()self.display()def poweron(self):if self.offset == 1:pyb.delay(10)else:self.res.high()pyb.delay(1)self.res.low()pyb.delay(10)self.res.high()pyb.delay(10)def poweroff(self):self.write_command(DISPLAYOFF)def contrast(self, contrast):self.write_command(SETCONTRAST)self.write_command(contrast)def draw_text(self, x, y, string, size=1, space=1):def pixel_x(char_number, char_column, point_row):char_offset = x + char_number * size * font.cols + space * char_number pixel_offset = char_offset + char_column * size + point_rowreturn self.columns - pixel_offsetdef pixel_y(char_row, point_column):char_offset = y + char_row * sizereturn char_offset + point_columndef pixel_mask(char, char_column, char_row):char_index_offset = ord(char) * font.colsreturn font.bytes[char_index_offset + char_column] >> char_row & 0x1pixels = ((pixel_x(char_number, char_column, point_row),pixel_y(char_row, point_column),pixel_mask(char, char_column, char_row)) for char_number, char in enumerate(string) for char_column in range(font.cols)for char_row in range(font.rows)for point_column in range(size)for point_row in range(1, size + 1))for pixel in pixels:self.set_pixel(*pixel)。
esb8266参数

esb8266参数
您可能指的是ESP8266,这是一种常用的Wi-Fi模块。
ESP8266有很多参数和配置选项,以下是一些常见的参数:1. `AT+CWMODE`:设置Wi-Fi模式,有三种模式可选:Station (客户端模式)、SoftAP(热点模式)和SoftAP+Station(同时支持客户端和热点模式)。
2. `AT+CWJAP`:连接到指定的Wi-Fi网络,需要提供网络名称和密码。
3. `AT+CIPSTART`:建立TCP或UDP连接到目标服务器,需要提供服务器的IP地址和端口号。
4. `AT+CIPSEND`:发送数据到已经建立的TCP或UDP连接中。
5. `AT+CIPCLOSE`:关闭当前的TCP或UDP连接。
6. `AT+CIFSR`:获取ESP8266的IP地址信息。
7. `AT+RST`:重启ESP8266模块。
以上只是一些常见的命令和参数,ESP8266还有很多其他的AT指令和配置选项可供使用。
具体的参数和用法可以参考ESP8266的官方文档或相关资料。
MicroPython入坑记(二)刷固件(ESP8266ESP32)

MicroPython⼊坑记(⼆)刷固件(ESP8266ESP32)先来个刷写过程:其实各种刷ESP8266/ESP32的软件都可以搞(⽐如刷NodeMCU的软件),不过我这还是出问题了:刷完后⽆限输出乱码。
然后参照Micropython官⽅的教程,⽤esptool先清除所有的FLASH,然后重新刷⼊,正常运⾏:pip install esptool 安装esptool(当然,电脑上要先装好python)esptool.py --port /dev/ttyUSB0 erase_flash 擦除所有的flash,如果是windows系统,则改为具体的COM⼝,⽐如我的电脑是COM4:esptool.py --port COM4 erase_flash刷⼊固件这个命令⽐较长,可以不熟悉命令⾏的可以⽤其他GUI软件代替:esptool.py --port COM4 --baud 460800 write_flash --flash_size=detect 0 esp8266.bin(这个改为具体固件⽂件名)刷完后,⽤putty连接板⼦会出现以下界⾯(如果没有显⽰就先按⼀下RST键):现在就可以执⾏Python代码了,⽀持命令补全哦列出所有的模块:继续探索:在ESP8266上,跟板⼦相关的代码主要在esp machine两个模块上:>>> import esp>>> import machine>>> dir(esp)['__class__', '__name__', 'SLEEP_LIGHT', 'SLEEP_MODEM', 'SLEEP_NONE', 'apa102_write', 'check_fw', 'deepsleep', 'dht_readinto', 'esf_free_bufs', 'flash_erase', 'flash_id', 'flash_read', 'flash_size', 'flash_user_start', 'flash_write', 'free', 'freemem', 'info', 'malloc', 'meminfo', 'neopixel_write', 'osdebug', 'set_native_code_location', 'sleep_type']>>> dir(machine)['__class__', '__name__', 'ADC', 'DEEPSLEEP', 'DEEPSLEEP_RESET', 'HARD_RESET', 'I2C', 'PWM', 'PWRON_RESET', 'Pin', 'RTC', 'SOFT_RESET', 'SPI', 'Signal', 'Timer', 'UART', 'WDT', 'WDT_RESET', 'deepsleep', 'disable_irq', 'enable_irq', 'freq', 'idle', 'mem16','mem32', 'mem8', 'reset', 'reset_cause', 'sleep', 'time_pulse_us', 'unique_id']从上边的输出可以看到,esp主要是显⽰⼀些基础的指令,⽐如深度休眠,申请内存之类,machine主要是操作IO之类先试着点⼀下LED灯(我这个板⼦⾃带了⼀个LED在GPIO2)>>> from machine import Pin>>> led=Pin(2,Pin.OUT)>>> led.on()>>> led.off()是不是很神奇?哈哈然后连接⽹络:>>> import network # 导⼊network包>>> wlan=network.WLAN() #⽣成wlan对象>>> wlan.active(1) #开启wlanmode : sta(5c:cf:7f:0e:25:19) + softAP(5e:cf:7f:0e:25:19)#5 ets_task(4020ed90, 28, 3fff9fa0, 10)add if0>>> wlan.scan() #扫描wlan信号>>> wlan.connect('OpenWrt','xde12345') #连接wlanlascandonestate: 0 -> 2 (b0) state: 2 -> 3 (0)state: 3 -> 5 (10)add 0aid 2cntconnected with OpenWrt, channel 11dhcp client start...ip:192.168.43.203,mask:255.255.255.0,gw:192.168.43.1可以看到,已经连接成功了,这⾥有个很酷的功能,就是esp8266的MicroPython固件是可以⾃动保存⽹络配置(esp32的暂时还不⾏)的,重新上电就能连接上次连接的⽆线⽹络(酷)能联⽹了,⼲点啥事呢^^,发现内置个ntptime模块,玩玩先:>>> import time>>> time.localtime()(2000, 1, 1, 0, 0, 18, 5, 1)现在时间是2000年1⽉1号>>> import ntptime>>> ntptime.time()575780696获取了个时间戳>>> ntptime.settime()(2018, 3, 31, 3, 5, 7, 5, 90)设置时间>>> time.localtime()(2018, 3, 31, 3, 5, 12, 5, 90)>>>等等,这世间不对吧,估计是UTC时间,暂时还没设置时区的地……先这样吧。
esp8266-01wifi模块用户手册

ESP8266 WiFi模块用户手册目录术语和缩写 ....................................................... 错误!未定义书签。
1. 产品简介 ......................................................... 错误!未定义书签。
. 概述 ......................................................... 错误!未定义书签。
产品特性 ................................................. 错误!未定义书签。
模块封装 ................................................. 错误!未定义书签。
模块基本参数 ............................................. 错误!未定义书签。
. 硬件介绍 ..................................................... 错误!未定义书签。
. 功耗 ......................................................... 错误!未定义书签。
. 射频指标 ..................................................... 错误!未定义书签。
. 尺寸 ......................................................... 错误!未定义书签。
. WiFi 天线 .................................................... 错误!未定义书签。
. 推荐炉温曲线 ................................................. 错误!未定义书签。
Mega2560 ESP8266 开发板使用说明书

ManualIt is a customized version of the classic ARDUINO MEGA R3board.Full integration of Atmel ATmega2560microcontroller and ESP8266Wi-Fi IC,with32Mb(megabits)of flash memory,and CH340G USB-TTL converter on a single board!All components can be set up to work together orindependently.on-board:Operating mode is selected by means of DIP switchesSwitch status and mode selection: ArrayAlso,have switch for change of connecting port between ATmega2560andESP8266After choosing the mode of the board can proceed to set up the IDEIt is important that when the ESP8266module is programming,it is necessary to press the button “Mode”To begin open the Arduino IDE programming environment and go to settingsThen in the window that appears in the row,Additional Boards Manager URLs(marked in red) insert /stable/package_esp8266com_index.json link for installation in Arduino IDE additional scripts that would work with the modules ESP8266and click OKThen go to the Tools>Board>Boards ManagerIn the window that appears,scroll through the list down to the script esp8266by ESP8266 Community and click.In the lower right corner will be able to select the version of the software,select the version2.1.0 (the newest)and click the Install buttonAfter installation,close the window and go to Tools>Board and see the list of available devices on the chip programming ESP8266Next,you need to select the card as shown in the picture(Generic ESP8266module)Select the upload speed-115200==========test sketch for ATmega2560=========== void setup(){Serial3.begin(115200);pinMode(13,OUTPUT);delay(500);Serial3.println("AT+CIPMUX=1");delay(2000);Serial3.println("AT+CIPSERVER=1,5000");delay(2000);Serial3.println("AT+CIPSTO=3600");delay(2000);}void loop(){while(Serial3.available()){char Rdata;Rdata=Serial3.read();if(Rdata=='A'|Rdata=='a'){digitalWrite(13,HIGH);delay(50);}else if(Rdata=='B'|Rdata=='b') {digitalWrite(13,LOW);delay(10);digitalWrite(13,HIGH);delay(10);digitalWrite(13,LOW);}else{digitalWrite(13,LOW);}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TPYBoard-ESP8266开发板:支持MicroPython兼容NodeMCU
MicroPython已经实现了ESP8266基本硬件资源接口,包括GPIO、PWM、ADC、软SPI 和硬SPI、IIC、睡眠模式(Deep-sleep mode)、OneWire等,带有APA102、DHT和DS18B20库。
所以使用MicroPython可以快速实现产品原型,比如智能插座,温湿度检测、智能RGB 调光器等。
TPYBoardv202:支持MicroPython兼容NodeMCU
TPYBoard V202是由TurnipSmart公司遵照MIT协议,以MicroPython为基础,研发的一款支持Python和lua语言的Wifi通信开发板,TPYBoard V202有9个通用GPIO口,1个ADC 接口,1个SPI接口,1个I2C 接口,1个USART接口。
TPYBoard V202之Network
网络模块用于配置WiFi连接。
一共两种模式,模式一,是tpyboardv202当sta节点,即连接路由器的节点。
模式二,是tpyboardv202做为ap,充当路由。
使用以下命令创建这些对象的实例:
Lua实例演示之连接路由器实现TCP通信
MicroPython实例演示之呼吸灯
开源,交互式,可编程,低成本
TPYBoardv202支持Lua和MicroPython两种开发语言,同时兼容NodeMCU。
是一款高性价比的micropython开发板,轻松将你带入物联网领域!。