А вот так будут выглядеть результаты измерений в «Инстаграм»:
Теперь вкраце расскажу о конструкции и схеме подключения. Мой bluetooth/instagram термометр состоит из:
Ардуино Нано
Bluetooth модуль HC06
Датчик температуры и влажности DHT11
Вообще, датчик температуры можно использовать любой из тех, которые возможно подключить к ардуино. Я, например, пробовал еще использовать DS18B20. Главное, чтобы под этот датчик существовала библиотека для ардуино. И совсем уж идеальный случай, если в библиотеке есть готовый скетч, который отправляет значения температуры в serial port. Тогда можно использовать именно этот скетч для передачи данных через bluetooth модуль. Тут все очень просто, но на всякий случай оставлю схему подключения и скетч для датчика DHT11, если кто-то захочет использовать именно его. Библиотека для dht 11
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
unsigned long a;
void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(«Failed to read from DHT sensor!»);
return;
}
if (Serial.available())
{ a = Serial.parseInt();
if (a==1) {
float hi = dht.computeHeatIndex(f, h);
Serial.print(«Humidity: „);
Serial.print(h);
Serial.print(“ %\t»);
Serial.print(«Temperature: „);
Serial.print(t);
Serial.print(“ *C „);
}
}
}
С “железной» частью разобрались, теперь можно приступать к написанию android-приложения. Проще всего его сделать используя среду визуальной разработки android-приложений App Inventor 2. Работает она из браузера, устанавливать ничего не нужно. Разберется любой ардуинщик. На скриншоте список элементов, используемых в приложении, их рассположение и некоторые характеристики.
Само приложение тоже довольно простое и выглядит так:
Состоит приложение всего из 5 блоков, два из которых (Listpicker) отвечают за подключение к одному из сопряженных bluetooth устройств. Screen1 выполняется только при запуске программы, доставая из памяти телефона мак-адрес последнего подключенного устройства, а также запуская определение адреса местоположения смартфона. Clock1 отвечает за смену показаний секундомера и проверяет, поступилп ли новая информация о температуре. Button1 отправляет запрос на ардуино для обновления информации, если понадобится.
Ну и в заключении про внешний вид bluetooth/instagram термометра. Работает этот девайс у меня на балконе, поэтому воздейстрию природных явлений не подвержен, а следовательно и корпус ему не к чему.Возможно, если найдется какое-то простое решение для корпуса, когда-нибудь установлю его за окном, А пока выглядит bluetooth/instagram термометр так:
Ну а андроид-приложение получилось таким:
P.S. Для тех, кто вообще никогда не сталкивался с созданием приложений в App Inventor 2, я сделал видео с чуть более подробным описанием процесса создания этого приложения.
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий