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. Онлайн курс по ардуино на гиктаймс здесь.
    Ну и в завершении обещанное мной в начале статьи голосование.

    Only registered users can participate in poll. Log in, please.

    Как правиленее назвать подобный девайс?

    • 86.7%bluetooth вольтметр208
    • 8.8%смарт вольтметр21
    • 4.2%«умный» вольтметр10
    • 0.8%умный вольтметр2
    • 3.3%свой вариант в комментариях8

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 12

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

                Only users with full accounts can post comments. Log in, please.