37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五:ESP8266机智云开发板 ESP12F wifi模块(支持云端的智能硬件开发套件)
知识点:机智云 (www.gizwits.com)
机智云是亚洲最大的智能硬件自助开发和云服务平台,产品及服务涵盖终端管理、连接管理、应用支持和业务分析等主要功能,为有志于进军物联网的开发者提供智能硬件一站式开发工具及云端运维服务,提供 IoT 开源嵌入式代码库、云端 API 接口、APP 端 SDK,方便开发者进行二次开发,同时支持公有云、私有云、混合云以及全球化部署,是目前 IoT 技术最成熟、云端应用功能最完善、全球量产客户最多、最受 IoT 开发者喜爱的量产级别智能硬件开发及云服务平台,被业界及媒体公认为物联网第三方云服务第一品牌。
ESP8266机智云开发板模块
(官方简介)这是一个支持云端的智能硬件开发套件,史上最简单最具性价比的物联网开发板,不需要你懂网络、TCP/IP、HTP、MQTT底层复杂的知识,只要你会C语音,即可用安信可的机智云SDK快速实现二次开发,这个DEMO板可以用手机流量控制板载的RGB七彩灯,手机端APP,可以通过光敏电阻显示环境亮度。代码只要少作修改半个小时即可做出一款属于你自己的远程控制设备,系统免费生成APP(安卓、IOS),开放SDK,你只需要做下APP端UI界面即可研发成一个成品。
ESP8266
1、低功耗、高集成度的 Wi-Fi 芯片
2、仅需 7 个元器件
3、超宽工作温度范围:-40°C 至 +125°C
4、ESP8285 - ESP8266 内封 8 Mbit Flash
5、高度集成——ESP8266EX 是业内集成度最高的 Wi-Fi 芯片,最小封装尺寸仅为 5mm x 5mm。ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的电路,可将所占 PCB 空间降到最低。
6、32 位 Tensilica MCU——ESP8266EX 内置 Tensilica L10632 位微型控制器 (MCU),具有超低功耗和 16 位 RSIC,时钟速度最高可达 160 MHz。支持实时操作系统 (RTOS),目前 Wi-Fi 协议栈只用了 20% 的 MIPS,其他均可用于用户编程和开发。
7、低功耗——ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。
8、性能稳定——ESP8266EX 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目二:综合测试按钮、光敏电阻和RGB LED灯
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目二:综合测试按钮、光敏电阻和RGB LED灯
*/
#define LDR A0
#define BUTTON 4
#define RED 15
#define GREEN 12
#define BLUE 13
void setup(){
Serial.begin(115200);
pinMode(LDR, INPUT);
pinMode(BUTTON, INPUT);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
}
void loop(){
Serial.print("LDR:");
Serial.println(analogRead(LDR));
Serial.print("BUTTON:");
Serial.println(digitalRead(BUTTON));
analogWrite(RED, random(0,1023));
analogWrite(GREEN, random(0,1023));
digitalWrite(BLUE,HIGH);
delay(500);
digitalWrite(BLUE, LOW);
}
项目二:综合测试按钮、光敏电阻和RGB LED灯
项目串口返回情况
引脚的定义是Witty上的 Light Dependent Resistor(LDR),它连接到 A0(模拟输入),按钮连接到 GPIO 4,LED连接到GPIO 12,GPIO 13 和 GPIO 15:
loop()函数在 setup()之后连续运行,并且这里面:
-
analogRead 函数读取LDR提供的0-1V环境光的值
-
digitalRead 功能读取GPIO 4的值,可以在按下按钮时是0 V,如果没有按下按钮,则可以是 3.3 V.
3.使用 Serial.print 函数将数据显示到串行监视器。 Seril.pintln只是添加了一个新行
4.将 0 到 1023 之间的随机值写入 GPIO 15 和 GPIO 12,以控制红色和绿色LED的颜色强度。这是脉冲宽度调制 Pulse Width Modulation(PWM)。
5.打开连接到 GPIO 13 的蓝色LED。
6.等待 500 毫秒(0.5秒钟)。
7.关闭蓝色LED并从步骤1继续。
analogRead(pin):读取 A0 引脚上的值
digitalRead(pin):读取指定引脚的值,LOW 或 HIGH
digitalWrite(pin,val):将 LOW 或 HIGH 值写入数字引脚
Serial.println(val):这将数据打印到串行端口,作为以 \ r 结尾的人类可读 ASCII 字符和新行字符 \ n
使用 analogWrite(val),其中 val 可以在 0 到 1023 间隔内,PWM数字输出引脚的电压在 0 到 3.3V 之间,步长为 1023。
项目二:综合测试按钮、光敏电阻和RGB LED灯
项目串口绘图器返回
在mini面包板上面,用 6 根跳线连接两个 PCB
GND : 电源和信号地
VCC : 从底部 PCB 的微型 USB 端口向 AMS1117 提供 5V 电源
RX : 从计算机到 ESP8266 的信号
TX : ESP8266 到电脑的信号
REST : 复位信号
GPIO0 : flash 编程模式选择信号
在这种配置下,不仅可以将固件刷入 Witty Cloud 板上的 ESP8266,还可以使用 Arduino 的串口监视器调试带有外围设备的固件。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十五: ESP8266 Witty Cloud ESP-12F WiFi模块 Witty Cloud 机智云开发板 ESP Witty
项目三:自定义阈值,低照度<100触发红灯报警
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百三十五: ESP8266 Witty Cloud ESP-12F WiFi模块 机智云开发板 ESP Witty
项目三:自定义阈值,低照度<100触发红灯报警
*/
const int redPin = 15;
const int greenPin = 12;
const int bluePin = 13;
const int ldrPin = A0;
void setup () {
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(ldrPin, INPUT);
digitalWrite(bluePin, HIGH);
delay (5000);
digitalWrite(bluePin, LOW);
}
void loop() {
int ldrStatus = analogRead(ldrPin);
Serial.println(ldrStatus);
if (ldrStatus <= 100) { // 自定义阈值
digitalWrite(greenPin, LOW);
digitalWrite(redPin, HIGH);
delay(100);
digitalWrite(redPin, LOW);
delay(100);
Serial.println("LOW LIGHT LEVEL");
}
else {
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
delay(100);
Serial.println("NORMAL LIGHT LEVEL");
}
}
项目三:自定义阈值,低照度<100触发红灯报警
项目串口返回情况
Arduino实验场景图