ESP8266的I2C通信

电路连接


ESP8266的引脚D1连接模块的SCL、D2连接模块的SDA、模块的VCC、GND连接ESP8266的3.3V供电

板是临时凑的用了三个模块分别是温湿度传感器、光照传感器、空气质量传感器。

代码部分

仅供参考

#include <ESP8266WiFi.h>//安装esp8266arduino开发环境
static WiFiClient espClient;#include <Wire.h>
#include <BH1750FVI.h>
#include <ArduinoJson.h>//json包float humidity;
float cTemp;
float fTemp;
unsigned long lastMsMain = 0;DynamicJsonDocument doc(1024);// Create the Lightsensor instance
BH1750FVI LightSensor(BH1750FVI::k_DevModeContLowRes);// SHT30 IIC 7位地址为0x44
#define Addr 0x44void setup()
{Wire.begin();//初始化I2C通信作为主设备Serial.begin(9600);pinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);LightSensor.begin();}void loop()
{uint16_t lux = LightSensor.GetLightIntensity();//获得光照强度sht3x();if (millis() - lastMsMain >= 2000)//每2秒发送一次{lastMsMain = millis();Serial.print("Light: ");Serial.println(lux);doc["LightLuminance"]=lux;doc["Humidity"]=humidity;doc["CurrentTemperature"]=cTemp;    String output;serializeJson(doc, output);const char *str = output.c_str(); }
}

//温湿度传感
void sht3x()
{unsigned int data[6]; //存储获取到的六个数据//开始IIC//写地址Wire.beginTransmission(Addr);//发送测量命令 0x2C06,但是因为IIC一次只能发一个8位数据,所以得发两次Wire.write(0x2C);Wire.write(0x06);//停止IICWire.endTransmission();//等待500ms是等待SHT30器件测量数据,实际上这个时间可以很短delay(500);//请求获取6字节的数据,然后会存到8266的内存里Wire.requestFrom(Addr, 6);//读取6字节的数据//这六个字节分别为:温度8位高数据,温度8位低数据,温度8位CRC校验数据//               湿度8位高数据,湿度8位低数据,湿度8位CRC校验数据if (Wire.available() == 6){data[0] = Wire.read();data[1] = Wire.read();data[2] = Wire.read();data[3] = Wire.read();data[4] = Wire.read();data[5] = Wire.read();}//然后计算得到的数据,要转化为摄氏度、华氏度、相对湿度cTemp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45;fTemp = (cTemp * 1.8) + 32;humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0);//在串口里输出得到的数据Serial.print("相对湿度:");Serial.print(humidity);Serial.println("% RH");Serial.print("摄氏度温度:");Serial.print(cTemp);Serial.println(" C");Serial.print("华氏度温度:");Serial.print(fTemp);Serial.println(" F");delay(500);
}

根据对应需求进行更改即可。

ESP8266(Nodemcu)的I2C通信相关推荐

  1. ESP8266 NodeMCU Web 服务器:在仪表盘中显示传感器读数

    了解如何使用 ESP8266 NodeMCU 构建网络服务器以在仪表盘中显示传感器读数.例如,我们将以两种不同的仪表显示 BME280 传感器的温度和湿度:线性和径向.您可以轻松修改项目以绘制任何其他 ...

  2. 利用ESP8266+OLED(I2C)打造智能时钟(网络校时+实时天气+天气预报)

    从零开始使用ESP8266+OLED打造智能时钟(网络校时+实时天气+天气预报) 目录 零.前言 一.材料准备 1.ESP8266(NodeMCU V3) 2.OLED(SSD1306)(四针脚,利用 ...

  3. nodemcu与matlab,关于ESP8266 NodeMcu和ESP32 DEV模块两者的区别

    什么是ESP32? ESP8266 Wi-Fi模块是过去几年中最受欢迎和最实用的模块之一.市场上有这种模块的各种版本. ESP32模块是ESP8266的升级版本.除了Wi-Fi模块,该模块还包含蓝牙4 ...

  4. ESP8266 NodeMCU:ESP-NOW Web 服务器传感器仪表板(ESP-NOW + Wi-Fi)

    在本项目中,您将学习如何使用 ESP8266 NodeMCU 板托管 Web 服务器并同时使用 ESP-NOW 通信协议.您可以让多个 ESP8266 板通过 ESP-NOW 将传感器读数发送到一个 ...

  5. ESP8266 NodeMCU引脚说明

    问题 开发ESP8266 NodeMCU GPIO功能时,作为小白的我根本不知道引脚编号,虽然知道ESP8266 NodeMCU丝印引脚编号如下图所示,但是和实际对应的GPIO编号完全不一样. 解决 ...

  6. ESP8266 + 0.96“ I2C OLED双色屏驱动显示

    ESP8266 + 0.96" I2C OLED双色屏显示 驱动0.96"OLED屏幕的库很多,这次使用的是: #include <Adafruit_GFX.h> #i ...

  7. esp8266 nodemcu 自制mp3

    ESP8266 播放 mp3 其实早就想做一个mp3播放器,但是一直没有时间,借着这次高考周放假,可以开始自己的开发. 准备工作 购置需要用到的模块 ESP8266 Nodemcu 作为开发板 OLE ...

  8. linux stm32 主从,STM32F407和STM32F051主从I2C通信方法

    STM32F407和STM32F051主从I2C通信方法 作者:华清远见讲师 M4作为主机: int main(void) { HAL_Init(); SystemClock_Config(); MX ...

  9. AT24C0X I2C通信原理

    /*********************************************************************** AT24C0X I2C通信原理* 说明:* 之前接触A ...

最新文章

  1. PostgreSQL 安装配置 (亲测可用)
  2. Castle.ActiveRecord的嵌套事务处理
  3. javascript 变量提前
  4. 50行代码串行Promise,koa洋葱模型原来这么有趣?
  5. 联想电脑如何添加无线网络连接服务器,安装英特尔MYWIFI的操作步骤
  6. 直方图均衡化 原理、流程、公式推导及matlab实现
  7. 【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)
  8. Android 人脸识别 活体检测 人脸对比
  9. python实现全自动百词斩单词对战,躺着上分轻轻松松
  10. 天王星技术社区在成都举行《联盟链趋势和应用》交流会
  11. VS+QT编译出现QMYSQL driver not loaded
  12. IAAS基于开源openstack框架搭建云计算平台和各组件基础搭建内容包括mysql、keyston、Glance、Nova、Neutron、Dashboard、Heat、Trove等
  13. 中山大学计算机在职研究生分数线,2018年中山大学在职研究生分数线高吗?
  14. 华为traffic访问列表及Qos基本配置
  15. 服务器加了内存和硬盘不显示不出来,移动硬盘显示不出来怎么办 移动硬盘不显示解决办法【详解】...
  16. video DownLoad Mothed
  17. 微信开发使用wechat.class.php调用API,测试发现返回no access,公众号出现暂时无法提供服务
  18. 用Python理解极限,看了这个就不会挂高数了
  19. AU实战操作之混音、降噪
  20. Lucas–Kanade光流算法

热门文章

  1. 股票的最大利润(JS)
  2. 面部特征点检测(使用opencv+dlib)
  3. java枚举比较大小写_Java 枚举(enum)的学习
  4. 游戏策划设计中关于游戏节奏的控制
  5. python html网页合并单元格,python之DataFrame实现excel合并单元格
  6. Python爬虫工程师是干什么的?
  7. VS代码自动排版快捷键
  8. 巨人网络 2021校招 自动化测试
  9. SpringCloud:注册中心nacos
  10. JAVA —— 比较日期时间大小