Lampička ovládaná mobilním telefonem

V tomto projektu jsem oživil svou starou lampičku, z které kdysi vypadl vypínač. Nejedná se o složitý projekt, ale spojuje ovládání spotřebiče pomocí Arduina a tvorbu vlastní aplikace MIT App Inventorem.

Seznam komponent:

  • Arduino Uno
  • Relé
  • Bluetooth modul HC-05
  • 1N4001 dioda
  • NPN tranzistor 8050
  • 1kΩ rezistor
  • Nepájivé pole, vodiče

Zapojení

Nejprve jsem lampičku dvěma vodiči připájel k relé. Je připojena k NC a COM pinům na relé, díky čemuž je ji možné používat i bez připojení k desce. Následně jsem relé zapojil k Arduinu pomocí NPN tranzistoru 8050, 1N4001 diody a 1kΩ rezistoru, jak je vidět na schématu. Je důležité piny na relé důkladně izolovat. Nakonec jsem ještě připojil Bluetooth modul HC-05 (RX k pinu 11 a TX k pinu 10 na Arduinu).

Mobilní aplikace

Pro tvorbu aplikace jsem využil MIT App Inventor 2 (https://appinventor.mit.edu). V něm jsem si nejprve umístil všechny elementy na své místo, přejmenoval je a přidal styly.

V sekci Blocks jsem nejprve vytvořil proměnné a funkci pro připojení přes bluetooth. Po vybrání správného zařízení se aplikace připojí a lampička se vypne.

Po kliknutí na tlačítko se do proměnné zapíše systémový čas a přičte se k němu případná prodleva v milisekundách.

Následuje funkce, která se provádí pokaždé, když vyprší časovač. Nejdříve ověří, jestli se lampička má zapnout nebo vypnout (proměnná casovacZapnuty), zkontroluje čas a poté pošle Arduinu „a“ (zapnout lampičku), nebo „b“ (vypnout lampičku). Při kliknutí na tlačítko „Vynulovat“ se do polí pro zápis prodlevy zapíše „0“.

Program pro Arduino

#include <SoftwareSerial.h>   // Import knihovny

#define RX 11                 // Pin spojený s RX u Bluetooth modulu
#define TX 10                 // Pin spojený s TX
#define pinRele 8             // Pin spojený s relé
SoftwareSerial bluetooth(TX, RX); // Objekt sériové komunikace

void setup() {
  bluetooth.begin(9600);        // Začátek komunikace
  pinMode(pinRele,OUTPUT);      
}

void loop() {
  byte BluetoothData;           // Proměnná pro ukládání dat
  if (bluetooth.available()>0){  
     BluetoothData=bluetooth.read(); // Uložení dat z komunikace
    switch (BluetoothData){
      case 'a':
        digitalWrite(pinRele,LOW); // COM spojený s NC, lampička se zapne
        break;
      case 'b':
        digitalWrite(pinRele,HIGH); // COM spojený s NO, lampička se vypne
        break;
    } 
  }  
}

Další podobné články

Elektrický ping-pong

Cílem projektu bylo vytvořit jednoduchou digitální verzi klasické hry ping-pong pomocí mikrokontroleru Arduino a základních elektronických komponent. Slouží k interaktivní výuce programování a rozvíjí logické myšlení a umožňuje hráčům ovládat pálky a sledovat pohyb míčku na displeji. Hra demonstruje propojení hardwaru a softwaru, což z ní činí zábavný a vzdělávací projekt.

Tester I2C adresy

Užitečný nástroj pro zjištění I2C/IIC adresy konkrétního modulu pro arduino. A to jak na 3V3 tak 5V logiku.

Protože někdy potřebuji ověřit I2C adresu připojovaného zařízení (třeba podle návodu nastavená adresa nefunguje) musel jsem vyhrabat volné arduino, propojit s testovaným zařízením, nahrát program a na počítači provést kontrolu. Dospěl jsem k závěru, že se mi bude hodit krabička, která bude mít vše v jednom.