Метеостанция предназначена прежде всего для наблюдения за погодой, просмотром текущей температуры, влажности и атмосферного давления. Вещь очень удобная для рыбаков. Я решил сделать свою метеостанцию на основе Arduino, но с отображением данных на мобильном телефоне.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/a4e/5d1/668/a4e5d16687414d2aa89440d3216b11ab.jpg)
Принцип работы приложения — запускаем на телефоне с ос android, подключаемся к плате arduino по блютузу и, нажимая на иконки, получаем отображение различных данных.
Принцип работы метеостанции простой. При получении с телефона 1, опрашиваем датчик температуры DS18B20, который размещен на улице и отправляем данные на телефон, при получении 2, опрашиваем датчик температуры DS18B20, который размещен в комнате и отправляем данные на телефон. При получении 3, опрашиваем датчик BMP085, а при получении 4 — опрашиваем датчик влажности и тоже отправляем данные.
Сразу отвечу на вопрос «почему отображение данных на мобильном телефоне?». Мне так удобнее, тем более что я экономлю на покупке дисплея, на покупке кнопок и внутреннюю память микроконтроллера. Лень все-таки двигатель прогресса.
Ну а теперь после небольшого обзора работы перейдем к технической части проекта.
После удачного подключения всех датчиков загружаем скетч,
Приложение для телефона WSAB работает на ОС андроид 2.3 и выше, скачать WSAB.
Исходник программы и статья по созданию программы для андроид телефона
Все замечания и предложения жду в комментариях.
![image](https://habrastorage.org/getpro/habr/post_images/a4e/5d1/668/a4e5d16687414d2aa89440d3216b11ab.jpg)
Принцип работы приложения — запускаем на телефоне с ос android, подключаемся к плате arduino по блютузу и, нажимая на иконки, получаем отображение различных данных.
Принцип работы метеостанции простой. При получении с телефона 1, опрашиваем датчик температуры DS18B20, который размещен на улице и отправляем данные на телефон, при получении 2, опрашиваем датчик температуры DS18B20, который размещен в комнате и отправляем данные на телефон. При получении 3, опрашиваем датчик BMP085, а при получении 4 — опрашиваем датчик влажности и тоже отправляем данные.
Сразу отвечу на вопрос «почему отображение данных на мобильном телефоне?». Мне так удобнее, тем более что я экономлю на покупке дисплея, на покупке кнопок и внутреннюю память микроконтроллера. Лень все-таки двигатель прогресса.
Скриншоты с экрана мобильного телефона![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/635/126/7a2/6351267a2eabb9990444a2bfbfc34232.jpg)
Измерение температуры на улице в градусах Цельсия:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/e7f/096/abe/e7f096abeb16e34cd4e6f7cf54d5557c.jpg)
Измерение температуры в комнате в градусах Цельсия:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/cb5/163/6c1/cb51636c1661fd547f5c0df8b2c1b35b.jpg)
Измерение атмосферного давления на улице в мм. рт. ст.:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/dea/a8b/a39/deaa8ba39a9c89ca9e7f0adc4ffc4f5d.jpg)
Измерение влажности воздуха в %
![image](https://habrastorage.org/getpro/habr/post_images/635/126/7a2/6351267a2eabb9990444a2bfbfc34232.jpg)
Измерение температуры на улице в градусах Цельсия:
![image](https://habrastorage.org/getpro/habr/post_images/e7f/096/abe/e7f096abeb16e34cd4e6f7cf54d5557c.jpg)
Измерение температуры в комнате в градусах Цельсия:
![image](https://habrastorage.org/getpro/habr/post_images/cb5/163/6c1/cb51636c1661fd547f5c0df8b2c1b35b.jpg)
Измерение атмосферного давления на улице в мм. рт. ст.:
![image](https://habrastorage.org/getpro/habr/post_images/dea/a8b/a39/deaa8ba39a9c89ca9e7f0adc4ffc4f5d.jpg)
Измерение влажности воздуха в %
Ну а теперь после небольшого обзора работы перейдем к технической части проекта.
Схемы подключения датчиков
Схема подключения датчиков температуры DS18B20
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/086/a69/eb3/086a69eb30d3cc4c6c8b70703060bc48.jpg)
Датчики температуры необходимо подключать параллельно.
Схема подключения датчика BMP085:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/c7f/f84/775/c7ff8477572044fb627dbe5af63a8c20.png)
Схема подключения датчика DHT11:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/6e4/3da/13c/6e43da13cc6de97d24b6d0d5d16c362c.jpg)
Схема подключения модуля bluetooth HC-05:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/b43/0d9/4dc/b430d94dc72d10d263c3d9b599b38e1c.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/17c/72d/799/17c72d799dd6b82a6dd5135757520b56.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/086/a69/eb3/086a69eb30d3cc4c6c8b70703060bc48.jpg)
Датчики температуры необходимо подключать параллельно.
Схема подключения датчика BMP085:
![image](https://habrastorage.org/getpro/habr/post_images/c7f/f84/775/c7ff8477572044fb627dbe5af63a8c20.png)
Схема подключения датчика DHT11:
![image](https://habrastorage.org/getpro/habr/post_images/6e4/3da/13c/6e43da13cc6de97d24b6d0d5d16c362c.jpg)
Схема подключения модуля bluetooth HC-05:
![image](https://habrastorage.org/getpro/habr/post_images/b43/0d9/4dc/b430d94dc72d10d263c3d9b599b38e1c.jpg)
После удачного подключения всех датчиков загружаем скетч,
Скетч
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
#include <DS1307.h>
#include <EEPROM.h>
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer1 = {
0x28, 0x00, 0x54, 0xB6, 0x04, 0x00, 0x00, 0x92 };
DeviceAddress Thermometer3 = {
0x28, 0x94, 0xAC, 0xDF, 0x02, 0x00, 0x00, 0xB5 };
BMP085 dps = BMP085();
long Temperature = 0, Pressure = 0, Altitude = 0;
DHT dht(8, DHT11);
char incomingByte;
int x=0;
void setup() {
sensors.begin();
sensors.setResolution(Thermometer1, 10);
sensors.setResolution(Thermometer3, 10);
Wire.begin();
dps.init(MODE_ULTRA_HIGHRES, 21000, true);
dht.begin();
Serial.begin(9600);
}
void printTemperature(DeviceAddress deviceAddress) {
float tempC = sensors.getTempC(deviceAddress);
Serial.println(tempC,1);
}
void loop(){
sensors.requestTemperatures();
dps.getPressure(&Pressure);
int h = dht.readHumidity();
float t = dht.readTemperature();
if (Serial.available() > 0) {
incomingByte = Serial.read();
if(incomingByte == '1') {
x=2;
}
if(incomingByte == '2') {
x=1;
}
if(incomingByte == '3') {
x=3;
}
if(incomingByte == '4') {
x=4;
}
}
delay(100);
switch (x) {
case 1:
printTemperature(Thermometer1);
break;
case 2:
printTemperature(Thermometer3);
break;
case 3:
Serial.println(Pressure/133.3,1);
break;
case 4:
Serial.println(h);
break;
}
}
Приложение для телефона WSAB работает на ОС андроид 2.3 и выше, скачать WSAB.
Список необходимых компонентов и ссылки на продавцов в Китае
Датчики температуры DS18B20 – 2 шт
Датчик давления BMP085 – 1шт.
Датчик влажности DHT11 – 1шт.
плата Arduino Nano V3 – 1шт.
Bluetooth модуль HC-05 – 1шт.
Датчик давления BMP085 – 1шт.
Датчик влажности DHT11 – 1шт.
плата Arduino Nano V3 – 1шт.
Bluetooth модуль HC-05 – 1шт.
Исходник программы и статья по созданию программы для андроид телефона
Все замечания и предложения жду в комментариях.