Close

Btspp2file: Bluetooth most mezi Androidem a Arduinem

Btspp2file bluetooth most mezi Arduinem a Anderoidem

Náš čtenář Vojtěch Sedlecký nám poslal článek, ve kterém popisuje jeho aplikaci pro propojení Arduina s Androidem za použití Bluetooth modulu. Děkujeme za článek!


Btspp2file tvoří komunikační most mezi Arduinem a telefony s Androidem, umožňující jednoduše využít to nejlepší z Androidu a Arduina a rychle vytvářet projekty s vysokou přidanou hodnotou namísto plýtvání časem na stále se opakující hardwarové problémy. Btspp2file je jednoduchý, ale výkonný nástroj komunikace. Jeho zdrojové kódy jsou dostupné na GitHubu. Obslužnou aplikaci lze stáhnout zde, ale pro instalaci je nutné povolit instalaci z neznámých zdrojů.

Svět je plných starých Androidů zadarmo nebo za cenu nižší než Arduino, přitom už mají vyřešeno mnoho problémů, kterým musí čelit bastlíř skládající vše z jednotlivých modulů. Pomocí btspp2file lze snadno využít možnosti mobilních telefonů nebo tabletů, především velkého výpočetního výkonu, GSM a Wi-Fi připojení, senzory, dotykový displej a zabudovanou baterii (v podstatě UPS) a mikročipů s mnoha vstupně výstupními piny, UART, I2C či SPI sběrnicí.

Díky tomuto propojení je možné využít například mocný linuxový emulátor Termux s množstvím linuxového softwaru. Také přináší možnost použití Androidních automatizačních nástrojů jako je Automate nebo Tasker , které nepodporují datový přenos přes Bluetooth.

Jak btspp2file funguje

Btspp2file Bluetooth Serial Port Profile 2 File je aplikace pro Android, která spravuje Bluetooth spojení mezi telefonem a Bluetooth modulem na straně Arduina (například s modulem HC-05). Aplikace běží jako služba na pozadí, a je možné ji automaticky spouštět po restartu systému. Opakovaně se snaží připojit k předem nastaveným Bluetooth modulům a také dovoluje udržovat spojení s více zařízeními. Služba periodicky čte složku v uložišti telefonu, která odpovídá připojenému zařízení a obsah soboru tx.txt odesílá cílovému zařízení. Přijatá data naopak ukládá do souboru tx.txt.

To znamená, že vaše aplikace jednoduše čte nebo zapisuje sobory.

Arduino a Bluetooth modul HC-05

Schéma propojení Arduino NANO a Bluetooth modulu HC-05

Schéma propojení Arduino NANO a Bluetooth modulu HC-05

Zapojení Arduino NANO a HC-05 na kontaktním poli

Zapojení Arduino NANO a HC-05 na kontaktním poli

Pro základní zapojení Bluetooth HC-05 s Arduinem NANO budete potřebovat 

V následujícím příkladu budeme z Androidu posílat ‚1‘ k rozsvícení LED a ‚0‘ k zhasnutí.

#define RX_PIN  2

#define TX_PIN  3

#define LEDB_PIN 13

#define BTN0_PIN 11

#include <SoftwareSerial.h>
swSerial(RX_PIN, TX_PIN);


void setup() {

  Serial.begin(115200);

  while (!Serial) { }

  Serial.println("READY");

  swSerial.begin(9600);

  pinMode(LEDB_PIN, OUTPUT);

  pinMode(BTN0_PIN, INPUT_PULLUP);

}

void loop() {

  char ch;
  
if(Serial.available() > 0) {

    ch = Serial.read();
  
  }
  

  if(swSerial.available() > 0) {
    ch = swSerial.read();

  }
  
  
  if(ch) {

    if(ch == '1') {
      digitalWrite(LEDB_PIN, true);
    }
  
    if(ch == '0') {

      digitalWrite(LEDB_PIN, false);
    }

  
    if(ch == 'r') {
      swSerial.print(digitalRead(BTN0_PIN));

      Serial.print(digitalRead(BTN0_PIN));
    }

  }

}

Nastavení btspp2file

Arduino Bluetooth Nastavení

Nastavení

Před použitím aplikace je potřeba spárovat váš modul s telefonem. Kliknutím na modul v seznamu „PAIRED DEVICES“ zvolíte index spojení (pro možnost komunikace s více moduly) který je zároveň podsložkou aplikace pro toto spojení. Aplikace naváže spojení a začne číst daný adresář a obsah soboru tx.txt pošle do Arduina. Naopak data přijatá z Arduina zapíše do souboru rx.txt. Cesta ke kořenové složce aplikace je zobrazena pod nadpisem „PATH“.

Atomate příklad

Nastavení aplikace Automate

Nastavení aplikace Automate

Na obrázku je jednoduchý skript v nástroji Automate (flow). Jednoduše zapisuje do souboru střídavě ‚0‘ a ‚1‘. Zapsaný soubor je čten btspp2file aplikací a obsah je odesálán přes Bluetooth.

A LED bliká:)

Termux příklad

Arduino a Termux

Arduino a Termux

Pokračujme přikladem v Termuxu, kde vytvoříme jednoduchý skript.

while [ : ]

   do

      echo "0" > ~/storage/shared/btspp2file/0/tx.txt

      sleep 1s

      echo "1" > ~/storage/shared/btspp2file/0/tx.txt

      sleep 1s

   done

V Termuxu můžeme použít například autorův oblíbený Python s mnoha knihovnami a jednoduše vytvořit řešení softwarového úkolu reagující a ovládající svět drátů na pinech Arduina.

Článek také vyšel v anglické podobě na serveru Instructables.com.


Máte i vy projekt, který byste chtěli představit tady na webu Arduino.cz? Přečtěte si v článku, jak na to, a získejte slevu až 1500 Kč v Arduino obchůdku HW Kitchen na součástky potřebné na vaše další bastlení.

Zbyšek Voda

Zbyšek Voda

Už nějaký čas se zajímám o věci kolem Internetu věcí a otevřeného hardware a software. Tak jsem se také v roce 2010 dostal k Arduinu, pro které dodnes programuji a taky píšu články o práci s ním. Baví mě vymýšlet, jak staré věci používat novým způsobem.
Zbyšek Voda

Napsat komentář