Радио - это очень просто!

Многофункциональную плату расширения Easy Module Shield v 1

Артикул: ENS-00795
Есть в наличии
650 руб
добавить к сравнению перейти к сравнению
Быстрый заказ
  • Описание
  • Отзывы (0)

Представляет многофункциональную плату расширения, выполненную в виде шилда для установки на Arduino UNO R3.
Связка Arduino + Ethernet shield позволяет создавать устройства, реализующие концепция Internet of things ("Интернет вещей"), согласно которой доступ к данным датчиков или управление испонительными устройствами может быть обеспечено из любой точки мира. Но ни плата плата Arduino, ни Ethernet shield не содержат ни датчиков, ни исполнительных устройств. Их надо подключать. Easy Module Shield v 1- это универсальная плата для построения устройств для Интернета вещей (как измерение, так и управление), потому что на ней уже присутствуют датчики и устройства.

Easy Module Shield

На плате установлены следующие датчики и устройства:

- цифровой датчик температуры и влажности DHT11 (подключен к D4);
- аналоговый датчик температуры LM35 (A2);
- аналоговый датчик освещенности (A1);
- приемник ИК сигналов с пульта (D6);
- динамик для генерации простейших звуковых сигналов (D5);
- две кнопки (D2, D3);
- потенциометр (A0);
- cветодиод синий D13;
- cветодиод красный D12;
- RGB светодиод (D9, D10, D11).

Есть возможность подключения еще одного аналогового датчика (например, датчика влажности почвы) и нескольких цифровых (например цифровой датчик температуры DS18B20).
Также можно подключить устройства с интерфейсом UART (GPS модуль или Bluetooth) и интерфейсом I2C (барометр или гироскоп).

Схема Easy Module Shield v 1

Easy Module Shield

Кроме того выведены разъемы для подключения еще одного аналогового датчика (контакт A3) и нескольких цифровых (контакты D7, D8). К аналоговому входу можно подключить, например датчик влажности почвы SoilMoisture, к цифровому входу можно подсоединить несколько датчиков температуры DS18B20. Также есть возможность подключать устройства с интерфейсом UART (например, GPS модуль или Bluetooth) и интерфейсом I2C (например, барометр или гироскоп).
Рассмотрим пример отправки данных влажности воздуха (DHT11) и температуры воздуха (LM35) с платы Easy Module Shield v 1 в облачный сервисdata.sparcfun.com. Это бесплатный сервис для сохранения и отображения данных, отправляемых с IoT-устройств.
Переходим на основную страницу проекта http://data.sparcfun.com.

Easy Module Shield подключение

Для отправки данных в сервис необходимо создать поток. Нажимаем на кнопкуCREATEи на открывшейся странице заполняем данные для нашего потока –
Название, описание, названия передаваемых в поток параметров (Fields), теги, местоположение.
Вводим в качестве параметров Fields:

  • dht11_humidity– для показаний влажности воздуха датчика DHT11;
  • lm35_temp– для показаний температуры датчика LM35.

Easy Module Shield купить

Для сохранения нажимаем кнопкуSave. Открывается страница с данными для нашего потока. Для передачи данных с нашего устройства в сервис нам понадобятся следующие данные:

  • Public Key;
  • Private Key.

Формат отправки данных
http://data.sparkfun.com/input/[publicKey]?private_key=[privateKey]&dht11_humidity=[value]&lm35_temp=[value]
Страница для просмотра отправленных данных
https://data.sparkfun.com/streams/LQm5nXj7E1fjONaJLoGw

Easy Module Shield библиотека

Теперь собираем наше устройство (Arduino + Ethernet shield + Easy Module Shield), подключаем к сети Интернет и загружаем в него скетч (вам необходимо изменить параметры сетевого подключения на свои).

// датчик влажности воздуха
#define PIN_DHT 4
// датчик температуры LM35
#define PIN_LM35 A2
// dht
#include "DHT.h"
// тип датчика dht
#define DHTTYPE DHT11
// создать экземпляр DHT
DHT dht(PIN_DHT, DHTTYPE);

// Ethernet
#include
#include
// 1-dhcp, 0 - manual
#define DHCP 0
// mac-адрес Ethernet shield
byte arduino_mac[] = { 0xFF, 0xFE, 0xFB, 0xFA, 0xF9, 0xF8 };
EthernetClient client;
// если адрес статический
// (установить #define DHCP 1)
int mip[4]={192,168,0,121};
int mmask[4]={255,255,255,0};
int mgateway[4]={192,168,0,28};
int mdns[4]={192,168,1,1};
// для data.sparkFun
char server[] = "data.sparkfun.com";
const String publicKey = "LQm5nXj7E1fjONaJLoGw";
const String privateKey = "A19pd0zJeksbxBNVvnl9";
const byte NUM_FIELDS = 2;
const String fieldNames[NUM_FIELDS] = {"dht11_humidity", "lm35_temp"};
int fieldData[NUM_FIELDS];

void setup() {
Serial.begin(9600);
// установка сетевого соединения
ethernet_begin();
print_ip();
// инициализация dht11
dht.begin();
}

void loop() {
fieldData[0]=get_dht11();
fieldData[1]=get_lm35()-20;
Serial.print(fieldNames[0]);Serial.print("=");
Serial.println(fieldData[0]);
Serial.print(fieldNames[1]);Serial.print("=");
Serial.println(fieldData[1]);
sendData();
delay(30000);
}

// запустить ethernet
void ethernet_begin()
{
if(DHCP==1)
{
if(Ethernet.begin(arduino_mac)==0)
Serial.println("dhcp - error");
else
Serial.println("dhcp - ok");
}
else
{
IPAddress arduino_ip(mip[0],mip[1],mip[2],mip[3]);
IPAddress dns_ip(mdns[0],mdns[1],mdns[2],mdns[3]);
IPAddress gateway_ip(mgateway[0],mgateway[1],mgateway[2],mgateway[3]);
IPAddress subnet_mask(mmask[0],mmask[1],mmask[2],mmask[3]);
Ethernet.begin(arduino_mac, arduino_ip, dns_ip, gateway_ip, subnet_mask);
}
}
// вывести ip-адрес
void print_ip()
{
Serial.print("My IP address: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
Serial.print("My SUBNET: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
Serial.print(Ethernet.subnetMask()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
Serial.print("My GATEWAYIP: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
Serial.print(Ethernet.gatewayIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
Serial.print("My DNS: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
Serial.print(Ethernet.dnsServerIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
}
// получить показания с датчика DHT
int get_dht11()
{
float fhumidity;

fhumidity=dht.readHumidity();
if (isnan(fhumidity))
{
return 1000;
}
return int(fhumidity);
}
// получить показания LM35 - датчик температуры
int get_lm35()
{
double val=analogRead(PIN_LM35);
double voltage=val*5.00/1024;
double temp=voltage*100-273;

return int(temp);
}
// отправка данных
void sendData()
{
// Подключиться к хосту
if (client.connect(server, 80))
{
// Host: data.sparkfun.comn
// Connection: closen
//
client.print("GET /input/");
client.print(publicKey);
client.print("?private_key=");
client.print(privateKey);
for (int i=0; i {
client.print("&");
client.print(fieldNames[i]);
client.print("=");
client.print(fieldData[i]);
}

client.println(" HTTP/1.1");
client.print("Host: ");
client.println(server);
client.println("Connection: close");
client.println();
client.println();
client.stop();
client.flush();
}
else
{
Serial.println(F("Connection failed"));
client.stop();
client.flush();
}
}
Вывод данных в последовательный порт

Internet of things

И на страницеhttps://data.sparkfun.com/streams/LQm5nXj7E1fjONaJLoGwвидим отображение поступающих данных.

Умный дом

Скачать данный скетч и библиотеку DHT11

Пока нет отзывов
Вы не представились
Не правильно введен e-mail
нам интересно Ваше мнение о товаре
Все поля обязательны к заполнению
Перед публикацией отзывы проходят модерацию

Главное меню

Каталог

Полезные ссылки

Цена
от
до
0 Корзина: 0 руб
Sos
Быстрый заказ