我刚开始在我的项目中使用ArduinoJson库。我的目标是使用BT将三个传感器值从arduino nano发送到RasPi,使用json格式。此外,通过从BT接收“0”或“1”来控制继电器。
我成功地能够发送数据。但是,当我包括以下一段代码:(读取串行数据)if(Serial.available
并且我发送'1';我的数据传输受到干扰并且json字符串受到影响.当我发送'0'时,它恢复正常。
我需要帮助来解决这个问题,因为我找不到我错在哪里!!请做需要的!!
我的代码:
#include <ArduinoJson.h>
#include <SoftwareSerial.h>
#include <DHT.h>
#define DHTPIN 12 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11 sensor
DHT dht(DHTPIN, DHTTYPE); //initilize the DHT sensor
int ldr = A0; // LDR connected to A0
int relay = 13;
float h,t;
int rx = 11; // softwareserial rx of arduino is pin 11
int tx = 10; // softwareserial tx of arduino is pin 12
SoftwareSerial mySerial(rx,tx);
int l; // variable to store the value coming from the sensor
int bt = 0; // variable to store incoming BT data
void setup()
{
pinMode(relay, OUTPUT);
pinMode(ldr, INPUT);
Serial.begin(9600);
mySerial.begin(9600);
mySerial.println(" Project FLIP");
mySerial.println("sensor testing");
mySerial.println(" DHT11 test!");
dht.begin();
delay(2000);
}
void loop()
{
humidity_read();//read humidity value
temperature_read();//read temperature
light_read(); //read LDR value
jason_print();
relay_control();//control relay by reading serial data 0=off, 1=on
jason_print();
}
void jason_print()
{
StaticJsonBuffer<200> temp;
JsonObject& root = temp.createObject();
root["humidity"] = h;
root["temp"] = t;
root["light"] = l;
root.printTo(Serial);
Serial.println();
delay(1000);
}
void humidity_read()
{
h = dht.readHumidity(); //
}
void temperature_read()
{
t = dht.readTemperature(); // Read temperature as Celsius (the default)
}
void relay_control()
{
if (Serial.available() > 0)
{
bt = Serial.read();
if (bt == '1')
{
digitalWrite(relay, HIGH);
}
else if (bt == '0')
{
digitalWrite(relay, LOW);
}
}
}
void light_read()
{
l = analogRead(ldr); //Read LDR value
}
我尝试使用软件串行概念和相同的代码似乎是完美的工作!我把一个HC-05 BT模块连接到D10
但是,如果我使用arduino IDE的串行监视器来做同样的操作,我仍然不知道为什么会出现问题。。
我试图做一些非常简单的东西,按钮计数器,有一个按钮在我的HTML-php当我点击它我发送数据'按'到我的arduino和它使led闪烁,到目前为止,还不错,但然后我想发送信号,当我在arduino中按下按钮,我想让我的php读取字符串"点击次数: N"的串行端口,N是从arduio的推送计数。 这里的问题是,在arduino串行我可以看到他字符串,一切正常,但在PHP我做
问题内容: 我正在Python中使用脚本,通过串行端口以2Mbps速度从PIC微控制器收集数据。 PIC以2Mbps的完美时序工作,FTDI usb串行端口也以2Mbps的出色性能(均已通过示波器验证) 我发送消息(大约15个字符的大小)大约每秒100-150x次,并且该消息的数量递增(以检查我是否丢失了消息等等) 在我的笔记本电脑上,我的Xubuntu作为虚拟机运行,我可以通过Putty和脚本(
我正在做一个项目,从Arduino读取模拟数据,然后用zedgraph在Visual C#中显示。我的GUI上有一个开始按钮,可以开始从Arduino读取串行数据。我可以用方法打开arduino端口,读取串行数据,在zedgraph上显示数据,然后每1秒关闭一次arduino。如果你听不懂我的话,这里有一个方法: 当我单击开始按钮时调用此方法。所以,我的问题是,当我点击开始按钮时,我想“打开”发送
问题内容: 我想使用python urllib2来模拟登录操作,我使用Fiddler捕获数据包,并获得登录操作只是ajax请求,并且用户名和密码作为json数据发送,但是我不知道如何使用urllib2发送JSON数据,帮助… 问题答案: 假设您使用HTTP POST发送带有用户名和密码的简单json对象。
问题内容: 我有一个Java程序,必须读取Arduino发送的信息。我从这里获取了Java代码。现在,我不太了解它是如何工作的,但是我尝试对其进行修改,并且得到了以下信息: 我创建一个对象串行COM口,我需要在主程序,然后我使用和当我需要它。 效果很好,Arduino获取数据并将其显示在LCD显示屏中。问题是。程序运行时,它会不断从串行端口读取数据(大约每40毫秒一次),但这并不意味着Arduin
我想做的是从我用Arudino制作的转速表电路中读取连续的数据流,然后将其输入处理;我已经使用下面的代码成功完成了: 我不确定如何处理数据,以便每当检测到某个值时,处理中都会发生事件。 编辑:有人建议关闭,所以我的问题是调用是一个阻塞调用,这意味着中的指令指针将保持在。指针将调用和,但永远不会到达启动串行端口的线路 建议的解决方案是将这些行移动到的顶部,并将作为的最后一行。我尝试了这个(我下面的代