1

Перейти к содержимому


       Торент трекер от http://stalker-worlds.ru        Хранилище сайта http://stalker-worlds.ru        Онлайн Сталкер Канал Унесенные Сталкером Присоединяйся к нашему сообществу на facebook Вступай в нашу группу в контакте


Добро пожаловать к нам на сайт! Про Ваш статус и права можно прочитать в Этой теме

Для просмотра картинок и скачивания файлов с форума - пройдите регистрацию!   Проблемы с регистрацией - вам сюда


Фотография

Метеостанция на Arduino Pro Mini

Метеостанция своими руками Метеостанция на Arduino

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Метеостанция своими руками.


Дело было вечером, делать было нечего - на улице идет дождь и скользко :(

Потому хочется занять голову да и руки тоже чем-нибудь полезным, творческим. Вот решил сделать метеостанцию своими руками.
Почему метеостанция???

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


Сейчас для ARDUINO существует куча датчиков измеряющих все и вся. Естественно точность измерений некоторых оставляет желать лучшего, но для бытовых/любительских нужд этого вполне достаточно.

Сначала пробегусь по компонентам, ссылки давать не буду, Все можно купить у китайцев или по спецмагазинам электроники. Многие компоненты покупал неспеша на алиэкспресе.

Arduino Pro Mini
pro-mini.jpg

Датчик давления ВМР180
2.jpg
Это основной датчик. Когда я увидел его китайцев, то понял, что хочу собрать именно домашнюю метеостанцию.


Часы реального времени DS1307
4.jpg
Ещё один компонент для моей метеостанции. На данном шилде реализованы часы реального времени.

Датчик температуры и влажности DHT11
1.jpg
Про данный датчик рассказывать нечего. Я бы его даже не стал использовать, если бы не нужна была влажность.
Минусы у датчика есть – данные с датчика идут только в целых числах, да и диапазон слабенький.

SD шилд для карточки (будем писать туда данные с датчиков)
3.jpg




KIS3R33S
Универсальный импульсный DC-DC преобразователь. Вход 7...24 В. Выход 5 В. 2,5 А.

6.jpg

Инфракрасный приемник VS1838 и безымянный пульт
5.jpg

Так как руки чесались поскорее опробовать было решено собрать для теста "навесным монтажом"


***
10.jpg


После сборки решил сравнить показания датчика давления с образцовым прибором (поверенным)
11.jpg
наша метеостанция

12.jpg
Калибратор

Как видите показания довольно точные :)


Немного поигравшись :) и постоянно путаясь в куче проводов, а они начали расти с ужасающей скоростью :(

Было принято решение сделать переходную плату (кросплата).

Для этого будем использовать такие вещи:
13.jpg


Час работы с паяльником и получаем такую плату.
14.jpg 15.jpg

Попивши чая и отдохнувший собрал все модули в одно целое:
20.jpg 21.jpg


При запуске не обошлось без казусов :)
перепутал пару проводков от дисплея и он гордо отказался что либо показывать.

Еще полчаса ушло на выяснение причины и в итоге имеем такие данные на дисплее.

1. Время и дата (с модуля часы реального времени DS1307)
22.jpg

2. Температура и давление в мм ртутного столба с датчика ВМР180
23.jpg

3. Температура и давление в паскалях (Р) с датчика ВМР180
26.jpg

4. Влажность и температура с датчика DHT11
24.jpg

5. Высота над уворнем моря (нужна доработка программного кода - врет немного)
25.jpg

6. Напряжение питания и время работы от момента включения питания (тестовый блок, для отладки)
27.jpg

Все надписи на английском из за того что индикатор не поддерживает кирилицу.

Использовал тот что был под рукой.
Если поставить рускоязычный индикатор 16 символов и 2 строки
то можно вывести намного больше информации.


Ну и напоследок одна из версий кода для ARDUINO
Метеостанция - программа
/*
  Нумерация выводов LCD :
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
   LCD R/W pin to ground
   10K resistor:
     ends to +5V and ground
     wiper to LCD VO pin (pin 3)
  ------------------------------------
  BMP180 цифровой модуль атмосферного давления Arduino
  I2C интерфейс
  Напряжение питания 1.8В - 6В
  Макс I2C скорость: 3.5 мГц
  Низкое энергопотребление-0.5uA на 1 Гц
  Очень низкий уровень шума-до 0.02hPa
  Диапазон давления: 300hPa до 1100hPa
  Температура -40 -  +85 С

  Any Arduino pins labeled:  SDA  SCL
  Uno, Redboard, Pro:        A4   A5
  Mega2560, Due:             20   21
  -----------------------------------
*/

// подключаемые библиотеки
#include <LiquidCrystal.h>
#include <Adafruit_BMP085.h>
#include <dht11.h>
#include <Wire.h>
#include <RTC.h>
RTC    time;

//создаём объект-сенсор bmp180 i2c
//SFE_BMP180 pressure;
Adafruit_BMP085 bmp;
//DHT sensor = DHT();
dht11 sensor;
#define DHT11PIN A1

// инициализировать библиотеку с номерами выводов интерфейса
LiquidCrystal lcd(9, 8, 5, 6, 3, 2);
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int kkl, tim;

//Место объявления ваших переменных

void setup() {
  //Место инициализации ваших переменных
  // методом attach объявляем к какому контакту подключен     // сенсор. В нашем примере это нулевой аналоговый контакт
  lcd.begin(8, 2);// задаем размерность дисплея
  //Serial.begin(9600);
  time.begin(RTC_DS1307);
  if (!bmp.begin()) {
    lcd.print("BMP180");
    delay(1000);
    lcd.clear();               //очистка экрана
    while (1) {}
  }

  // индикация загрузки :)
  for (kkl = 0; kkl < 2; kkl++)
  {
    lcd.print(".");  delay(150);               // ждем 0.25 секунды
    lcd.print(".");  delay(150);
    lcd.print(".");  delay(150);
    lcd.print(".");  delay(150);
    lcd.print(".");  delay(150);
    lcd.print(".");  delay(150);
    lcd.print(".");  delay(150);
    lcd.print(".");
    delay(500);               // ждем 1 секунду
    lcd.clear();               //очистка экрана
  }

}

void loop() {
  // Serial.println(time.gettime("d-m-y, H:i:s, D")); // выводим время
  for (tim = 0; tim < 10; tim++)
  {
    lcd.setCursor(0, 0);
    lcd.println(time.gettime("d-m-y")); // выводим дату
    lcd.setCursor(0, 1);
    lcd.println(time.gettime("H:i:s")); // выводим время
    delay(500); // ждем 50С
    lcd.clear();               //очистка экрана
  }
  lcd.setCursor(0, 0);
  lcd.println(time.gettime("  D   ")); // выводим день
  lcd.setCursor(0, 1);
  lcd.println(time.gettime("M")); // выводим месяц
  delay(3000); // ждем 50С
  lcd.clear();               //очистка экрана


  lcd.setCursor(0, 0);
  lcd.print("t "); lcd.print(bmp.readTemperature());    lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print(bmp.readPressure() * 0.0075006375541921);  lcd.print("mm");
  delay(5000); // ждем 3 С
  lcd.clear();               //очистка экрана

  lcd.setCursor(0, 0);
  lcd.print("t "); lcd.print(bmp.readTemperature());    lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print(bmp.readPressure());  lcd.print(" Pa");
  delay(3000); // ждем 3С
  lcd.clear();               //очистка экрана

  lcd.setCursor(0, 0);
  lcd.print("Altimetr");
  lcd.setCursor(0, 1);
  lcd.print(bmp.readAltitude());  lcd.print("m");
  delay(3000); // ждем 3С
  lcd.clear();    //очистка экрана

  /* Выводим влажность и температуру  */
  int chk = sensor.read(DHT11PIN);
  lcd.setCursor(0, 0); lcd.print("H = ");
  lcd.print(sensor.humidity); lcd.print("%");
  lcd.setCursor(0, 1); lcd.print("T = ");
  lcd.print(sensor.temperature); lcd.print(" C");
  delay(3000); // ждем 50С
  lcd.clear();

}


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#2
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

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

Архивирование замеров на SD карту и создание трендов (графиков).

Передача данных на компьютер и смарт (Android) .

Возможно датчик магнитной активности.....

Замена индикатора на 4 строки по 20 символов.


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#3
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Для управления с телефона метеостанцией нужен модуль Bluetooth

 

Мой взгляд упал на чудо китайской промышленности Bluetooth-модуль HC-05

sw_1454267629__hc-05.png

Что и было заказано на алиекспресе.

 

И какое же было мое разочарование когда была вскрыта посылка :)

Пришла только платка которая напаяна на картинке что выше.

Подняв разбирательство на али - получил ответ что продавец безвозмездно вышлет мне тот именно модуль что заказал а эту маленькую плату могу оставить себе как моральная компенсация :)

 

Ну не пропадать же ей :) при стоимости в несколько баксов???
Была заказана кросплата по месту и вот сегодня я ее спаял и опробовал на метеостанции - работает :)

 

bt1-.jpg  bt2.jpg

bt3.jpg

 

 


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#4
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

После нескольких часов мучений (сам виноват) :)
Наконец то дописан код для общения метеостанции и смарта (под Android).

Написано приложение для android используя онлайн сервис ai2.appinventor

 

Результат на скринах ниже.

Screenshot_20160201-010125.png  Screenshot_20160201-010129.png

Screenshot_20160201-010033.png  Screenshot_20160201-010030.png

Screenshot_20160201-010026.png  Screenshot_20160201-010021.png

 

 

Код и приложение требует еще причесывания и оптимизации :)


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#5
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Добавил в программу для смарта считывание еще двух параметров:

 

1. Высота над уровнем моря

Screenshot_20160201-152805.jpg

 

2. Текущее время на метеостанции

Screenshot_20160201-152801.jpg


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#6
LENA_D

LENA_D

    Ветер

  • В сети
  • админ Администратор
  • Темные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    23-July 10
  • 1931 Cообщений
  • Пропуск №: 2061


Репутация: 3987 Постов: 1931
  • Skype:lena_antoniva1
  • Страна проживания:Овруч - Полтава
  • Реальное имя:Лейла
  • Пол:Женщина
  • Город:Полтава

Руслан, мне кажется что лучше бы фон поменять (скин)с  черно - красного, сделать  темно серый с молнией, или темно синий, и сверху сбоку (можно или молнию, или ещё какой эффект)


Жизнь ломает сильнейших, ставя их на колени, чтобы доказать, что они могут подняться! Слабаков же она не трогает - они и так всю жизнь на коленях.
bar-reaktor.ru
Торрент torrent-stalker
Skype: lena_antoniva1


#7
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Продолжим...

Идея выносных датчиков меня не оставила :)

А поскольку у меня лежат уже года так с два пяток китайских радио-модулей nRF24L01+ (заказывал для экспериментов, да так руки и не дошли)

22_zpstirktkn1.jpg  header.jpg

То выбор пал на них :) для связи основного блока и блоков датчиков.

 

Окромя радиопередатчиков нужна была еще одна плата с микроконтролером для опроса датчиков и управлением передатчиком.

А поскольку меня давила жаба отдавать за неё 8$ то она была сделана вручную из того что было :)

ArduinoNG.jpg сравниваем оригинал и поделку :)

IMG_20160206_215300-.jpg  IMG_20160206_215339-.jpg

 

Ну вот все собрано на скорую руку и временно размещено на подоконнике, датчик температуры вынесен на проводках за окно.

IMG_20160206_220142-.jpg  IMG_20160206_220103-.jpg

 

На смарте видим температуру улицы (скачана из основного блока метеостанции по блютузу).

Screenshot_20160206-220213.jpg  Screenshot_20160206-220218.jpg


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#8
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Предварительные работы закончены :)
собрано все пока в макетном виде... :(
НО Работает!!  :sm32:

 

Поглядеть мониторинг можно тут :)  

http://narodmon.ru/329


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.


#9
RUS_D

RUS_D

    Главный АДМИН

  • Не в сети
  • Тех. Админ
  • админ Администратор
  • Старожил сайта
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    08-December 08
  • 2989 Cообщений
  • Пропуск №: 2


Репутация: 6803 Постов: 2989
  • Skype:rus_did
  • Страна проживания:Украина
  • Реальное имя:Руслан
  • Пол:Мужчина
  • Город:Полтавская обл.

Продолжение эпопеи тут http://stalker-world...iia-na-esp8266/


"Бить не нужно, а не вникнут - разъяснять" © В.С. Высоцкий
я в скайпе - rus_did
Мои детство и юность прошли без Интернета. Может быть, поэтому я понимаю, что за языком надо следить, а за слова отвечать.





Количество пользователей, читающих эту тему: 1

0 members, 1 guests, 0 anonymous users

яндекс.метрика
Button automatically alert search engines 31x31 WHOIS.UANIC.NAME - Identify traffic by Google

реклама на сайте подключена