Продовжуємо робити корисні і не дуже смарт/розумні/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 навчальних матеріалів по ардуїно для початківців і профі тут
Онлайн курс по ардуїно на гіктаймс тут.