找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

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等开发板,作为一块独立的开发板使用。它拥有GPIOI2CADCSPIPWM等模块,可以用它做大多数MCU能做的工作,且性能甚至远超多数MCUESP8266EX 的工作温度范围大,且能够保持稳定的性能,能适应各种操作环境,可以说目前ESP8266目前占据了相当大的市场份额,尤其是米家、百度、阿里等平台都在使用ESP8266

带着主角光环的WeMos D1

WeMos D1开发板全称是WeMos D1 WiFI UNO R3开发板,基于ESP-12E,而且兼容Arduino,有了这款物联网开发板,我们就可以愉快的使用Arduino方式开发ESP8266,玩转物联网项目。
11.jpg
技术参数
处理器 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
25.jpg
所有的 IO 工作電平為 3.3V,可瞬間承受 5V;
除 D2 外,所有 I/O 都支持中斷,PWM,I2C,跟 1-wire;


开发环境配置
Arduino IDE下载


26.png


在右侧选择你对应的系统版本下载,Windows用户可以选择“Windows免安装ZIP包”,解压后可直接运行。
或者Windows用户也可以直接通过我司网盘下载1.8.12版本IDE
提取码:vuhu
下载后直接解压点击arduino.exe运行即可,无需安装,注意如果提示有新版本可供升级,直接忽略即可。

USB驱动安装

提取码:jd2o
下载驱动安装包,解压之后,直接点击运行EXE安装文件。

IDE配置
第一步:打开Arduino,选择“文件/首选项”;

27.png


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

29.png

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

30.png


31.png

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

32.png

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

33.png


其他选项设置如下:

34.png


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

35.png


编程调试

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

36.png


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

  4. void setup() {
  5. Serial.begin(115200);
  6. WiFi.mode(WIFI_STA);
  7. WiFi.begin(WIFI_SSID, WIFI_PASSWD);
  8. WiFi.setAutoConnect (true);
  9. WiFi.setAutoReconnect (true);
  10. while (WiFi.status() != WL_CONNECTED)
  11. {
  12. delay(1000);
  13. Serial.println("connecting......");
  14. }
  15. Serial.println("Connected to AP");
  16. delay(3000);
  17. }

  18. void loop() {
  19. if (WiFi.status() == WL_CONNECTED)
  20.   {
  21. Serial.println("Connect to router success");
  22. Serial.println(String("local IP is ")+WiFi.localIP().toString());
  23.     Serial.println(String("Subnet mask is ")+WiFi.subnetMask().toString());
  24.     Serial.println(String("gatewayIP address is ")+WiFi.gatewayIP().toString());
  25.     Serial.println(String("dnsIP address is ")+WiFi.dnsIP().toString());
  26.     Serial.println(String("SSID is ") + WiFi.SSID());
  27.     Serial.println(String("PSK is ") + WiFi.psk());
  28.     Serial.println(String("BSSID is ") + WiFi.BSSIDstr());
  29.     Serial.println(String("RSSI is ") + WiFi.RSSI());
  30.   }else
  31.   {
  32.     Serial.println("Connect to router failed");  
  33.   }
  34.   // Wait a bit before scanning again
  35.   delay(1000);
  36. }
复制代码
上述程序中,首先设置模块为WIFI_STA模式,然后程序调用WiFi.begin()连网后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址,并在loop()函数中循环打印IP地址网络信息。

B:静态IP方式连接WiFi热点
  1. #include <ESP8266WiFi.h>
  2. #define WIFI_SSID "xingyuanli"
  3. #define WIFI_PASSWD "12345678"
  4. IPAddress local_static_ip(192, 168, 43, 10);
  5. IPAddress local_gateway(192, 168, 43, 1);
  6. IPAddress local_subnet(255, 255, 255, 0);
  7. IPAddress local_dns_ip(192, 168, 43, 1);
  8. void setup() {
  9. Serial.begin(115200);
  10. WiFi.mode(WIFI_STA);
  11. WiFi.begin(WIFI_SSID, WIFI_PASSWD);
  12. WiFi.config(local_static_ip, local_gateway, local_subnet, local_dns_ip);
  13. WiFi.setAutoConnect (true);
  14. WiFi.setAutoReconnect (true);
  15. while (WiFi.status() != WL_CONNECTED)
  16. {
  17. delay(1000);
  18. Serial.println("connecting......");
  19. }
  20. Serial.println("Connected to AP");
  21. Serial.println(String("mac address is ")+WiFi.macAddress());
  22. delay(3000);
  23. }
  24. void loop() {
  25. if (WiFi.status() == WL_CONNECTED)
  26.   {
  27.     Serial.println("Connect to router success");
  28.     Serial.println(String("Subnet mask is ")+WiFi.subnetMask().toString());
  29.     Serial.println(String("gatewayIP address is ")+WiFi.gatewayIP().toString());
  30.     Serial.println(String("dnsIP address is ")+WiFi.dnsIP().toString());
  31.     Serial.println(String("SSID is ") + WiFi.SSID());
  32.     Serial.println(String("PSK is ") + WiFi.psk());
  33.     Serial.println(String("BSSID is ") + WiFi.BSSIDstr());
  34.     Serial.println(String("RSSI is ") + WiFi.RSSI());
  35.   }else
  36.   {
  37.     Serial.println("Connect to router failed");  
  38.   }
  39.   // Wait a bit before scanning again
  40.   delay(1000);
  41. }
复制代码
上述程序中,设置固定IP地址后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址,并在loop()函数中循环打印IP地址网络信息。

C:修改模块DHCP主机名
  1. #include <ESP8266WiFi.h>
  2. #define WIFI_SSID "xingyuanli"
  3. #define WIFI_PASSWD "12345678"
  4. #define WIFI_HOSTNAME "ESP8266_test01"
  5. void setup() {
  6. Serial.begin(115200);
  7. WiFi.mode(WIFI_STA);
  8. WiFi.begin(WIFI_SSID, WIFI_PASSWD);
  9. WiFi.setAutoConnect (true);
  10. WiFi.setAutoReconnect (true);
  11. while (WiFi.status() != WL_CONNECTED)
  12. {
  13. delay(1000);
  14. Serial.println("connecting......");
  15. }
  16. Serial.println("Connected to AP");
  17. Serial.println(String("mac address is ")+WiFi.macAddress());
  18. Serial.println(String("hostname is ")+WiFi.hostname());
  19. WiFi.hostname(WIFI_HOSTNAME);
  20. delay(3000);
  21. }
  22. void loop() {
  23. if (WiFi.status() == WL_CONNECTED)
  24.   {
  25.     Serial.println("Connect to router success");
  26.     Serial.println(String("hostname is ")+WiFi.hostname());
  27.   }else
  28.   {
  29.     Serial.println("Connect to router failed");  
  30.   }
  31.   // Wait a bit before scanning again
  32.   delay(1000);
  33. }
复制代码
上述程序中,首先设置模块为WIFI_STA模式,然后程序调用WiFi.begin()连网后后等待,直到WiFi.status()等于WL_CONNECTED,程序继续往下执行,然后打印MAC地址和hostname,之后设置hostname"ESP8266_TEST1",并在loop()函数中循环打印hostname信息。




分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册