Москва

+7 (495) 488-65-70

Корзина пуста
Загрузка списка товаров из файла
SALE!-10% -20% -30% -40% -50% -60%
дефицитные компоненты
Как с помощью WiFi модуля ESP8266 и радиомодуля MBee-868 собрать интернет шлюз для беспроводной сети

Как с помощью WiFi модуля ESP8266 и радиомодуля MBee-868 собрать интернет шлюз для беспроводной сети

Концепция Интернета вещей все более активно входит в нашу жизнь. Уже сейчас запущены сервисы, позволяющие управлять исполнительными устройствами, выводить данные с датчиков в Интернет, накапливать и отображать их. Но, к сожалению, большинство данных сервисов предполагает отдельное подключение каждого устройства (датчика) к всемирной сети. В видео, представленных ниже, демонстрируется как с помощью WiFi модуля ESP8266 и радиомодуля MBee-868 собрать интернет шлюз для беспроводной сети с практически неограниченным количеством узлов, построенной на радиомодулях MBee-868, вывести данные с них в облако и получить к ним доступ через Интернет с компьютера или смартфона.

Для этого потребуются: модуль ESP8266, макетная плата, модули MBee, конвертор USB-UART MB-USBridge и набор радиокомпонент. 

В качестве облачного сервиса будет использован ресурс: https://mydevices.com/

Интернет шлюз для беспроводной сети на радиомодулях MBee-868

Как вывести данные с датчика влажности и датчика температуры c модулем MBee 868 на борту в Интернет

Настройка модуля MBee-868 от компании СМК для управляемой розетки

Схемы

SCHlogo.png Схема MB-Gateway в формате *.sch
PDFlogo.png Схема MB-Gateway в формате *.pdf  
Sketch “MBeeCayenneWiFiMonitoringAndManagement”
 
  Скачать MBeeCayenneWiFiMonitoringAndManagement.ino  
/**
    * Скетч предназначен для вывода данных о температуре, измеряемой бортовым датчиком на модуле MBee,
    * и влажности, получаемой модулем MBee с датчика HIH4000, в Cayenne MyDevises, а также, для вкл/выкл электропотребителей.
    * Максимальное число датчиков - 10 шт.
    * Принимающий и передающий модули MBee-868-x.0 работают под управлением ПО Serial Star.
    * **/
   
#include
#include
#include
#include

#define LED 2    //Вывод контрольного светодиода.
#define ACTIVITY_CHECK_PERIOD    3600000     //Период проверик актуальности данных
#define SENSOR_OFF 0
#define SENSOR_ON 1
#define SENSORS_MAX_COUNT 10     //Максимальное число автономных устройств, передающих показания датчиков температуры и влажности

#define CMD_PARAMETER_LEN 1

// WiFi network info.
char ssid[] = "ssid";
char wifiPassword[] = "wifiPassword";

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "username";
char password[] = "password";
char clientID[] = "clientID";
const uint16_t sensor[SENSORS_MAX_COUNT] = {0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B};     //Адреса автономных устройств, передающих показания датчиков температуры и влажности

uint8_t flagActivityCheck [SENSORS_MAX_COUNT];

typedef struct
{
    uint8_t sof = 0x7E;
    uint8_t lengthMsb = 0x00;
    uint8_t lengthLsb = 0x08;
    uint8_t frameType = 0x17;
    uint8_t frameID = 0x00;
    uint8_t MSBDestination = 0x00;
    uint8_t LSBDestination = 0x0C;
    uint8_t remoteCommandOptions = 0x0D;
    unsigned char code[2] = {'L','5'};
    uint8_t commandParameter;
    uint8_t checkSum;
}TxFrame_t;

TxFrame_t frame;
SerialStar mbee;
RxIoSampleResponse ioSample;
SimpleTimer timer;
enum
{
    NO_EVENTS,
    ACTUATOR_ON,
    ACTUATOR_OFF
}events = NO_EVENTS;

void setup()
{
    Serial.begin(9600);
    mbee.begin(Serial);
    Cayenne.begin(username, password, clientID, ssid, wifiPassword);
    pinMode(LED, OUTPUT); //Настраиваем вывод контрольного светодиода.
    digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
    timer.setInterval(ACTIVITY_CHECK_PERIOD, sensorActivityCheck);
}

void loop()
{
    Cayenne.loop();
    timer.run();

    switch(events)
      {
       case ACTUATOR_ON:
       frame.commandParameter = 0x05;    //Команда установки на L5 высокого уровня.
       frame.checkSum = 0x49;
       sendCommand();
       events = NO_EVENTS;
       break;

    case ACTUATOR_OFF:
       frame.commandParameter = 0x04;     //Переводим L5 в низкий уровень.
       frame.checkSum = 0x4A;
       sendCommand();
       events = NO_EVENTS;
       break;
    default:
       break;
    }
    mbee.readPacket(); //Проверяем, если в буфере пакет.
       if(mbee.getResponse().isAvailable())
    {
       if(mbee.getResponse().getApiId() == IO_DATA_SAMPLE_API_FRAME)    //Является ли принятый пакет, пакетом с данными о состоянии датчиков удаленного модема?
       {

/**********************************************************************************************************/
       mbee.getResponse().getRxIoSampleResponse(ioSample);    //Получаем пакет с данными.

       for(uint8_t i = 0; i < SENSORS_MAX_COUNT; i++)
       {
        if(sensor[i] == ioSample.getRemoteAddress())
          {
             if(ioSample.getTemperature() < 128) //Переводим число из дополнительного кода в прямой.
             {
             Cayenne.celsiusWrite(i, ioSample.getTemperature());
             }
            else
             {
             Cayenne.celsiusWrite(i, 256 - ioSample.getTemperature());
             }
             Cayenne.virtualWrite(i + 10, getHIH4000Humidity(ioSample.getAnalog(1)));
             Cayenne.virtualWrite(i + 20, float(ioSample.getVbatt()) / 51);
             flagActivityCheck[i] = SENSOR_ON;
             }
          }
       }
    }
}

/*Функция пересчета влажности для датчика HIH4000**********************************************/
float getHIH4000Humidity(uint16_t adcData)
{
    float humidity;
    humidity = ((adcData *1.9881158) / 50) - 31.20521173;     //формула расчета влажности для данного датчика: (Vout*2-0.958)/0.0307. Умножаем на 2 из-за делителя на плате. Все остальное из datasheet на датчик     return humidity;
}

/*Функция проверки актуальности данных от датчиков*********************************************/

void sensorActivityCheck(void)
{
    for(uint8_t i = 0; i < SENSORS_MAX_COUNT; i++)
       {
       if(flagActivityCheck[i] == SENSOR_OFF)
       {
           Cayenne.celsiusWrite(i, 0);
           Cayenne.virtualWrite(i + 10, 0);
           Cayenne.virtualWrite(i + 20, 0);
           }
          else
           {
           flagActivityCheck[i] = SENSOR_OFF;
       }
    }
}

//Функция считывания из Cayenne*********************************************
CAYENNE_IN(31)
{
        if(getValue.asInt() == 1)
        {
        events = ACTUATOR_ON;
        }
       else if(getValue.asInt() == 0)
        {
        events = ACTUATOR_OFF;
        }
}

//Функция отправки данных модулю MBee*********************************************
void sendCommand()
{
    Serial.write((uint8_t*)&frame, sizeof(TxFrame_t));
}
Настройки модулей MBee в проекте MBee Cayenne WiFi Remote Control
 
Настройка модуля MBee для шлюза:

    +++     //Вход в командный режим
    ATRE     //Возврат к заводским настройкам
    ATAP 2     //Включение пакетного режима
    ATCN     //Сохранение настроек и перезагрузка


Настройка модуля MBee для автономного датчика:

    +++     //Вход в командный режим
    ATRE     //Возврат к заводским настройкам
    ATAС     //
    ATMY 2     //Устанавливаем собственный адрес устройства
    ATSM 4     //Включаем циклический режим сна
    ATSP 500    //Устанавливаем длительность сна равной 5 сек.
    ATDS 8     //Устанавливаем задержку перед измерением аналоговых датчиков равной 80 мс.
    AT L2 0     //Настраиваем GPIO
    AT L3 0
    AT L4 0
    AT L5 0
    AT R0 2
    AT R1 0
    AT R2 0
    AT R4 0
    AT R612
    AT R8 0
    ATCN     //Сохранение настроек и перезагрузка


Настройка модуля MBee для управляемой розетки:

    +++     //Вход в командный режим
    ATRE     //Возврат к заводским настройкам
    ATAС     //
    ATMY 0xC     //Устанавливаем собственный адрес устройства
    AT L2 0     //НастраиваемGPIO
    AT L3 0
    AT L4 0
    AT R1 0
    AT R2 0
    ATR4 0
    ATR6 0
    ATR8 0
    ATCN     //Сохранение настроек и перезагрузка


Репозиторий

Githublogo.png
GitHub
Прочее

PDFlogo.png
Инструкция по настройке (Instruction for project Monitoring and management with MyDevices)
XLSlogo.png
Specification MB-Gateway-1.1
JPGlogo.png
zelo-ac-dc_scheme2

Сопутствующие товары

MBee-868-2.0-SMA-PLS12.jpg MBee-868-2.0 – Радиомодули большой выходной мощности диапазона 868 МГц, предназначенные для использования в составе систем беспроводной передачи данных и управления.
ArduinoUNO ArduinoUNO – Компьютер размером с ладонь на базе процессора с частотой 16 МГц и памятью 32 кБ.
MB-USBridge MB-USBridge – Конвертер USB-UART. Может быть использован в качестве платформы для соединения радиомодулей MBee с хост-системой.
MB-TAG-1.2-OEM MB-Tag – Устройство предназначено для использования совместно с беспроводными радиомодулями MBee, в качестве узла с автономным (батарейным) питанием.

 

MB-Serial MB-Serial – Конвертер RS-232/485-UART, предназначенный для подключения к компьютеру либо другому устройству радиомодулей MBee.
 

Производители: СМК

Разделы: Приемо-передатчики

Опубликовано: 16.10.2017

Товары

MBee-868-2.0-SMA-PLS12 MBee-868-2.0-SMA-PLS12 (СМК)
49 шт.
нет в наличии
добавить к сравнению
MBee-868-2.0-WIRE-SOLDER MBee-868-2.0-WIRE-SOLDER (СМК)
0 шт.
нет в наличии
добавить к сравнению
MBee-DUAL-3.3-UFL-SOLDER-1350-UFL MBee-DUAL-3.3-UFL-SOLDER-1350-UFL (СМК)
0 шт.
нет в наличии
добавить к сравнению
  • Москва
  • Санкт-Петербург
  • Мурманск
  • Ульяновск
  • Новосибирск
  • Екатеринбург
  • Краснодар
  • Нижний Новгород
  • Воронеж
  • Уфа
  • Челябинск
  • Самара
  • Красноярск
  • Казань
  • Ростов-на-Дону
  • Саратов
  • Пермь
  • Томск
  • Иркутск
  • Омск
  • Тюмень

Актуальность предложений на товары в корзине истекла, данные были удалены 19.07.2025 в 00:00:00 (Мск.) Список позиций из корзины сохранен в Списке товаров
Актуальность предложений на товары в корзине истекла, данные были удалены 19.07.2025 в 00:00:00 (Мск.) Зарегистрируйтесь или авторизуйтесь на сайте, если регистрировались ранее, чтобы сохранять список товаров из корзины

Данный товар получен от клиентов, которые купили его для целей производства, но он оказался не востребован. Возможно отсутствие ГТД и страны происхождения.