Arduino + Android = Метеостанция

Arduino Bluetooth 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() 
 {} 




Подключение:





Питание 3.3v
TX — TX
RX — RX
GND — GND
Key — 3.3v только для программирования модуля.



Если у вас модуль без шилда, то вот распиновка:





Соедините ардуину с компьютером, откройте монитор последовательного порта, подождите пару секунд и отправьте команду 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

Схему разделил на две части, чтоб не выглядело громоздко.
Резисторы не обязательны.




Скачиваем и устанавливаем библиотеку для подключения нескольких датчиков 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-модулем, а следом откроется главное окно программы.


Arduino Bluetooth Android Метеостанция

Значёк в правом углу становится синим при приёме данных. Если в течении 30 секунд отсутствуют данные или связь, то значёк станет серым
Если связь разорвалась, то нужно перезапустить приложение.


Кнопка   скроет приложение, а кнопка   разорвёт коннект и закроет его.




Вот и всё, теперь у вас есть настольные часы с метеостанцией.


Вступайте в Telegram-группу Arduino

Здесь можно почитать про управление ардуиной.








  • +202
  • 27751
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (2)

0
Как всегда отличная статья.
А можно ли всё тоже самое только вместо блютуса использовать ESP8266
0
Спасибо.
Есп ненадёжна, поэтому я её избегаю, а вообще конечно можно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.