【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第1张图片

知识点:ESP8266
低功耗、高集成度的 Wi-Fi 芯片
仅需 7 个外围元器件
超宽工作温度范围:-40°C 至 +125°C
ESP8285 - ESP8266 内封 8 Mbit Flash

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第2张图片
【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第3张图片
【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第4张图片

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目:将内置LED连接到Sigma Delta源,呼吸灯

Arduino实验开源代码

/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266
项目:将内置LED连接到Sigma Delta源,呼吸灯
*/

#include "sigma_delta.h"

void setup() {

  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT); // blinkie & sigma-delta mix
  uint32_t reqFreq = 1000;
  uint32_t realFreq;

  realFreq = sigmaDeltaSetup(0, reqFreq); // chose a low frequency

  Serial.println();
  Serial.println("Start Sigma Delta Example\n");
  Serial.printf("Frequency = %u\n", realFreq);

}

void loop() {

  uint8_t duty, iRepeat;

  Serial.println("Attaching the built in led to the sigma delta source now\n");
  Serial.printf("Current duty = %i, prescaler = %i\n", sigmaDeltaRead(), sigmaDeltaGetPrescaler());
  sigmaDeltaAttachPin(LED_BUILTIN);

  Serial.println("Dimming builtin led...\n");
  for (iRepeat = 0; iRepeat < 10; iRepeat++) {
    for (duty = 0; duty < 255; duty = duty + 5) {
      sigmaDeltaWrite(0, duty);
      delay(10);
    }

    for (duty = 255; duty > 0; duty = duty - 5) {
      sigmaDeltaWrite(0, duty);
      delay(10);
    }

  }

  Serial.println("Detaching builtin led & playing a blinkie\n");
  sigmaDeltaDetachPin(LED_BUILTIN);
  for (iRepeat = 0; iRepeat < 20; iRepeat++) {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    delay(500);
  }
}

实验串口返回情况

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第5张图片
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目:Station模式下的操作实例,查询IP地址

Arduino实验开源代码

/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266
项目:Station模式下的操作实例,查询IP地址
*/

#include 

#define AP_SSID "eagler8" //这里改成你的wifi名字
#define AP_PSW  "zy156721"//这里改成你的wifi密码

void setup(){
  //设置串口波特率,以便打印信息
  Serial.begin(9600);

  //启动STA模式,并连接到wifi网络
  WiFi.begin(AP_SSID, AP_PSW);

  Serial.print(String("Connecting to ")+AP_SSID);
  //判断网络状态是否连接上,没连接上就延时500ms,并且打出一个点,模拟连接过程
  while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Serial.println("");

  Serial.print("Connected, IP address: ");
  //输出station IP地址,这里的IP地址由DHCP分配
  Serial.println(WiFi.localIP());
  Serial.println("Setup End");
}

void loop() {
}

实验串口返回情况

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第6张图片
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目:测试ide的eeprom设置是否与硬件匹配

Arduino实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266
  项目:测试ide的eeprom设置是否与硬件匹配
*/

void setup(void) {
  Serial.begin(115200);

}

void loop() {
  uint32_t realSize = ESP.getFlashChipRealSize();
  uint32_t ideSize = ESP.getFlashChipSize();
  FlashMode_t ideMode = ESP.getFlashChipMode();
  Serial.println("测试IDE的闪存设置是否与硬件匹配");
  Serial.printf("闪存真实ID:  %08X\n", ESP.getFlashChipId());
  Serial.printf("Flash 实际大小: %u bytes\n\n", realSize);

  Serial.printf("Flash IDE 大小: %u bytes\n", ideSize);
  Serial.printf("闪存速度: %u Hz\n", ESP.getFlashChipSpeed());
  Serial.printf("闪存模式: %s\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN"));

  if (ideSize != realSize) {
    Serial.println("Flash Chip configuration wrong!\n");
  } else {
    Serial.println("Flash 芯片配置正常。\n");
  }

  delay(5000);
}

实验串口返回情况
【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第7张图片
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十二:升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266

项目九:扫描当前环境之中可用的 WiFi 网络并列表

Arduino实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百二十五: 升级版 WeMos D1 R2 WiFi UNO 开发板 基于ESP8266
  项目九:扫描当前环境之中可用的 WiFi 网络并列表
*/

#include 

const int greenPin = 12;

void setup() {
  Serial.begin(115200);
  pinMode(greenPin, OUTPUT);
  digitalWrite(greenPin, HIGH);
  delay (6000);
  digitalWrite(greenPin, LOW);
  Serial.println(F("\nESP8266 WiFi 扫描"));

  // 设置 WiFi 为站模式
  WiFi.mode(WIFI_STA);

  // 如果之前已连接,则断开与 AP 的连接
  WiFi.disconnect();
  delay(100);
}

void loop() {
  String ssid;
  int32_t rssi;
  uint8_t encryptionType;
  uint8_t* bssid;
  int32_t channel;
  bool hidden;
  int scanResult;

  Serial.println(F("正在开始WiFi扫描..."));

  scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);

  if (scanResult == 0) {
    Serial.println(F("未找到网络"));
  } else if (scanResult > 0) {
    Serial.printf(PSTR("%d 个网络找到:\n"), scanResult);

    // Print unsorted scan results
    for (int8_t i = 0; i < scanResult; i++) {
      WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);

      Serial.printf(PSTR("  %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"),
                    i,
                    channel,
                    bssid[0], bssid[1], bssid[2],
                    bssid[3], bssid[4], bssid[5],
                    rssi,
                    (encryptionType == ENC_TYPE_NONE) ? ' ' : '*',
                    hidden ? 'H' : 'V',
                    ssid.c_str());
      delay(0);
    }
  } else {
    Serial.printf(PSTR("WiFi 扫描错误 %d"), scanResult);
  }

  // 在再次扫描之前稍等片刻
  delay(5000);
  Serial.println(F(""));
}

实验串口返回情况

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第8张图片

Arduino实验场景图

【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块3_第9张图片

你可能感兴趣的:(嵌入式硬件,单片机,物联网,Arduino,机器人,c++,WeMos,D1开发板模块)