你好。我需要使用传感器 Bh1750 将数据发送到应用程序 Blynk..但我没有代码...
这只是科迪我的工作但是这段代码将数据发送到串行端口..谢谢
#include
#include <数学.h>
int BH1750address = 0x23; //i2c 地址
字节 buff[2];
void setup()
{
Wire.begin();
序列号.begin(57600);
}
void loop()
{
int i;
uint16_t 值=0;
BH1750_Init(BH1750地址);
延迟(200);
if(2==BH1750_Read(BH1750address))
{
val=((buff[0]<<8)|buff[1])/1.2;
Serial.print(val,DEC);
Serial.println("勒克斯");
}
延迟(150);
}
int BH1750_Read(int address) //
{
int i=0;
Wire.beginTransmission(地址);
Wire.requestFrom(地址, 2);
while(Wire.available()) //
{
buff
= Wire.read(); // 接收一个字节
i++;
}
Wire.endTransmission();
返回我;
}
void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.write(0x10);//1lx分辨率120ms
Wire.endTransmission();
}
所以我找到了。
```
#define BLYNK_PRINT Serial // 将其注释掉以禁用打印并节省空间
#include
#include
#include
#include
#include
#include // https://github.com/claws/BH1750 BH1750 测光表;#define DHTPIN 12 //传感器中的 pin gpio 12 #define DHTTYPE DHT22 // DHT 22 如果你有 DHT11 DHT dht(DHTPIN, DHTTYPE); // 你应该在 Blynk 应用程序中获得 Auth Token。// 转到项目设置(螺母图标)。char auth[] = "75a3e91cbdf1457c9498b35eea63e9c1"; // 将您的身份验证令牌放在这里。
Simpletimer定时器;
void setup()
{
Serial.begin(9600); // 在串行监视器中查看连接状态
Blynk.begin(auth, "ASUS", "Jersin72"); //在此处插入您的 SSID 和密码
lightMeter.begin();
// 设置一个每秒调用一次的函数
timer.setInterval(10000L, sendUptime);
}
void sendUptime()
{
uint16_t lux = lightMeter.readLightLevel();
Blynk.virtualWrite(4,勒克斯);
// 您可以随时发送任何值。
// 请不要每秒发送超过 10 个值。
//从DHT读取温度和湿度
float h = dht.readHumidity();
float t = dht.readTemperature();
Blynk.virtualWrite(12, t); // 虚拟引脚
Blynk.virtualWrite(13, h); // 虚拟引脚
}
void loop()
{
uint16_t lux = lightMeter.readLightLevel();
Serial.print("灯光:");
串行打印(勒克斯);
Serial.println("lx");
延迟(1000);
Blynk.运行();
定时器.run();
`
``