Mit app inventor блютуз

LABA 120 — Mit App Inventor 2 — Как максимально просто,организовать связь по BlueTooth

Например для экспериментов с датчиком акселерометра,
когда основной аппарат должен находится в покое.
Или наоборот для управления чем нибудь,
используя акселерометр как датчик положения руля,
а наклон вперед назад как педаль газа
Но об этом позже в другой теме

BlueTooth может выступать в двух ипостасях
как Сервер или как Клиент. А соединение выглядит так
клиент подключается к серверу.
В отличии от некоторых модулей типа HC-05, который в зависимости от
прошивки, работает клиентом или сервером,
Блютуз телефона обладает обоими этими свойствами

В природе существуют разные версии Bluetooth
от обычных до BLE (блютуз низкой энергии)
пытаясь стыковать старое с новым не всегда можно получить
положительный результат, тут дело практики

На верх
В среде программирования андроид Mit App Inventor 2
имеется вкладка Connectivity

А в ней компоненты связи BlueTooth

BlueTooth.Server
BlueTooth.Client

Далее В данном повествовании
рассказывается как их использовать без лишних движений
Самый минимум так сказать

Исходники прилагаются, так что набирать по новой нет надобности

Компонент BlueTooth.Server

имеет нехилый набор свойств и методов

Но из всего этого изобилия

нам понадобится не так уж и много
блок Accept Connection

разрешающий устанавливать соединение
Свойство Service Name — пустая строка
Обрамленный событием инициализация экрана приложения

Событие BlueTooth server — Connection Accepted

возникающие при установке соединения
запишет в заголовок приложения сообщение об этом
радостном факте, так же здесь увеличивается счетчик подключений
в реальности не особо нужный, и разрешается следующее подключение
любого спаренного с телефоном клиента
если такое соединение произойдет, то предыдущий аппарат не будет
получать данные, хотя по документации в той же
Википедии сказано что блютуз разрешает подключение
семи клиентов к одному серверу

тут или лыжи не едут, или я не до конца
врубился что здесь надо делать

рис 4

А вот и таймер. он кликает каждую секунду
это событие проверяет установлено ли соединение


BluetoothServer1.IsConnected
если установлено
проверяет если данные в буфере приемника SPP серийного порта

BluetoothServer1.BytesAvailableToReceive

и если их больше нуля, считывает их в переменную Global Data
методом
BluetoothServer1.ReceiveText
в количестве

BluetoothServer1.BytesAvailableToReceive

то есть все

Текстовым оператором Join эти данные добавляются
к уже принятым в конструкции

счетчик в метке L_CNT.Text Увеличивается на единицу
что позволяет видеть не зависла ли наша программа

оператор Notifier.ShowAlert
вывод на экран невидимое сообщение
которое не дает телефону погасить экран и уйти в спячку

конструкция IF ch_cicl.Checked при установке галки в соответствующем
поле, вызывает функцию Send о которой будет далее

Так для прикола и удобства тестирования

блок If Contains text
Проверяет не содержится ли в принятых данных
слово CLS и при его наличии очищает окно данных

Читайте также:  Почему отключается блютуз на айфоне

Кнопка CB_cls.click
очищает окно данных
обнуляет счетчик

р05 ‘ alt= ‘в Mit App Inventor 2’>

Вызывает функцию Send, Правда неожиданно ?

r 06 кнопка отправки данных’ alt= ‘в Mit App Inventor 2’>

r07 что бы не осталось в памяти нужно правильно выйти’ alt= ‘в Mit App Inventor 2’>

Отключает BlueTooth.Server1.Disconnect
и закрывает приложение
Close application

Если выйти из программы нажав на телефоне кнопку возврат

то программа уберется с экрана , но где то глубоко внутри телефона
продолжит свое выполнение

в чем нетрудно будет убедиться, запустив ее снова
и увидеть не нулевой счетчик таймера

Вначале проверяется Есть ли вообще связь

Bluetooth.Server1.IsConected

Затем конструкция

Bluetooth.Server1.SendText

Отправляет в синезубый эфир
текстовую строку собранную оператором Join
Состоящую из содержимого текстового поля

T_Send.text

И увеличивающегося каждую секунду счетчика
чтобы текст не был таким скучным
В придачу, каждые 25 секунд
Передается строка «CLS» которая на приемнике
очищает окно принятых данных

в этом минимальном проекте
задействовано восемь наборов блоков
а основных процессов так вообще четыре

На верх
**********

Компонент BlueTooth.Client

Ну ладно с сервером вроде все понятно
а как к этой красоте приконнектится?

Кидаем в новый проект BlueTooth.Client1

параметров поменьше чем у сервера но все равно
впечатляет

Как и предыдущем случае для работы хватит
минимум операторов

02 инит Screen1.Initialize инициализации экрана андроид’ alt= ‘в Mit App Inventor 2’>

Как обычно в начале блок инициализации экрана
приложения

В этом блоке, в переменную Global last из базы данных телефона
Оператором TinyDB1.GetValue

На верх
Считывается записанный при последнем удачном подключении
по BlueTooth MAC адрес Блютуз сервера

этот MAC адрес будет использоваться для автоматического
соединения с BlueTooth.Server в процедуре Last

Если же это первый запуск приложения
То в окне программы понадобится нажать кнопку

Connect

Откроется список доступных устройств и в нем выбираете
нужный девайс, применяя метод тыка пальцем

если все пучком, состоится коннект
а в заголовке программы появится текст с содержанием
имени и MAC адреса устройства BlueTooth.Server

Также эти параметры сохраняются в базе
с помощью блока —


TinyDB.StoreValue

где last имя записи
а global last ее значение, то бишь Mac адрес
в последующем. соединение произойдет при запуске приложения

Все так же тикает таймер проверяя буфер приемника,
Инкрементируется счетчик цикла программы
выдается невидимый Alert
чтобы наш девайс не заснул

По аналогии с тестовой программкой BT_Server

здесь также блок
If Contains text

Проверяет не содержится ли в принятых данных
слово CLS и при его наличии очищает окно данных


CB_last.Click

предназначена для принудительного соединения
с сервером MAC адрес которого записан в базе


CB_Exit.

служит для полного завершения приложения

Ну уж если речь зашла об автоконнекте , то пусть и блютуз сам
включается , если выключен

В самом Mit app Inventor 2 нет блока управлением состояния
BlueTooth. Однако как все приличные IDE — Mit app Inventor 2
поддерживает подключение сторонних
библиотек (плагинов, расширений, модулей или Extension),
как кому удобней. Которых в сети можно найти великое множество
и вот один такой TaifunBluetooth позволяет управлять аппаратным
включением блютуз телефона

Читайте также:  Лучшие беспроводные наушники затычки bluetooth

подключаем его к проекту

ставим блок включения bluetooth в событие инициализации экрана

теперь все как у приличных программ, при запуске все остальное
срабатывает автоматически
И наконец совсем для ленивых

Можно настроить запуск вашей программы
при включении телефона, в этом поможет.

приложение Auto Start , там указываете что запускать
и через какое время после включения

Проверял работает как часы

Источник

MIT APP inventor Arduino Bluetooth Application Making Explained

Altium

MIT APP inventor Arduino Bluetooth Application- I have been using Bluetooth supported cell phone apps for monitoring and controlling different types of sensors and electrical loads. I designed all of my previous apps in Android Studio. A few months back I uploaded articles on how to design your own android app for controlling electrical loads and how to design your own android cell phone app for monitoring the sensors connected with the Arduino. These two articles got very popular and helped many boys and girls in designing their own cell phone apps for controlling and monitoring electronics connected with the Arduino. So, if you are into the Android Studio thing then you should read these articles. If you think programming is difficult for you and you are only comfortable with drag and drop type work then this article is for you. Because the Cell Phone App we are going to make today doesn’t require any coding. Amazing.

In this article, I am going to use the MIT APP Inventor for designing a Bluetooth supported App which can be used with Arduino boards with the help of a Bluetooth module like HC05 or HC06, or any other Bluetooth module. But, in this article, I will be using HC05 Bluetooth module which I have used in so many projects. You can also check my other Android based projects.

Without any further delay, let’s get started.

HC05 Bluetooth module:

HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for transparent wireless serial connection setup.

Serial port Bluetooth module is fully qualified Bluetooth V2.0+EDR (Enhanced Data Rate) 3 Mbps Modulation with complete 2.4 GHz radio transceiver and baseband. It uses CSR Bluecore 04-External single chip Bluetooth system with CMOS technology and with AFH (Adaptive Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will simplify your overall design/development cycle.

As this is my first article on the MIT APP Inventor, so I will try to keep things simpler so that you guys can easily follow each and every step. So, instead of doing something complex, I will start with the LED, You know ? if you can control an LED it means you can control a transistor, a Mosfet, a relay etc. So, In this article we will going to learn how to control the LED connected with the Arduino Uno or Arduino Nano or Arduino Mega, using Bluetooth app. I will add two buttons which can be used to turn ON and turn OFF the LED connected with the Arduino board. In the future you can replace this LED with other electrical devices which you want to control. The cell phone app will wirelessly communicate with the Arduino with the help of the HC05 Bluetooth Module. So, what we have is at HC05 Bluetooth module? if you look at the front side it will look it will show you some kind of antenna here on hc-05 Bluetooth module and on the back side when we look at that we will see the every pin on this module. The first pin is enable en, second pin is VCC, the third pin is a ground and then the fourth one is a TXD and the fifth one is RXD. So this is how the pin label has been given on this hc-05 Bluetooth module.

Читайте также:  Блютуз не спрашивал пароль

App Inventor

Interfacing of HC-05 with Arduino:

So let’s take this Bluetooth module and connect it to Arduino Uno. So here we have a Bluetooth module and you see on our Arduino Uno. The digital pin 0 is RXD and the digital pin 1 is TXD. In order to make communication between the HC-05 and Arduino we will connect TXD of the HC-05 to RXD of the Arduino and RXD of the HC-05 to TXD of the Arduino. The ground of the HC-05 should be connected to the ground of the Arduino. Connect the VCC of the HC-05 to the 5V of the Arduino.

App Inventor

This is how we will have to connect at HC-05 Bluetooth module with Arduino Uno then we will connect the led with the Arduino. The longer leg of the LED which is anode will going to connect to 13 pin of the Arduino and the shorter leg of the LED will going to connect to the ground. Don’t forget to add a current limiting resistor with one of the legs of the LED if incase you are using an LED below 5volts. You can select a 330 ohm resistor, which works perfect with 2.5v LEDS.

In order to make a successful communication, you will need to program the Arduino board. Next, we are going to write a very basic program to read the HC05 Bluetooth module and then control the LED as per the command received from the cell Phone App designed in MIT App Inventor.

Источник

Оцените статью
Adblock
detector