Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过蓝牙hc05模块将数据从一个arduino发送到另一个arduino_Arduino_Bluetooth - Fatal编程技术网

通过蓝牙hc05模块将数据从一个arduino发送到另一个arduino

通过蓝牙hc05模块将数据从一个arduino发送到另一个arduino,arduino,bluetooth,Arduino,Bluetooth,我必须为Uni做一个项目,为每个arduino使用2个arduino uno、2个HC 05蓝牙模块和2个传感器。我已经将一个模块设置为从模块,并且主模块仅连接到从模块 当我试图从从属设备发送数据以供主设备读取时,它一直读取0 我使用的是Arduino IDE,没有错误,一切都正常运行 这是我目前掌握的代码 另外,我想从2个传感器向主传感器发送数据,但我不知道如何做到这一点 从代码 #include <SoftwareSerial.h> #define TILT 7 // tilt

我必须为Uni做一个项目,为每个arduino使用2个arduino uno、2个HC 05蓝牙模块和2个传感器。我已经将一个模块设置为从模块,并且主模块仅连接到从模块

当我试图从从属设备发送数据以供主设备读取时,它一直读取0

我使用的是Arduino IDE,没有错误,一切都正常运行

这是我目前掌握的代码

另外,我想从2个传感器向主传感器发送数据,但我不知道如何做到这一点

从代码

#include <SoftwareSerial.h>
#define TILT 7 // tilt sensor pin
#define LDR 8 //light intensity sensor pin
#define rxPin 10
#define txPin 11
SoftwareSerial nodeCommunication = SoftwareSerial(rxPin, txPin);
int sentBytes;                                         ////// SLAVE CODE
byte data[2];
void setup() { 
  Serial.begin(9600);
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  pinMode(TILT, INPUT);
  pinMode(LDR, INPUT);
  Serial.begin(9600);
  nodeCommunication.begin(9600);
  delay(2000);
}
void loop() {

  //int LDRval = analogRead(LDR); // light intensity sensor (candela)
  //int Tilt_Sensed = digitalRead(TILT);
  data[0] = analogRead(LDR);
  data[1] = digitalRead(TILT);

  if(nodeCommunication.available()){
    sentBytes = nodeCommunication.write(data[0]);
    Serial.println("I reached this if");
  }

  Serial.println(analogRead(LDR));
  Serial.println(sentBytes);


  delay(2000);
}
#包括
#定义倾斜7//倾斜传感器针脚
#定义LDR 8//光强传感器引脚
#定义rxPin 10
#定义txpin11
SoftwareSerial节点通信=SoftwareSerial(rxPin,txPin);
int sentBytes;//从代码
字节数据[2];
无效设置(){
Serial.begin(9600);
pinMode(rxPin,输入);
pinMode(txPin,输出);
pinMode(倾斜、输入);
引脚模式(LDR,输入);
Serial.begin(9600);
nodeCommunication.begin(9600);
延迟(2000年);
}
void循环(){
//int LDRval=analogRead(LDR);//光强传感器(坎德拉)
//int Tilt_Sensed=数字读取(倾斜);
数据[0]=模拟读取(LDR);
数据[1]=数字读取(倾斜);
if(nodeCommunication.available()){
sentBytes=nodeCommunication.write(数据[0]);
Serial.println(“我达到了这个if”);
}
串行打印LN(模拟读取(LDR));
Serial.println(千字节);
延迟(2000年);
}
主代码

#include "dht.h"
#include <SoftwareSerial.h>
#define dht_apin A0 // Analog Pin sensor is connected to A0

dht DHT; // DHT.humidity // DHT.
#define rxPin 10
#define txPin 11

SoftwareSerial nodeCommunication = SoftwareSerial(rxPin, txPin);
byte data = 1;
                                                          ///// MASTER CODE
void setup(){

  Serial.begin(9600);
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  nodeCommunication.begin(9600);
  delay(2000);//Wait before accessing Sensor

}//end "setup()"

void loop(){
 //Start of Program 
    DHT.read11(dht_apin); // reading the data from the sensor

    if(nodeCommunication.available()){
      data = nodeCommunication.read();
      Serial.println("I reached this if"); 
    }
    Serial.print(data); Serial.println(" candela;");
    Serial.print(DHT.temperature); Serial.println(" C");
    Serial.print(DHT.humidity); Serial.println(" % humidity");

    delay(2000);//Wait 2 seconds before accessing sensor again.

//Fastest should be once every two seconds.

}// end loop() 
#包括“dht.h”
#包括
#定义dht_apin A0//模拟引脚传感器连接到A0
dht dht;//湿度//DHT。
#定义rxPin 10
#定义txpin11
SoftwareSerial节点通信=SoftwareSerial(rxPin,txPin);
字节数据=1;
/////主代码
无效设置(){
Serial.begin(9600);
pinMode(rxPin,输入);
pinMode(txPin,输出);
nodeCommunication.begin(9600);
延迟(2000);//在访问传感器之前等待
}//结束“设置()
void循环(){
//节目开始
DHT.read11(DHT_apin);//从传感器读取数据
if(nodeCommunication.available()){
data=nodeCommunication.read();
Serial.println(“我达到了这个if”);
}
Serial.print(数据);Serial.println(“坎德拉;”);
Serial.print(DHT.temperature);Serial.println(“C”);
Serial.print(DHT.湿度);Serial.println(“%湿度”);
延迟(2000);//在再次访问传感器之前等待2秒。
//最快的应该是每两秒一次。
}//结束循环()
请告诉我我做错了什么。非常感谢你

byte data = 1; - should be just byte data;
您是否检查了发送/接收连接?来自主设备的发送必须连接到从设备的接收,反之亦然。Als GND必须相互连接

然后,让主机(发送器)将Serial.write(在您的示例中是nodeCommunication.write())发送到从机(接收器)

比如说:

大师:

#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
byte data = 0x01; //Hex value for ''1''
SoftwareSerial nodeCommunication = SoftwareSerial(rxPin, txPin);

void setup()
{
Serial.begin(9600);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
nodeCommunication.begin(9600); 
}

void loop()
{
nodeCommunication.write(data); //Sends byte data to slave
delay(1000);
}
#包括
#定义rxPin 10
#定义txpin11
字节数据=0x01//“1”的十六进制值
SoftwareSerial节点通信=SoftwareSerial(rxPin,txPin);
无效设置()
{
Serial.begin(9600);
pinMode(rxPin,输入);
pinMode(txPin,输出);
nodeCommunication.begin(9600);
}
void循环()
{
nodeCommunication.write(data);//向从机发送字节数据
延迟(1000);
}
奴隶:

    #include <SoftwareSerial.h>
    #define rxPin 10
    #define txPin 11
    byte incoming
    SoftwareSerial nodeCommunication = SoftwareSerial(rxPin, txPin);

    void setup()
    {
    Serial.begin(9600);
    pinMode(rxPin, INPUT);
    pinMode(txPin, OUTPUT);
    nodeCommunication.begin(9600); 
    }

    void loop()
   {
    if(nodeCommunication.available > 0) //Only if data is available
    {
    byte incoming = nodeCommunication.read(); //read byte from master
    Serial.println("Incoming = ");
    Serial.println(incoming);
    }
    else
    {
    Serial.println("No data available....");
    }
   }
#包括
#定义rxPin 10
#定义txpin11
字节传入
SoftwareSerial节点通信=SoftwareSerial(rxPin,txPin);
无效设置()
{
Serial.begin(9600);
pinMode(rxPin,输入);
pinMode(txPin,输出);
nodeCommunication.begin(9600);
}
void循环()
{
if(nodeCommunication.available>0)//仅当数据可用时
{
byte incoming=nodeCommunication.read();//从主机读取字节
Serial.println(“Incoming=”);
Serial.println(传入);
}
其他的
{
Serial.println(“无可用数据…”);
}
}

建立串行通信后,下一步是实现DHT值

嗨,欢迎来到StackOverflow。请提供更多细节:你到底想做什么?你是如何执行代码的?您看到了什么输出或错误?您好,谢谢您的评论。我使用的是arduino IDE,我没有看到任何错误,一切都在编译和运行。因此,主机必须向从机发送数据?虽然它们都可以相互发送数据,但首先建立连接可能是一个好的开始。如果可行,则尝试将DHT数据从一个arduino发送到另一个arduino。然后也许让他们同时发送和接收,但这需要更多地思考他们将如何沟通。