Стартовый набор Arduino Starter Kit №1 Интернет вещей

Код:00929
Артикул:SK-1
В наличии:есть
2 950 руб
2 750 руб
1
Стартовый набор Arduino Starter Kit №1
 
Тренд "Интернет вещей" (IoT) сейчас набирает всё большую популярность. По различным  экспертным оценкам, к 2020 году стоимость мирового рынка Интернета вещей составит $7,1 трлн, а количество подключенных устройств достигнет цифры в 25 млрд.
Предлагаемый набор NodeMCU IOT programming learning starter kit призван помочь начинающим приобрести навыки создания и программирования  устройств "Интернета вещей".

NodeMCU IOT programming learning starter kit
 
Состав набора:
 
 
Ядро набора –  плата NodeMCU, которая основана на WiFi  модуле ESP8266, представляющем собой полноценный 32-битный микроконтроллер, который на данный момент составляет серъезную конкуренцию плате Arduino.
К данному набору прилагается онлайн-учебник на английском языке (http://osoyoo.com/2016/11/28/3596/) – набор примеров для всех датчиков с подробными комментариями.
Для подключения к  Интернету вещей  в примерах  используется очень популярный и простой IoT протокол – MQTT.  MQTT (Message Queue Telemetry Transport) – лёгкий сетевой протокол работающий поверх TCP/IP. Используется для обмена сообщения между устройствами по принципу издатель-подписчик (publish–subscribe).
Программирование примеров рассмотрено в среде Arduino IDE для ESP8266. Если у вас есть некоторый опыт в кодировании Arduino, вы cможете начать программировать NodeMCU в кратчайшие сроки.
Изучив примеры вы сможете быстро перейти к созданию собственных проектов в области Интернета вещей.
Рассмотрим установку Arduino IDE для ESP8266. 
Сначала необходимо скачать Arduino IDE с официального сайта версии не ниже 1.6.5. Запускаем Arduino IDE. Выбираем пункт Файл à Настройки и в поле Additional Boards Manager URLs вводим http://arduino.esp8266.com/stable/package_esp8266com_index.json. Нажимаем OK.

NodeMCU IOT programming learning starter kit
 
Выбираем пункт Инструменты à Плата à BoardsManager и в списке ищем плату ESP8266. Выбираем этот пункт, версию и нажимаем на Install.
 

 

 

 
После загрузки программного обеспечения в списке плат (Инструменты à Плата à) появятся платы ESP8266.
 

 
Рассмотрим пример подключения датчика влажности и температуры DHT11 к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.
Нам потребуются следующие компоненты из набора:
Собираем следующую схему:
 
 

Для написания скетча понадобится загрузить и установить две библиотеки:
 
Создаем новый скетч следующего содержания:
 
#include
#include
#include
dht DHT;
 
// подключение датчика DHT11 к pin 3
#define DHT11_PIN D3
 
// Установить свои настройки сети
const char* ssid = "your_hotspot_ssid";
const char* password = "your_hotspot_password";
const char* mqtt_server = "broker.mqtt-dashboard.com";
//const char* mqtt_server = "iot.eclipse.org";
 
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
 
void setup_wifi() {
   delay(100);
  // Подключиться к WiFi сети
    Serial.print("Connecting to ");
    Serial.println(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
      delay(500);
      Serial.print(".");
    }
  randomSeed(micros());
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}
 
void callback(char* topic, byte* payload, unsigned int length)
{
  Serial.print("Command is : [");
  Serial.print(topic);
  int p =(char)payload[0]-'0';
  int chk = DHT.read11(DHT11_PIN);
  // if MQTT comes a 0 message, показать humidity
  if(p==0)
  {
    Serial.println("to show humidity!]");
    Serial.print(" Humidity is: " );
    Serial.print(DHT.humidity, 1);
    Serial.println('%');
  }
  // if MQTT comes a 1 message, показать temperature
  if(p==1)
  {
  // digitalWrite(BUILTIN_LED, HIGH);
    Serial.println(" is to show temperature!] ");
  int chk = DHT.read11(DHT11_PIN);
   Serial.print(" Temp is: " );
   Serial.print(DHT.temperature, 1);
   Serial.println(' C');
  }
  Serial.println();
} //end callback
 
void reconnect() {
 while (!client.connected())
  {
    Serial.print("Attempting MQTT connection...");
    // Создать  client ID - random
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    // Произвести соединение
    //если MQTT broker имееет clientID,username and password
    // используйте
    // (client.connect(clientId,userName,passWord))
    if (client.connect(clientId.c_str()))
    {
      Serial.println("connected");
     //подключение к MQTT broker
      client.subscribe("OsoyooCommand");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Пауза 6 секунд
      delay(6000);
    }
  }
}
 
void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
  int chk = DHT.read11(DHT11_PIN);
  Serial.print(" Starting Humidity: " );
  Serial.print(DHT.humidity, 1);
  Serial.println('%');
  Serial.print(" Starting Temparature ");
  Serial.print(DHT.temperature, 1);
  Serial.println('C');
}
 
void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
  long now = millis();
  // чтение данных с DHT11 каждые 6 секунд
  if (now - lastMsg > 6000) {
     lastMsg = now;
     int chk = DHT.read11(DHT11_PIN);
     String msg="real time temperature: ";
     msg= msg+ DHT.temperature;
     msg = msg+" C ;real time Humidity: " ;
     msg=msg+DHT.humidity ;
     msg=msg+"%";
     char message[58];
     msg.toCharArray(message,58);
     Serial.println(message);
     // отправить данные в MQTT broker
    client.publish("OsoyooData", message);
  }
}
 
 
Вносим в скетч следующие изменения:
SSID и пароль для точки подключения платы NodeMCU к вашей сети:
const char* ssid = "your_hotspot_ssid";
const char* password = "your_hotspot_password";
Если Вы будете использовать другой MQTT сервер, поменяйте его название в следующей строке:
const char* mqtt_server = "broker.mqtt-dashboard.com";
 
Загружаем скетч на нашу плату NodeMCU, открываем монитор последовательного порта и если соединения указаны правильно, видим отправку данных влажности и температуры датчика на сервер.
 

 
На странице http://osoyoo.com/2016/11/28/3596/ вы можете посмотреть другие примеры.
 


Рекомендуемые книги

    IoT          
Вверх