初学arduino用nodemcu采集温湿度的过程和遇到编译不过的问题

初学arduino遇到的找不到板子的问题(一)

我用的电脑环境:win10
工具:nodemcu、温湿度传感器Dht11。
开发环境:arduinoIDE
加载的包:DHT11.(一个测量温湿度的包)

主要的功能:测量温湿度。

实现的过程:
1、先把包加载到C:\Users\12287\Documents\Arduino\libraries下面。
2、加载在程序中加载温湿度传感器的库。打开IDE,然后点击 项目—加载库—DHT11 ,然后会自动的加载到程序的头部。
3、然后定义需要的引脚。我用的是d4的引脚,在成程序中定义的引脚是io口,有人可能会和我一样有点不太懂,我是摸索了一下才看懂的。
可以参考一下这个链接 https://blog.csdn.net/Leytton/article/details/51646624
这篇文章就写的很详细。有图,有引脚号,还有对应的io口。
在这里插入图片描述
里面的通过引脚图找到gpio号,再通过上面的表格找到对应的io号。这个io号就是程序代码中定义的引脚号。
如我定义的是D4引脚,在程序中定义的引脚号为 2
#include <dht11.h> //引用dht11库文件,使得下面可以调用相关参数
#define DHT11PIN 2 //定义温湿度针脚号为2号引脚
dht11 DHT11; //实例化一个对象

void setup() {                                                       //设置

Serial.begin(9600);                                            //设置波特率参数
pinMode(DHT11PIN,OUTPUT);                       //定义输出口
}

void loop() {                                                    //循环
int chk = DHT11.read(DHT11PIN);                 //将读取到的值赋给chk
int tem=(float)DHT11.temperature;               //将温度值赋值给tem
int hum=(float)DHT11.humidity;                   //将湿度值赋给hum
Serial.print("Tempeature:");                        //打印出Tempeature:
Serial.println(tem);                                     //打印温度结果

Serial.print("Humidity:");                            //打印出Humidity:
Serial.print(hum);                                     //打印出湿度结果
Serial.println("%");                                  //打印出%
delay(1000);                                          //延时一段时间

	然后点击  编译的图标 (√) 然后 点击上传(->),然后编译的过程中出现了问题

遇到的问题是:

在这里插入图片描述后来经过一段时间是的摸索后发现是,加载的DHT11库文件的问题。后面再找了一个DHT11库文件,替换掉这个库文件就解决掉这个问题了。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: ArduinoNodeMCU可以通过串口通信进行数据传输。首先,需要在两个设备上分别设置串口通信的波特率、数据位、校验位和停止位等参数。然后,在ArduinoNodeMCU代码中分别编写串口通信的发送和接收程序,以实现数据的传输和处理。具体实现方法可以参考相关的教程和示例代码。 ### 回答2: ArduinoNodeMCU都是常用的微控制器,它们可以通过串口通信来实现数据的传输和控制。这种通信方式非常灵活,可以方便地进行传感器数据采集、控制执行器等任务。 在ArduinoNodeMCU之间建立串口通信,需要考虑以下几个方面: 1. 串口通信的参数设置:包括波特率、数据位、停止位、校验位等。需要保证两端的串口参数一致,才能正确地进行数据传输。 2. 数据传输格式的协议:由于串口通信是基于物理信号的,因此需要约定好数据传输的格式。常见的协议有纯文本协议、二进制协议以及自定义协议等,需要根据需求选择适合的协议。 3. 编程实现:在ArduinoNodeMCU上将串口通信的代码编写好,通过串口传输数据。 具体实现时,可以使用Arduino自带的Serial库和NodeMCU的UART库进行通信。代码示例如下: Arduino代码: ``` void setup() { Serial.begin(9600); // 串口初始化 } void loop() { // 发送数据给NodeMCU Serial.println("Hello, NodeMCU!"); delay(1000); // 接收NodeMCU发送的数据 if (Serial.available() > 0) { char data = Serial.read(); Serial.print("Received data: "); Serial.println(data); } } ``` NodeMCU代码: ``` #include <SoftwareSerial.h> SoftwareSerial mySerial(D2, D1); // 定义软件串口,D2为RX,D1为TX void setup() { Serial.begin(115200); // 串口初始化 mySerial.begin(9600); } void loop() { // 接收Arduino发送的数据 if (mySerial.available() > 0) { String data = mySerial.readString(); Serial.print("Received data: "); Serial.println(data); } // 发送数据给Arduino mySerial.println("Hello, Arduino!"); delay(1000); } ``` 上述示例中,ArduinoNodeMCU之间通过软件串口进行了通信,可以双向传输数据。需要注意的是,在代码编写时需要将各自的串口参数设置好,并约定好数据传输格式和协议。同时,在实际应用中还需要根据实际需求进行相应的优化和改进,以确保通信的稳定和可靠性。 ### 回答3: 当我们需要让ArduinoNodeMCU进行数据传输或通信时,可以通过串口(Serial)进行连接。ArduinoNodeMCU都有自己的串口,Arduino Uno和NodeMCU的串口分别为Serial和Serial1。 要使这两个设备进行串口通信,我们需要将一个设备的TX引脚连接到另外一个设备的RX引脚。同时,RX引脚也要连接到相应的TX引脚。这样就建立了一条串口通信的连接。 在代码方面,我们可以使用Arduino IDE来编写和上传代码。我们需要使用Serial.begin来初始化串口,并设置波特率为相同的速率。例如,你可以使用Serial.begin(9600),表示设定了以9600bps的速率进行通信。 在Arduino Uno上发送数据时,我们可以使用Serial.print或Serial.write指令来传输数据。例如,Serial.print("Hello World")可以发送“Hello World”字符串。 要接受数据,我们需要在我们的代码中设置一个监听程序,以等待端口传入数据并读取数据。我们可以使用Serial.available来检查是否有数据可用,并使用Serial.read来读取数据。 在NodeMCU上进行串口通信也是类似的。首先,我们需要将NodeMCU的RX引脚连接到Arduino的TX引脚,将NodeMCU的TX引脚连接到Arduino的RX引脚。然后,我们需要在NodeMCU代码中设置和初始化串口,并设置相同的波特率。然后,我们可以使用类似的方法发送和接收数据。 总之,通过串口通信,可以方便地实现ArduinoNodeMCU之间的通信,这对于许多项目来说都很有用,比如可以实现一些基于WiFi的远程控制或数据采集

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值