Send sky sticks using smart phone

Introduction

In the world of pyrotechnics and fireworks display, safety is the number one priority. Designing a remote ignition system for Sky Sticks allows the operator to maintain a safe distance while ensuring a perfectly timed launch. In this project, we use an Arduino and a Bluetooth module to create a wireless firing system controlled directly by a smartphone.



How the Wireless Ignition Works

The system acts as a high-current switch. Because an Arduino cannot provide enough power to ignite a fuse directly, we use a Relay Module or a Power MOSFET.

  1. The Signal: Your smartphone sends a specific command via Bluetooth.

  2. The Logic: The Arduino receives the command and triggers a Relay.

  3. The Ignition: The Relay closes a secondary high-current circuit (usually powered by a Li-Po battery) that heats up a Nichrome wire or an electric match (e-match) wrapped around the Sky Stick fuse.



Required Components

  ✔ Arduino Nano or Uno: The controller.
  ✔ HC-05 Bluetooth Module: For wireless reception.
  ✔ 12V Relay Module: To handle the high current required for ignition.
  ✔ Nichrome Wire (30-32 AWG): The heating element that ignites the Sky Stick.
  ✔ 12V Lead Acid or Li-Po Battery: To provide the ignition burst.
  ✔ Safety Switch (Toggle Switch): A physical "Arm/Disarm" switch to prevent accidental firing.


Technical Specifications: The Importance of Current

To ignite a Sky Stick fuse, the heating element needs a burst of current.

  ✔ Nichrome Wire: Has high resistance and glows red hot when current passes through.
  ✔ Relay Isolation: Using a relay is essential because it keeps the 12V ignition power separate from the 5V Arduino power, protecting your microcontroller from electrical noise and feedback.



The Circuit Connections

Warning: Never connect the Sky Stick until you have tested the code and connections with a simple LED.

Bluetooth (HC-05) to Arduino:

  • VCC to 5V, GND to GND.
  • TX to Arduino Pin RX, RX to Arduino Pin TX.
Relay to Arduino:
  • VCC to 5V, GND to GND.
  • IN (Signal) to Arduino Digital Pin 4.

The Ignition Loop:

  • Connect the 12V Battery positive to the Relay "Common" (COM) terminal.
  • Connect the "Normally Open" (NO) terminal to one side of the Nichrome wire.
  • Connect the other side of the Nichrome wire back to the Battery negative.

Circuit Diagrams


     

       



Understanding The Code Logic:

This Arduino sketch is designed to act as a wireless bridge between a smartphone and the ignition hardware. It uses Serial Communication to interpret commands and trigger specific pins that are connected to your relay modules.

1. The Variable char t

At the very top, we define a character variable t. This acts as a small "memory slot." When your smartphone sends a letter or number over Bluetooth, the Arduino stores it in t so it knows which action to perform next.

2. Hardware Initialization (setup)

In the setup() function, we define four digital pins (9, 10, 11, and 12) as OUTPUT. In a Sky Stick system, these pins are connected to the "Signal" or "IN" pins of your Relay modules. We also start Serial.begin(9600), which is the standard speed for Bluetooth modules like the HC-05.

3. Data Processing (Serial.available)

The loop() starts by checking if there is any data coming in from the phone.

  • Serial.available(): This checks if a wireless signal has been received.
  • Serial.read(): This "grabs" the character and saves it into our variable t.
  • Serial.println(t): This is for debugging. If you have your Arduino connected to a PC, you can see exactly what the phone is sending.

4. The Multi-Channel Firing Logic

The code uses a series of if and else if statements to create a multi-channel ignition system. This allows you to fire four different Sky Sticks separately or all at once:

  • Firing Channels: Sending '1', '2', '3', or '4' triggers pins 12, 11, 10, or 9 respectively. When a pin goes HIGH, the corresponding relay closes, allowing 12V power to flow through the nichrome wire to ignite the fuse.
  • The Global Reset ('0'): This is a safety feature. Sending '0' immediately sets all output pins to LOW. This breaks the circuit and ensures that no power is flowing to the ignition coils after the launch is complete.

5. The Importance of the delay(100)

A small 100-millisecond delay is added at the end of the loop. This prevents the Arduino from "over-processing" the serial data, which can sometimes lead to lag or software crashes. It ensures the communication remains stable during high-stress ignition sequences.


Pro-Tip for Your Post:

When you publish this, make sure to mention that Pin 0 and Pin 1 (Hardware Serial) are used by the Bluetooth module.

Warning: Always unplug the Bluetooth module's RX and TX wires before uploading this code to your Arduino, or the upload will fail!

CODE

char t;

void setup() {
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  

  if(Serial.available()){
    t=Serial.read();
    Serial.println(t);
  }

  if(t =='1'){
    digitalWrite(12,HIGH);
  }

  else if(t =='0'){
    digitalWrite(12,LOW);
  }

  else if(t =='2'){
    digitalWrite(11,HIGH);
  }

  else if(t =='0'){
    digitalWrite(11,LOW);
  }
  
  else if(t =='3'){
   digitalWrite(10,HIGH);
  }

  else if(t =='0'){
    digitalWrite(10,LOW);
  }
  
   if(t =='4'){
    digitalWrite(9,HIGH);
   }
  else if(t =='0'){
    digitalWrite(9,LOW);
  }
  
  else if(t =='0'){
    digitalWrite(12,LOW);
    digitalWrite(11,LOW);
    digitalWrite(10,LOW);
    digitalWrite(9,LOW);
  }

  delay(100);
}


Troubleshooting: Solving Common Ignition and Bluetooth Issues

A wireless ignition system has many moving parts—the smartphone app, the Bluetooth signal, the Arduino logic, and the high-current ignition circuit. If your Sky Stick fails to launch, use this guide to identify and fix the problem.

1. The Bluetooth Module Won't Pair or Connect

This is the most common starting hurdle.

  • The "Blinking" Signal: Check the LED on your HC-05 or HC-06. If it is blinking rapidly, it is searching for a connection. If it blinks slowly (once every 2 seconds), it is in AT command mode and won't connect to your phone.
  • Voltage Levels: Bluetooth modules are sensitive. Ensure it is receiving a clean 5V from the Arduino. If the LED is dim, your power source is insufficient.
  • Incorrect Passcode: Most modules use 1234 or 0000. If these don't work, you may need to reset the module using AT commands.

2. The Relay Clicks, but the Sky Stick Doesn't Ignite

If you hear a "click" from the relay but nothing happens at the fuse:

  • Current Starvation: Igniting a Nichrome wire requires a high burst of current (Amperage). A standard 9V battery cannot provide enough power. You must use a 12V Lead-Acid battery or a high-discharge Li-Po battery for the ignition circuit.
  • Nichrome Resistance: If your Nichrome wire is too long, its resistance will be too high, and it won't get hot enough. Keep the ignition bridge as short as possible.
  • Connection Check: Ensure the wires at the relay terminals (COM and NO) are screwed in tight. Vibrations from previous launches can often loosen these connections.

3. The Arduino Resets When Ignition is Triggered

If your Bluetooth disconnects or the Arduino restarts the moment you send the fire command:

  • EMF Interference: Relays use an electromagnetic coil. When they turn off, they can send a "spike" of electricity back into the Arduino. The Fix: Ensure you are using a Relay Module with "Optoisolator" protection.
  • Shared Power Source: If you are powering the Arduino and the Ignition coil from the same small battery, the voltage will drop when the coil heats up, causing the Arduino to shut down. Always use separate power paths or a very large battery.

4. "Gibberish" Data in the Serial Monitor

If you see strange symbols instead of '1', '2', or '0':

  • Baud Rate Mismatch: Your code says Serial.begin(9600). Ensure your Bluetooth Terminal app and your Arduino Serial Monitor are also set to 9600 Baud.
  • Floating Pins: Ensure you have a common ground (GND) between the Bluetooth module and the Arduino. Without a shared ground, the signal "floats" and becomes unreadable.



Final Project Safety Checklist

Before every launch, perform these three checks:

  1. Range Test: Walk 50 feet away and send a "Test" command (like a separate LED) to ensure the Bluetooth signal is stable at a distance.
  2. Visual Inspection: Ensure the Nichrome wire is securely wrapped around the fuse but not touching any metal parts of the launcher frame.
  3. Disarm: Always keep the physical 12V master switch OFF while you are standing near the Sky Stick. Only flip it to ON once you have reached the safety zone.

Post a Comment

Post a Comment (0)

Previous Post Next Post