Bluetooth вольтметр на базе arduino

    Привет, Хабр! Сегодня хочу продолжить тему «скрещивания» arduino и android. В предыдущей публикации я рассказал про bluetooth машинку, а сегодня речь пойдет про DIY bluetooth вольтметр. Еще такой девайс можно назвать смарт вольтметр, «умный» вольтметр или просто умный вольтметр, без кавычек. Последнее название является неправильным с точки зрения грамматики русского языка, тем не менее частенько встречается в СМИ. Голосование на эту тему будет в конце статьи, а начать предлагаю с демонстрации работы устройства, чтобы понять о чем же пойдет речь в статье.

    Disclaimer: статья рассчитана на среднестатистического любителя arduino, который обычно не знаком с программированием под android, поэтому как и в прошлой статье, приложение для смартфона мы будем делать, используя среду визуальной разработки android-приложений App Inventor 2.
    Чтобы сделать DIY bluetooth вольтметр нам нужно написать две относительно независимых друг от друга программы: скетч для ардуино и приложение для андроид.Пожалуй начнем со скетча.
    Для начала следует знать, что существует три основных варианта измерения напряжения при помощи ардуино, не зависимо от того куда нужно выводить информацию: в com-порт, на подключенный к ардуино экранчик, или на смартфон.
    Первый случай: измерения напряжения до 5 вольт. Здесь достаточно одной-двух строк кода, а напряжение подается напрямую на пин А0:
    int value = analogRead(0);// читаем показания с А0
    voltage = (value / 1023.0) * 5; // верно только если Vcc = 5.0 вольт
    Второй случай: для измерения напряжения более 5 вольт используется делитель напряжения. Схема очень простая, код тоже.

    Скетч
    int analogInput = A0;
    float val = 0.0;
    float voltage = 0.0;
    float R1 = 100000.0; //Battery Vin-> 100K -> A0
    float R2 = 10000.0; //Battery Gnd -> Arduino Gnd and Arduino Gnd -> 10K -> A0
    int value = 0;

    void setup() {
    Serial.begin(9600);
    pinMode(analogInput, INPUT);
    }

    void loop() {
    value = analogRead(analogInput);
    val = (value * 4.7) / 1024.0;
    voltage = val / (R2/(R1+R2));
    Serial.println(voltage);
    delay(500);
    }

    Arduino Uno
    Блютуз модуль
    Третий случай. Когда нужно получить более точные о напряжении в качестве опорного напряжения нужно использовать не напряжение питания, которое может немного меняться при питании от акб, например, а напряжение внутренного стабилизатора ардуино 1.1 вольт.Тут схема такая же, но код чуть длиннее. Подробно этот вариант разбирать не буду, так как он и так хорошо описан в тематических статьях, а мне вполне и достаточно второго способа, поскольку питание у меня стабильное, от usb-порта ноутбука.
    Итак с измерением напряжения мы разобрались, теперь перейдем ко второй половине проекта: созданию андроид-приложения. Приложение будем делать прямо из браузера в среде визуальной разработки android-приложений App Inventor 2. Заходим на сайт appinventor.mit.edu/explore, авторизуемся с помощью гугл-аккаунта, нажимаем кнопку create, new project, и путем простого перетаскивания элементов создаем примерно такой дизайн:
    Я сделал графику очень простой, если кому-то захочется более интересной графики, напомню, что для этого нужно использовать вместо .jpeg файлов, файлы формата .png с прозрачным фоном.
    Теперь переходим во вкладку Blocks и создаем там логику работы приложения примерно так:

    Если все получилось можно нажимать кнопку Build и save .apk to my computer, а затем уже скачиваем и устанавливаем приложение на смартфон, хотя есть и другие способы заливки приложения. тут уж кому как удобнее. В итоге у меня получилось вот такое приложение:

    Понимаю, что мало кто использует среду визуальной разработки android-приложений App Inventor 2 в своих проектах, поэтому может возникнуть много вопросов по поводу работы в ней. Чтобы снять часть таких вопросов, я сделал подробное видео, о том как сделать такое приложение «с нуля»(для просмотра нужно перейти на ютуб):

    P.S. Сборник из более 100 обучающих материалов по ардуино для начинающих и профи тут
    P.P.S. Онлайн курс по ардуино на гиктаймс здесь.
    Ну и в завершении обещанное мной в начале статьи голосование.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Как правиленее назвать подобный девайс?
    Поделиться публикацией
    Комментарии 12
      +1
      Назвали уже б, как все — iВольтметр, или ещё лучше — iVoltmetr
        0
        тоже хороший вариант
        +2
        Хорошо бы что оно еще мерило сопротивление резисторов и емкость конденсаторов.
        Чисто как вольтметр не очень интересно, тем более без возможности мерить переменное напряжение.
          0
          Тогда это было бы просто Вау!
        –1
        Сам заню, что брюзжать не хорошо, я и сам велосипеды плодить любитель. Но все таки измерительная головка + резистор = профит! 35 рублей www.chipdip.ru/product0/8675570255/
          +1
          А, что в нем умного вообще?
          Если бы мог, например, мерить напряжение под изменяемой нагрузкой, а потом показывать вольт-амперный график…
          Или, хотя бы, логгер напряжения.
            0
            В начале статьи написано, что понятие «умный» не имеет отношения к прилагательному [умный]. Да и из принявших участие в голосовании никто не назвал это умным вольтметром. Все это трудности перевода с английского, в которых лучше разбираться профессиональным лингвистам.
            0
            БлюМетер :-)
            BlueMeter
              0
              Спасибо за статью.
              В таких проектах главное не функциональность, а получение опыта.
              Если проект чуть доработать, можно сделать блютус мультиметр (недавно видел проект с выводом на индикатор).
                0
                В последнее время при попытке изготовить аналогичного уровня поделку опускаются руки. Потому что «все украдено до нас».
                Задумал тут сделать амперметр, чтобы мерить, какой ток от USB берет, скажем, смартфон при зарядке. Черт меня дернул зайти на Алиэкспресс. Там аналогичная готовая штука продается за какие-то небольшие доллары.
                Кризис ардуино-жанра?

                По сабжу: как практика в ардуиностроении и андроидописании — зачет. Но ИМХО гораздо проще и удобнее пользоваться фабричным мультиметром.
                  0
                  у меня нет фабричного, вот и заморочился.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое