Давайте попробуем плату Wemos D1 mini ESP8266, DHT & щиты на релле


Wemos D1 является мини-платой ESP8266, она интересна благодаря своим размерам, низкой цене ($ 4), микро-USB, мощностью щитов, а также документацией, которая выглядит довольно хорошо. Плата может быть запрограммирована с помощью Arduino или Lua, и поддерживает как последовательное так и OTA программирование. Я решил попробовать и купил плату вместе с двумя экранами температуры, реле щита, а также микро SD щитом.

Click to Enlarge

Я получил всё за $ 14.00 в магазине Wemos на Aliexpress , доставка заняла около одного месяца. Я также увидел, что они недавно выпустили новый OLED-экран по цене около $ 5. Все щиты были погружены в свои собственные антистатические пакеты.

WeMos_D1_mini_ESP8266_module

с одной стороны плата имеет последовательный порт CH340  на чипе USB, а также кнопку сброса.

WeMos_D1_mini_CH340

Предоставленные разъемы позволяют легко устанавливать на плату несколько экранов. Например, я подключил Wemos D1 mini на обоих реле экран и DHT Pro экран после того как припаял их к некоторым из разъемов. Единственная потенциальная проблема в том что можно припаять их неправильной стороной, так что вы просто должны убедиться, что контакты (5V, RST, …) правильно выровнены.

WeMos_D1_Relay_DHT_Shield

Я в основном следовал руководству по работе с Arduino с сайта Wemos.cc, те же кто предпочитает программировать на Lua / NodeMCU изучите руководство по NodeMCU. Существуют различные способы, настройки Arduino IDE для WeMos D1 мини, но я использовал только рекомендуемый способ: через Git.

Первым шагом были установка и запуск Arduino 1.6.8. Так как я использую компьютер под управлением Ubuntu 14.04, я скачал и установил Arduino 1.6.8 для Linux:

tar xvf arduino-1.6.8-linux64.tar.xz
cd arduino-1.6.8
./arduino

Теперь получим папку SketchBook, перейдя в File->Preferences

Arduino_Sketchbook_folder

Обратите внимание на эту папку,так как в неё мы будем устанавливать файлы для поддержки платы , инструменты и примеры, выйдем из Arduino перед началом установки:

Arduino_1.6.8_Wemos_D1_mini

Мы можем использовать параметры по умолчанию, которые включают в себя частоту процессора в 80 МГц, 4М памяти, скорость загрузки 912600 в / DEV / port ttyUSB0.

Теперь мы можем использовать образцы кода, что бы убедиться, что все работает я запущу проект blink: File->Sketchbooks->D1_mini_Examples->01. Basics->Blink:

/*
* Blink
* Turns on the onboard LED on for one second, then off for one second, repeatedly.
* This uses delay() to pause between LED toggles.
*/
 
void setup() {
  pinMode(BUILTIN_LED, OUTPUT);  // initialize onboard LED as output
}
 
void loop() {
  digitalWrite(BUILTIN_LED, HIGH);  // turn on LED with voltage HIGH
  delay(1000);                      // wait one second
  digitalWrite(BUILTIN_LED, LOW);   // turn off LED with voltage LOW
  delay(1000);                      // wait one second
}

При нажатии кнопки Upload будет скомпилирован и загружен код на плату и, как только это будет завершено, встроенный синий светодиод (D4 / GPIO2) будет мигать каждую секунду. Так что моя плата работает.

WeMos_D1_mini_Blink

Как вы можете видеть, что я уже подключили DHT Pro экран к доске, так что давайте попробуем пример для экрана, чтобы получить температуру и влажность нужно пойти в  File->Sketchbooks->D1_mini_Examples->04. Shield->DHT_Pro_Shield->Simple:

/* DHT Pro Shield - Simple
*
* Example testing sketch for various DHT humidity/temperature sensors
* Written by ladyada, public domain
*
* Depends on Adafruit DHT Arduino library
* https://github.com/adafruit/DHT-sensor-library
*/
 
#include "DHT.h"
 
#define DHTPIN D4     // what pin we're connected to
 
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
 
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
 
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");
 
  dht.begin();
}
 
void loop() {
  // Wait a few seconds between measurements.
  delay(2000);
 
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);
 
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
 
  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);
 
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
}

Но на этот раз у меня была ошибка во время компиляции, а библиотека DHT отсутствовала:

Install_DHT_LibraryТеперь нажмите на кнопку Загрузить еще раз, код будет скомпилирован и загружен на борту. Теперь откройте монитор последовательного порта с Ctrl + Shift M или Tools->Serial Monitor, и вы должны увидеть значения влажности в процентах, а также индекса температуры и тепла в градусах Цельсия или Фаренгейта.

Wemos_D1_mini_Temperature_HumidityТемпература соответствовала температуре с моего ИК-термометра (32,5 C). Если вы хотите, чтобы полученные результаты отображаются на веб-странице вместо этого, вы можете изменить пример  DHT Shield->SimpleServer.

Теперь я попробую релейный экран и запустить другой образец (File->Sketchbooks->D1_mini_Examples->04. Shield->Relay_Shield->Blink):
Arduino_Wemos_D1_mini_Relay_sample

/*
* Relay Shield - Blink
* Turns on the relay for two seconds, then off for two seconds, repeatedly.
*
* Relay Shield transistor closes relay when D1 is HIGH
*/
 
const int relayPin = D1;
const long interval = 2000;  // pause for two seconds
 
void setup() {
  pinMode(relayPin, OUTPUT);
}
 
void loop() {
  digitalWrite(relayPin, HIGH); // turn on relay with voltage HIGH
  delay(interval);              // pause
  digitalWrite(relayPin, LOW);  // turn off relay with voltage LOW
  delay(interval);              // pause
}

Пример с миганием будет включать и выключать реле через каждые две секунды. Поскольку Pro экран DHT использует разъем D4 а так же использует разъем D1 оба могут быть использованы одновременно. У меня не было никаких проблем с загрузкой образца на плату, реле включается и выключается каждые 2 секунды.

Так что в целом, я очень доволен WeMos D1 mini и щитами он отлично работает из коробки, и у меня есть ультра-компактный WiFi подключенный к системе с реле 5А / 250В, и довольно точный (+/- 0.5C) датчик температуры и влажности всего $ 10.

Благодарим сайт cnx-software.com за предоставленную информацию

Оригинал статьи тут

 

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments