Arduino + Android = Метеостанция
В статье рассказано как сделать метеостанцию с помощью ардуины, bluetooth-модуля HC-05 и смартфона.
Суть работы такова. Ардуина считывает показания с датчиков и отправляет их по UARTу bluetooth-модулю, тот в свою очередь передаёт дынные смартфону, в смартфоне данные разбираются и выводятся на экран.
Итак, нам понадобится Ардуина, bluetooth HC-05 и датчики DHT.
Bluetooth
Вначале нужно настроить модуль.
Так как программирование модуля осуществляется с помощью AT-команд, его необходимо подключить к компьютеру посредством USB-UART моста.
Сделать это можно воспользовавшись вот такой штукой:
Либо превратить ардуину в USB-UART мост замкнув контакт RST на землю (GND).
Либо сделать это программно с помощью вот такого незамысловатого скетча:
void setup()
{
pinMode(0, INPUT);
pinMode(1, INPUT);
}
void loop()
{}
Подключение:
Питание
TX — TX
RX — RX
GND — GND
Key —
Если у вас модуль без шилда, то вот распиновка:
Соедините ардуину с компьютером, откройте монитор последовательного порта, подождите пару секунд и отправьте команду AT
В окошке выбора завершающего символа установите NL & CR.
В режиме программирования скорость всегда 38400, а для рабочего режима можно устанавливать разные скорости (см. ниже).
Если модуль ответил ОК, то можно переходить к следующим командам.
Проверьте настройку UARTа для рабочего режима — AT+UART?
Две последние цифры должны быть ,1,0 (1 stop bit, no parity)
Если у вас другие значения, тогда введите такую команду — AT+UART=9600,1,0
Первая цифра это скорость, может быть: 9600,19200,38400,57600,115200,230400,460800, вторая StopBit, третья Parity.
Модуль ответит ОК.
Проверьте — AT+UART?
Всё окей...
Другие команды
Перезагрузка — AT+RESET
Версия — AT+VERSION?
Сброс настроек — AT+ORGL
Имя модуля — AT+NAME?
Сменить имя — AT+NAME=istarik.ru
Узнать пин код — AT+PSWD?
Сменить пин код — AT+PSWD=1235
Ещё команды
Модуль настроен.
Ардуина
Подключаем модуль вот по этой схеме:
Обратите внимание, (в сравнении с предыдущей схемой) RX и TX поменялись местами, отключён пин для программирования и убрана перемычка.
А датчики по этой:
Схему разделил на две части, чтоб не выглядело громоздко.
Резисторы не обязательны.
Скачиваем и устанавливаем библиотеку для подключения нескольких датчиков 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, после подтверждения появится окно с названием телефона и списком сопряжённых устройств (название, мак-адресс):
После касания нужного пункта, через пару секунд, установится соединение с вашим bluetooth-модулем, а следом откроется главное окно программы.
Значёк в правом углу становится синим при приёме данных. Если в течении 30 секунд отсутствуют данные или связь, то значёк станет серым
Если связь разорвалась, то нужно перезапустить приложение.
Кнопка скроет приложение, а кнопка разорвёт коннект и закроет его.
Вот и всё, теперь у вас есть настольные часы с метеостанцией.
Вступайте в Telegram-группу Arduino
Здесь можно почитать про управление ардуиной.
- +202
- stD
28707
Поддержать автора
Комментарии (2)
А можно ли всё тоже самое только вместо блютуса использовать ESP8266
Есп ненадёжна, поэтому я её избегаю, а вообще конечно можно.