一直想做无线传感器,通过蓝牙来接收数据,无奈因为arduino接收串口数据的一些问题,一直搁到现在。因为学校里给学生开了选修课,所以手边有一些nano和mega可以使用,所以就做了用两个nano加上两个蓝牙模块来发射数据,用mega加两个蓝牙模块来接收数据。因为mega可以同时使用4路串口,所以考虑用mega来作为主控机,用来接收来自传感器的数据,每个传感器加一个nano和蓝牙来无线发射数据。
因为是测试,所以在nano中写了一个简单的发射信号的语句。以下四nano中的程序:
————————————————我是分界线——————————————————————
int i=1;
void setup() {
Serial.begin(9600); }
void loop(){
Serial.print(i);
Serial.print("$");
delay(50);
i++;
}
————————————————我是分界线——————————————————————
以下是mega中的程序:
——————————————————我是分界线————————————————————————
String comdata = "";
String shuju="";
String shuju2="";
int i;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
}
void loop()
{
while (Serial1.available() > 0)
{
shuju += char(Serial1.read());
delay(2);
}
while (Serial2.available() > 0)
{
shuju2 +=char(Serial2.read());
delay(2);
}
if (shuju.length() > 0)
{
i=shuju.indexOf("$");
if(i!=-1){
comdata=shuju.substring(0,i);
Serial.print("#1=");
Serial.print(comdata);
Serial.println("$");
shuju=shuju.substring(i+1,shuju.length());
comdata = "";
i=0;
}
}
if (shuju2.length() > 0)
{
i=shuju2.indexOf("$");
if(i!=-1){
comdata=shuju2.substring(0,i);
Serial.print("#2=");
Serial.print(comdata);
Serial.println("$");
shuju2=shuju2.substring(i+1,shuju2.length());
comdata = "";
i=0;
}
} }
——————————————我是分界线————————————————————