Код товара: ENS-00929
Стартовый набор Starter Kit №1 для Arduino. Интернет вещей
|
Обратите внимание на близкий |
|
Мастер XXL. Образовательный набор для проектов Arduino |
|
СВЯЗНОЙ. Набор для проектов на основе контроллера Arduino |
|
Стартовый набор Starter Kit №9 для Arduino |
Направление микроэлектроники "Интернет вещей" (IoT) сейчас набирает всё большую популярность. По различным экспертным оценкам, к 2020 году стоимость мирового рынка Интернета вещей составит $7,1 трлн, а количество подключенных устройств достигнет цифры в 25 млрд.
Предлагаемый набор NodeMCU IOT programming learning starter kit призван помочь начинающим приобрести навыки создания и программирования устройств "Интернета вещей".
Состав набора:
плата NodeMCU ESP8266;
кабель micro-USB для подключения платы NodeMCU к компьютеру;
батарейный отсек на 4 AAA аккумулятора;
макетная плата BB-102 для монтажа без пайки;
5 кнопок и разноцветные колпачки к ним;
набор проводов MM и FF;
6 светодиодов ярких белых;
6 светодиодов красного цвета;
6 светодиодов зеленого цвета;
6 светодиодов желтого цвета;
3 фоторезистора;
3 потенциометра 10кОм;
датчик влажности и температуры DHT11;
датчик наклона;
ЖК дисплей 16x2 c интерфейсом I2C;
блок из 4 7-сегментных индикаторов;
шаговый двигатель 28BYJ-48 5 В с платой управления;
сервопривод SG90;
пьезодинамик;
ИК пульт управления и ИК-приемник VS1838B;
20 резисторов номиналом 200 Ом;
20 резисторов номиналом 1 кОм;
20 резисторов номиналом 10 кОм;
5 резисторов номиналом 1 Мом.
Ядро набора – плата 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.
Выбираем пункт Инструменты - Плата - BoardsManager и в списке ищем плату ESP8266. Выбираем этот пункт, версию и нажимаем на Install.
После загрузки программного обеспечения в списке плат (Инструменты - Плата ) появятся платы ESP8266.
Рассмотрим пример подключения датчика влажности и температуры DHT11 к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.
Нам потребуются следующие компоненты из набора:
плата NodeMCU ESP8266;
макетная плата BB-102 для монтажа без пайки;
датчик влажности и температуры DHT11;
несколько проводов MM.
Собираем следующую схему:
Для написания скетча понадобится загрузить и установить две библиотеки:
клиентская библиотека MQTT для общения с MQTT брокером;
библиотека DHT для доступа к датчику DHT11.
Создаем новый скетч следующего содержания:
#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/ вы можете посмотреть другие примеры.
------------------
УТЫ-00929:2950
Рекомендуем приобрести: |
Практическая энциклопедия Arduino / 2-е издание / Петин В.А., Биняковский А.А. |
Купившие этот товар также заказали: |