Каталог товаров

Модуль давления, температуры, влажности воздуха и интенсивности света на BME280 и MAX44009

Цена:

860 р.
ожидается
Уже в корзине
Код товара: 14846
Оригинальное название:
MAX44009+BME280+MCU Light Intensity Temperature Humidity Atmospheric Pressure Sensor Module

Описание товара

GY-39 - недорогой модуль, сочетающий в себе датчик атмосферного давления, температуры, влажности и интенсивности света, построенный на базе датчиков BME280 и MAX44009. На плате установлен микроконтроллер, который собирает и обрабатывает данные с датчиков и осуществляет коммуникацию по интерфейсам I2C и UART. Разнообразие интерфейсов позволяет подключить модуль как к микроконтроллеру, так и к ПК через преобразователь USB-UART.

Параметры:

  • Диапазон измерения температуры: -40 °...+85 °
  • Диапазон измерения влажности: 0%...100%
  • Диапазон измерения интенсивности света: 0.045...188000 lux
  • Диапазон измерения давления воздуха: 300...1100 hpa
  • Частота измерений: 10 Hz
  • Рабочее напряжение: 3...5 V
  • Рабочий ток: 5mA
  • Рабочая температура: -40 °...+85 °
  • Температура хранения: -40 °...+125 °
  • Размер: 24.3 x 26.7 mm

Назначение выводов:

  • VCC - Питание +3-5 вольт
  • CT - Последовательный порт UART_TX / IIC_SCL
  • DR - Последовательный порт UART_RX / IIC_SDA
  • GND - Общий (минус питания)
  • NC - Зарезервировано, не подключено
  • INT -  прерывание датчика MAX44009
  • SDA - Шина данных I2C
  • SCL - Шина тактовой частоты I2C
  • S0 - Выбор режима Serial / MCU_IIC
  • S1 - Используйте только выбор чипа датчика

При помощи вывода S0 можно выбрать интерфейс связи с установленным на плате микроконтроллером. Изначально выбран интерфейс UART. Чтобы подключиться к микроконтроллеру по интерфейсу I2C необходимо вывод S0 соединить с выводом GND. Для это вывод GND выведен рядом с S0.

Чтобы получить доступ по интерфейсу I2C непосредственно с датчиками BME280 и MAX44009, необходимо вывод S1 соединить с GND.

Встроенный в модуль микроконтроллер использует собственный протокол связи, который подробно описан в DataSheet.

Пример подключения модуля по интерфейсу UART в среде ArduinoIDE. Используются только стандартные библиотеки.

/////////////////////
/*
GY39----MINI
VCC----VCC
GND----GND
1:RX---TX,send A5 02 A7 to GY-39
2:TX---RX
3:MINI_TX---FT232_RX
*/
//////////////////
unsigned char Re_buf[15],counter=0;
unsigned char sign=0;
typedef struct
{
    uint32_t P;
    uint16_t Temp;
    uint16_t Hum;
    uint16_t Alt;
} bme;
void setup() {
 
   Serial.begin(9600);
  delay(1);
  Serial.write(0XA5);
  Serial.write(0X02);
  Serial.write(0XA7);
}

void loop() {
  unsigned char i=0,sum=0;
   uint16_t data_16[2]={0};
    bme Bme;
  if(sign)
  {   
  
     for(i=0;i<14;i++)
      sum+=Re_buf[i]; 
     if(sum==Re_buf[i] )
     {  	 
       Bme.Temp=(Re_buf[4]<<8)|Re_buf[5];
        data_16[0]=(Re_buf[6]<<8)|Re_buf[7];
        data_16[1]=(Re_buf[8]<<8)|Re_buf[9];
       Bme.P=(((uint32_t)data_16[0])<<16)|data_16[1];
       Bme.Hum=(Re_buf[10]<<8)|Re_buf[11];
       Bme.Alt=(Re_buf[12]<<8)|Re_buf[13];      
       Serial.print("Temp: ");
       Serial.print( (float)Bme.Temp/100);
       Serial.print(" DegC  PRESS : ");
       Serial.print( ((float)Bme.P)/100);
       Serial.print(" Pa  HUM : ");
       Serial.print( (float)Bme.Hum/100);
       Serial.print(" % ALT:");
       Serial.print( Bme.Alt);
       Serial.println("m");
 
    
    sign=0;        
   }
  } 

}
void serialEvent() {

 
      while (Serial.available()) {   
      Re_buf[counter]=(unsigned char)Serial.read();
      if(counter==0&&Re_buf[0]!=0x5A) return;         
      counter++;       
      if(counter==15)
      {    
         counter=0;
         sign=1;
      }      
      }

}

Пример подключения модуля по интерфейсу I2C в среде ArduinoIDE. Используются только стандартные библиотеки.

#include <Wire.h>
/////////////////////////////////
/*
GY-39-----mini
VCC----VCC
SCL----A5
SDA----A4
GND--GND
*/


//////////////////////////////////
#define uint16_t unsigned int
#define iic_add  0x5b
typedef struct
{
    uint32_t P;
    uint16_t Temp;
    uint16_t Hum;
    uint16_t Alt;
} bme;

bme Bme;
  uint32_t Lux;

void i2c_speed(uint16_t scl_speed)
{
  /* initialize TWI clock: 40 kHz clock, TWPS = 0 => prescaler = 1 */
  
  TWSR = 0;                         /* no prescaler */
  TWBR = ((F_CPU/scl_speed)-16)/2;  /* must be > 10 for stable operation */

}
void setup() {
       Serial.begin(115200);
       Wire.begin();
       i2c_speed(40000);
       delay(1); 
}
void loop() {

    get_bme();
    Serial.print("Temp: ");
    Serial.print( (float)Bme.Temp/100);
    Serial.print(" DegC  PRESS : ");
    Serial.print( ((float)Bme.P)/100);
    Serial.print(" Pa  HUM : ");
    Serial.print( (float)Bme.Hum/100);
    Serial.print(" % ALT:");
    Serial.print( Bme.Alt);
    Serial.println("m");
    get_lux();
    Serial.print( "Lux: ");
    Serial.print( ((float)Lux)/100);
    Serial.println(" lux");
    delay(200); 
}
void get_bme(void)
{
    uint16_t data_16[2]={0};
    uint8_t data[10]={0};
   iic_read(0x04,data,10);
   Bme.Temp=(data[0]<<8)|data[1];
   data_16[0]=(data[2]<<8)|data[3];
   data_16[1]=(data[4]<<8)|data[5];
   Bme.P=(((uint32_t)data_16[0])<<16)|data_16[1];
   Bme.Hum=(data[6]<<8)|data[7];
   Bme.Alt=(data[8]<<8)|data[9];
}
void get_lux(void)
{     
    uint16_t data_16[2]={0};
    uint8_t data[10]={0};
    iic_read(0x00,data,4);
    data_16[0]=(data[0]<<8)|data[1];
    data_16[1]=(data[2]<<8)|data[3];
    Lux=(((uint32_t)data_16[0])<<16)|data_16[1];

}
void iic_read(unsigned char reg,unsigned char *data,uint8_t len )
{
   Wire.beginTransmission(iic_add);  
   Wire.write(reg); 
   Wire.endTransmission(false);
   delayMicroseconds(10);
   if(len>4)
     Wire.requestFrom(iic_add,10);     
   else
     Wire.requestFrom(iic_add,4);
   for (uint8_t i = 0; i < len; i++)
    {  
       data[i] = Wire.read(); 
   }
  
}

Похожие позиции

6240 р.
Арт. 13178
Уже в корзине
менее 10 шт.
1490 р.
Арт. 14762
Уже в корзине
менее 10 шт.
340 р.
Арт. 15007
Уже в корзине
менее 10 шт.
100 р.
Арт. 10160
Уже в корзине
менее 500 шт.
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2022г https://compacttool.ru