Чтение датчика Chirp возвращает только большие одинаковые значения - PullRequest
0 голосов
/ 24 марта 2020

несколько месяцев go Я купил какой-то датчик на Али express, который называется «ЧИП полива растений 2.4». https://wemakethings.net/chirp/

Я попробовал их пример кода для чтения и управления датчиками через d1 mini. К сожалению, я получаю только одно и то же значение каждый раз. 4294967295 для каждого i2 c, считываемого на каждом датчике. Я подключаю выводы SDA / SD C, как в распиновке на сайте.

Пример кода:

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
}

void writeI2CRegister8bit(int addr, int value) {
  Wire.beginTransmission(addr);
  Wire.write(value);
  Wire.endTransmission();
}

unsigned int readI2CRegister16bit(int addr, int reg) {
  Wire.beginTransmission(addr);
  Wire.write(reg);
  Wire.endTransmission();
  delay(1100);
  Wire.requestFrom(addr, 2);
  unsigned int t = Wire.read() << 8;
  t = t | Wire.read();
  return t;
}

void loop() {
  Serial.print(readI2CRegister16bit(0x20, 0)); //read capacitance register
  writeI2CRegister8bit(0x20, 3); //request light measurement 
  delay(9000);                   //this can take a while
  Serial.print(", ");
  Serial.println(readI2CRegister16bit(0x20, 4)); //read light register
  delay(500);
}
...