Не прошло и двух месяцев с момента заказа на eBay датчика BMP085, и вот он пришел!
Необходимо добавить функционал серверу домашней метеостанции и виджету для Android, отображающему данные с сервера (см. статью).
Итак, модуль BMP085 - цифровой датчик атмосферного давления с низким энергопотреблением. Также, датчик позволяет измерять температуру. Интерфейс подключения: I2C. Напряжение питания датчика 1.8-3.6 В
Подключается модуль к Arduino также, как и другие I2C устройства:
- VCC - VCC (3,3 В);
- GND - GND;
- SCL - к аналоговому выводу 5;
- SDA - к аналоговому выводу 4.
Схема приобретает следующий вид
Вносим изменение в скетч Arduino. Напоминаю - с помощью Ethernet shield на Arduino поднят web-сервер, который при обращении к нему, опрашивает датчики и отдает результат в формате JSON. Необходимо добавить опрос датчика давления и выдачу данных с этого датчика в JSON.
Arduino библиотеку BMP085 можно скачать здесь.
Проверяем - обращаемся к серверу метеостанции и получаем ответ:
Теперь вносим изменения в Android проект.
Получаем следующий вид виджета
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Плата Arduino | Arduino Uno | 1 | Поиск в магазине Отрон | |||
Датчик температуры | DS18B20 | 3 | Поиск в магазине Отрон | |||
Датчик температуры | DHT11 | 1 | Поиск в магазине Отрон | |||
R4-R6 | Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||
Датчик давления | BMP085 | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- ArduinoMeteo1.rar (694 Кб)
- ArduinoWeatherServ1.zip (2 Кб)
Комментарии (14) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
- хочешь вызов php-скрипта на сайте с отправкой по get,
- хочешь опрос с сайта раз в минуту обращением к серверу и парсинг (как сейчас)
Код занимает несколько строк и на arduino, и на php. Работы - максимум на день.
[Автор]
- Vcc, GND + 1 провод
Че то не получается
[Автор]
[Автор]
public static String IP_METEO_INT = "192.168.0.111";
Пункт настройки не доработаны или я что-то неправильно собрал?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="**** Настройки ****"
android:paddingLeft="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IP внутренний"
android:paddingLeft="10dp"
/>
<EditText
android:id="@+id/ip_int"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="192.168.0.111" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IP внешний"
android:paddingLeft="10dp"
/>
<EditText
android:id="@+id/ip_int"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="77.39.66.172" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Порт"
android:paddingLeft="10dp"
/>
<EditText
android:id="@+id/ip_int"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="10001" />
</LinearLayout>