ZCZ 发表于 2020-7-25 10:02:13

WEMOS D1 WIFI开发板基础资料

WEMOS D1 WIFI开发板基础资料
基础知识Arduino简介
Arduino是一款便捷灵活、方便上手的开放源代码硬件项目平台。Arduino板基于Atmel的微控制器,增加使其能够适用大部分运行条件的电子元件,并引出简单的I/O接口,方便快发开发应用。Arduino的软件部分主要包含ArduinoIDE以及相关的板级支持包和丰富的第三方组件库。Arduino特点:跨平台、简单清晰、开放软硬件、发展迅速。
ESP8266简介
ESP8266EX 内置超低功耗Tensilica L106 32 位 RISC 处理器,CPU 时钟速度最高可达 160 MHz,支持实时操作系统(RTOS) 和 Wi-Fi 协议栈,可将高达 80% 的处理能力留给应用编程和开发ESP8266模块可以独立于Arduino等开发板,作为一块独立的开发板使用。它拥有GPIO、I2C、ADC、SPI、PWM等模块,可以用它做大多数MCU能做的工作,且性能甚至远超多数MCU。ESP8266EX 的工作温度范围大,且能够保持稳定的性能,能适应各种操作环境,可以说目前ESP8266目前占据了相当大的市场份额,尤其是米家、百度、阿里等平台都在使用ESP8266。
带着主角光环的WeMos D1
WeMos D1开发板全称是WeMos D1 WiFI UNO R3开发板,基于ESP-12E,而且兼容Arduino,有了这款物联网开发板,我们就可以愉快的使用Arduino方式开发ESP8266,玩转物联网项目。技术参数 处理器 ESP-8266EX 工作电压 3.3V            输入电压 6-24V I/O 数量 11 AD 输入电压 0-3.3V Flash 4MB    SRAM 32KB    DRAM80KB 时钟频率 80MHz/160Mhz    网络 802.11 b/g/n 尺寸规格:长68.6mm x 宽53.4mm 重量 21g所有的 IO 工作電平為 3.3V,可瞬間承受 5V;除 D2 外,所有 I/O 都支持中斷,PWM,I2C,跟 1-wire;

开发环境配置Arduino IDE下载官网下载地址:https://www.arduino.cc/en/Main/Software



在右侧选择你对应的系统版本下载,Windows用户可以选择“Windows免安装ZIP包”,解压后可直接运行。或者Windows用户也可以直接通过我司网盘下载1.8.12版本IDE:链接:https://pan.baidu.com/s/1MqF3oDutBVKd1U87MuSkWg提取码:vuhu下载后直接解压点击arduino.exe运行即可,无需安装,注意如果提示有新版本可供升级,直接忽略即可。
USB驱动安装
网盘链接:https://pan.baidu.com/s/1VCn75WdO1BPqdzF78lFuXQ提取码:jd2o下载驱动安装包,解压之后,直接点击运行EXE安装文件。
IDE配置第一步:打开Arduino,选择“文件/首选项”;


第二步:http://arduino.esp8266.com/stable/package_esp8266com_index.json,将这个json地址键入下图所示开发板网址管理器的位置,点击“好”;

点击“工具”->“开发板”->“开发板管理器”,在开发板管理器搜索8266就能找到要的支持文件了;



版本选择最新版本,然后点击安装,安装完成后点击关闭即可。以上为官方安装方式,由于其服务器在国外,所以国内用户的话,下载会比较慢,有时会无法安装成功,所以我们整理出国内用户可以使用的快捷方式,方式仅供参考,仅供学习,由于Arduino非我方软件,故若我们的方式失效,用户需自行学习解决,不接受因此而对我们作出的差评。下载ESP8266安装包:链接:https://pan.baidu.com/s/1A1lIOgI4Esmx3mgntZDY9w提取码:6pzn下载并解压“packages-8266”文件,点击运行“8266_packages_2.7.1.exe”执行安装。安装完成后打开IDE,然后选择工具->开发板->ESP8266 Modules--WeMos D1 R1.

具体端口可以在我的电脑--管理--设备管理器--端口中查看。


其他选项设置如下:


第五步:测试点击文件--示例--01.Basics--Blink,点击上传,将程序烧录进开发板,板载蓝色LED灯一秒一闪,则说明安装成功。


编程调试
WeMos中定义的arduino引擎编号其实是与ESP8266上的GPIO引擎编号对应,所以数字编号与IO口编号不是一一对应的,在使用起来会有些不便,其实引脚也可以用D0~D15直接操作IO口,这样就与开发板上的资源对应了。如pinMode(2, OUTPUT);可以直接写为:pinMode(D9, OUTPUT);ESP8266WiFi库主要包含Station、Soft AP、config、WiFiClient、WiFiServer、scan、hostname,这里主要介绍Station相关的函数使用。


连接WIFI测试;A:动态IP方式连接WiFi热点#include <ESP8266WiFi.h>
#define WIFI_SSID "xingyuanli"
#define WIFI_PASSWD "12345678"

void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWD);
WiFi.setAutoConnect (true);
WiFi.setAutoReconnect (true);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("connecting......");
}
Serial.println("Connected to AP");
delay(3000);
}

void loop() {
if (WiFi.status() == WL_CONNECTED)
{
Serial.println("Connect to router success");
Serial.println(String("local IP is ")+WiFi.localIP().toString());
    Serial.println(String("Subnet mask is ")+WiFi.subnetMask().toString());
    Serial.println(String("gatewayIP address is ")+WiFi.gatewayIP().toString());
    Serial.println(String("dnsIP address is ")+WiFi.dnsIP().toString());
    Serial.println(String("SSID is ") + WiFi.SSID());
    Serial.println(String("PSK is ") + WiFi.psk());
    Serial.println(String("BSSID is ") + WiFi.BSSIDstr());
    Serial.println(String("RSSI is ") + WiFi.RSSI());
}else
{
    Serial.println("Connect to router failed");
}
// Wait a bit before scanning again
delay(1000);
}
上述程序中,首先设置模块为WIFI_STA模式,然后程序调用WiFi.begin()连网后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址,并在loop()函数中循环打印IP地址网络信息。
B:静态IP方式连接WiFi热点#include <ESP8266WiFi.h>
#define WIFI_SSID "xingyuanli"
#define WIFI_PASSWD "12345678"
IPAddress local_static_ip(192, 168, 43, 10);
IPAddress local_gateway(192, 168, 43, 1);
IPAddress local_subnet(255, 255, 255, 0);
IPAddress local_dns_ip(192, 168, 43, 1);
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWD);
WiFi.config(local_static_ip, local_gateway, local_subnet, local_dns_ip);
WiFi.setAutoConnect (true);
WiFi.setAutoReconnect (true);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("connecting......");
}
Serial.println("Connected to AP");
Serial.println(String("mac address is ")+WiFi.macAddress());
delay(3000);
}
void loop() {
if (WiFi.status() == WL_CONNECTED)
{
    Serial.println("Connect to router success");
    Serial.println(String("Subnet mask is ")+WiFi.subnetMask().toString());
    Serial.println(String("gatewayIP address is ")+WiFi.gatewayIP().toString());
    Serial.println(String("dnsIP address is ")+WiFi.dnsIP().toString());
    Serial.println(String("SSID is ") + WiFi.SSID());
    Serial.println(String("PSK is ") + WiFi.psk());
    Serial.println(String("BSSID is ") + WiFi.BSSIDstr());
    Serial.println(String("RSSI is ") + WiFi.RSSI());
}else
{
    Serial.println("Connect to router failed");
}
// Wait a bit before scanning again
delay(1000);
}
上述程序中,设置固定IP地址后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址,并在loop()函数中循环打印IP地址网络信息。
C:修改模块DHCP主机名#include <ESP8266WiFi.h>
#define WIFI_SSID "xingyuanli"
#define WIFI_PASSWD "12345678"
#define WIFI_HOSTNAME "ESP8266_test01"
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWD);
WiFi.setAutoConnect (true);
WiFi.setAutoReconnect (true);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("connecting......");
}
Serial.println("Connected to AP");
Serial.println(String("mac address is ")+WiFi.macAddress());
Serial.println(String("hostname is ")+WiFi.hostname());
WiFi.hostname(WIFI_HOSTNAME);
delay(3000);
}
void loop() {
if (WiFi.status() == WL_CONNECTED)
{
    Serial.println("Connect to router success");
    Serial.println(String("hostname is ")+WiFi.hostname());
}else
{
    Serial.println("Connect to router failed");
}
// Wait a bit before scanning again
delay(1000);
}
上述程序中,首先设置模块为WIFI_STA模式,然后程序调用WiFi.begin()连网后后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址和hostname,之后设置hostname为"ESP8266_TEST1",并在loop()函数中循环打印hostname信息。



页: [1]
查看完整版本: WEMOS D1 WIFI开发板基础资料