...

среда, 25 марта 2015 г.

DIY термометр для «Инстаграм» на arduino nano

Продолжаем делать полезные и не очень смарт/умные/bluetooth девайсы на ардуино. В предыдущих статьях я рассказывал как сделать bluetooth машинку, bluetooth вольтметр и bluetooth пульт для телевизора, а сегодня речь пойдет о создании более модного, но менее полезного девайса. Этот давайс позволяет постить в instagram показания термометра с указанием точного времени и места производимых замеров температуры. Сначала покажу как это выглядит и работает на видео, а подробное описание будет уже под катом.





А вот так будут выглядеть результаты измерений в «Инстаграм»:



Теперь вкраце расскажу о конструкции и схеме подключения. Мой bluetooth/instagram термометр состоит из:

Ардуино Нано

Bluetooth модуль HC06

Датчик температуры и влажности DHT11

Вообще, датчик температуры можно использовать любой из тех, которые возможно подключить к ардуино. Я, например, пробовал еще использовать DS18B20. Главное, чтобы под этот датчик существовала библиотека для ардуино. И совсем уж идеальный случай, если в библиотеке есть готовый скетч, который отправляет значения температуры в serial port. Тогда можно использовать именно этот скетч для передачи данных через bluetooth модуль. Тут все очень просто, но на всякий случай оставлю схему подключения и скетч для датчика DHT11, если кто-то захочет использовать именно его. Библиотека для dht 11

скетч
#include «DHT.h»

#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.


Комментариев нет:

Отправить комментарий