Arduino + Android = Метеостанция
![Arduino Bluetooth Android Метеостанция Arduino Bluetooth Android Метеостанция](http://istarik.ru/uploads/images/00/00/01/2016/02/02/aadff5.png)
В статье рассказано как сделать метеостанцию с помощью ардуины, bluetooth-модуля HC-05 и смартфона.
Суть работы такова. Ардуина считывает показания с датчиков и отправляет их по UARTу bluetooth-модулю, тот в свою очередь передаёт дынные смартфону, в смартфоне данные разбираются и выводятся на экран.
Итак, нам понадобится Ардуина, bluetooth HC-05 и датчики DHT.
Bluetooth
Вначале нужно настроить модуль.
Так как программирование модуля осуществляется с помощью AT-команд, его необходимо подключить к компьютеру посредством USB-UART моста.
Сделать это можно воспользовавшись вот такой штукой:
![](http://istarik.ru/uploads/images/00/00/01/2016/01/24/3ad8f5.jpg)
Либо превратить ардуину в USB-UART мост замкнув контакт RST на землю (GND).
Либо сделать это программно с помощью вот такого незамысловатого скетча:
void setup()
{
pinMode(0, INPUT);
pinMode(1, INPUT);
}
void loop()
{}
Подключение:
![](http://istarik.ru/uploads/images/00/00/01/2016/01/24/c6f264.png)
Питание
TX — TX
RX — RX
GND — GND
Key —
Если у вас модуль без шилда, то вот распиновка:
![](http://istarik.ru/uploads/images/00/00/01/2016/01/24/7ab76c.png)
Соедините ардуину с компьютером, откройте монитор последовательного порта, подождите пару секунд и отправьте команду AT
![](http://istarik.ru/uploads/images/00/00/01/2016/01/24/510a2a.png)
В окошке выбора завершающего символа установите NL & CR.
В режиме программирования скорость всегда 38400, а для рабочего режима можно устанавливать разные скорости (см. ниже).
Если модуль ответил ОК, то можно переходить к следующим командам.
Проверьте настройку UARTа для рабочего режима — AT+UART?
![](http://istarik.ru/uploads/images/00/00/01/2016/01/25/140c38.png)
Две последние цифры должны быть ,1,0 (1 stop bit, no parity)
Если у вас другие значения, тогда введите такую команду — AT+UART=9600,1,0
Первая цифра это скорость, может быть: 9600,19200,38400,57600,115200,230400,460800, вторая StopBit, третья Parity.
![](http://istarik.ru/uploads/images/00/00/01/2016/01/25/e086f2.png)
Модуль ответит ОК.
Проверьте — AT+UART?
![](http://istarik.ru/uploads/images/00/00/01/2016/01/25/140c38.png)
Всё окей...
Другие команды
Перезагрузка — AT+RESET
Версия — AT+VERSION?
Сброс настроек — AT+ORGL
Имя модуля — AT+NAME?
Сменить имя — AT+NAME=istarik.ru
Узнать пин код — AT+PSWD?
Сменить пин код — AT+PSWD=1235
Ещё команды
Модуль настроен.
Ардуина
Подключаем модуль вот по этой схеме:
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/f30eda.png)
Обратите внимание, (в сравнении с предыдущей схемой) RX и TX поменялись местами, отключён пин для программирования и убрана перемычка.
А датчики по этой:
![DHT DHT](http://istarik.ru/uploads/images/00/00/01/2015/09/04/6e8ce6.png)
Схему разделил на две части, чтоб не выглядело громоздко.
Резисторы не обязательны.
Скачиваем и устанавливаем библиотеку для подключения нескольких датчиков DHT, подробно о ней написано тут.
Заливаем скетч:
#include "stDHT.h"
DHT sens(DHT22); // Указать датчик DHT11, DHT21, DHT22
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
}
void loop()
{
int t = sens.readTemperature(2); // чтение датчика на пине 2
int h = sens.readHumidity(2); // чтение датчика на пине 2
delay(2000);
int t2 = sens.readTemperature(3); // чтение датчика на пине 3
int h2 = sens.readHumidity(3); // чтение датчика на пине 3
delay(2000);
Serial.print("A");
Serial.print(" ");
Serial.print(t);
Serial.print(" ");
Serial.print(h);
Serial.print(" ");
Serial.print(t2);
Serial.print(" ");
Serial.print(h2);
Serial.print(" ");
Serial.print(0); // не удалять
Serial.print(" ");
Serial.print(0); // не удалять
Serial.print(" ");
Serial.println("Z");
}
Если установили у модуля другую скорость, то не забудьте поменять её в скетче.
Android
Выполните сопряжение телефона с bluetooth-модулем (если не меняли пароль, то он скорее всего 1234, либо 0000).
Откройте браузер на телефоне, перейдите по ссылке istarik.ru/file/climat.apk, установите и откройте приложение (попросит разрешения).
Всплывёт запрос на включение Bluetooth, после подтверждения появится окно с названием телефона и списком сопряжённых устройств (название, мак-адресс):
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/c25629.png)
После касания нужного пункта, через пару секунд, установится соединение с вашим bluetooth-модулем, а следом откроется главное окно программы.
![Arduino Bluetooth Android Метеостанция Arduino Bluetooth Android Метеостанция](http://istarik.ru/uploads/images/00/00/01/2016/02/02/aadff5.png)
Значёк
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/e07d7b.png)
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/8eed6e.png)
Если связь разорвалась, то нужно перезапустить приложение.
Кнопка
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/7fe55c.png)
![](http://istarik.ru/uploads/images/00/00/01/2016/02/05/f586ad.png)
Вот и всё, теперь у вас есть настольные часы с метеостанцией.
Вступайте в Telegram-группу Arduino
![](http://istarik.ru/uploads/images/00/00/01/2018/06/12/db2560.png)
Здесь можно почитать про управление ардуиной.
![](http://istarik.ru/uploads/images/thnd.png)
- +202
- stD
28228
Поддержать автора
Комментарии (2)
А можно ли всё тоже самое только вместо блютуса использовать ESP8266
Есп ненадёжна, поэтому я её избегаю, а вообще конечно можно.