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

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

Продовжуємо робити корисні і не дуже смарт/розумні/bluetooth девайси на ардуїно. У попередніх статтях я розповідав як зробити bluetooth машинку, bluetooth вольтметр і bluetooth пульт для телевізора, а сьогодні мова піде про створення більш модного, але менш корисного девайса. Цей давайс дозволяє постити в instagram показання термометра із зазначенням точного часу і місця вироблених замірів температури. Спочатку покажу як це виглядає і працює на відео, а докладний опис буде вже під катом.

А ось так виглядатимуть результати вимірювань в «Інстаграм»:

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

Ардуіно Нано

Додаток Bluetooth HC06

Датчик температури і вологості DHT11

Ардуіно Нано

Додаток 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, я зробив відео з трохи більш докладним описом процесу створення цієї програми (для перегляду потрібно перейти на ютуб).

https://www.youtube.com/watch?v=YX8yHQhHxBE

P.P.S. Збірник з понад 100 навчальних матеріалів по ардуїно для початківців і профі тут

Онлайн курс по ардуїно на гіктаймс тут.

Image