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

Продолжаем делать полезные и не очень смарт/умные/bluetooth девайсы на ардуино. В предыдущих статьях я рассказывал как сделать bluetooth машинку, bluetooth вольтметр и bluetooth пульт для телевизора, а сегодня речь пойдет о создании более модного, но менее полезного девайса. Этот давайс позволяет постить в instagram показания термометра с указанием точного времени и места производимых замеров температуры. Сначала покажу как это выглядит и работает на видео, а подробное описание будет уже под катом.[embedded content]А вот так будут выглядеть результаты измерений в «Инстаграм»: 67e04863a71a479284c52ad83318ac83.jpgТеперь вкраце расскажу о конструкции и схеме подключения. Мой bluetooth/instagram термометр состоит из: Ардуино НаноBluetooth модуль HC06Датчик температуры и влажности DHT11Вообще, датчик температуры можно использовать любой из тех, которые возможно подключить к ардуино. Я, например, пробовал еще использовать DS18B20. Главное, чтобы под этот датчик существовала библиотека для ардуино. И совсем уж идеальный случай, если в библиотеке есть готовый скетч, который отправляет значения температуры в serial port. Тогда можно использовать именно этот скетч для передачи данных через bluetooth модуль. Тут все очень просто, но на всякий случай оставлю схему подключения и скетч для датчика DHT11, если кто-то захочет использовать именно его. Библиотека для dht 11скетч #include «DHT.h»#define DHTPIN 2#define DHTTYPE DHT11 // DHT 11DHT 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 »);}}}

99f1be0b8f9249679ecd3083d139101c.jpgС «железной» частью разобрались, теперь можно приступать к написанию android-приложения. Проще всего его сделать используя среду визуальной разработки android-приложений App Inventor 2. Работает она из браузера, устанавливать ничего не нужно. Разберется любой ардуинщик. На скриншоте список элементов, используемых в приложении, их рассположение и некоторые характеристики.9193eda92a6e4067a1c0521502426e3b.jpgСамо приложение тоже довольно простое и выглядит так: b9f9d26e38544eb8a3e5e725c56bb806.jpgСостоит приложение всего из 5 блоков, два из которых (Listpicker) отвечают за подключение к одному из сопряженных bluetooth устройств. Screen1 выполняется только при запуске программы, доставая из памяти телефона мак-адрес последнего подключенного устройства, а также запуская определение адреса местоположения смартфона. Clock1 отвечает за смену показаний секундомера и проверяет, поступилп ли новая информация о температуре. Button1 отправляет запрос на ардуино для обновления информации, если понадобится.Ну и в заключении про внешний вид bluetooth/instagram термометра. Работает этот девайс у меня на балконе, поэтому воздейстрию природных явлений не подвержен, а следовательно и корпус ему не к чему.Возможно, если найдется какое-то простое решение для корпуса, когда-нибудь установлю его за окном, А пока выглядит bluetooth/instagram термометр так: 98f2de6215614b43bad895a93e8c3c93.jpgНу, а андроид-приложение получилось таким: 6338aa2863714d0aa286c93f714c262f.jpgP.S. Для тех, кто вообще никогда не сталкивался с созданием приложений в App Inventor 2, я сделал видео с чуть более подробным описанием процесса создания этого приложения.[embedded content]

© Habrahabr.ru