Shoeb Ahmed
Published © MIT

Spooky Candy Box

Ever wanted to scare those pesky kids on Halloween as they are picking up sweets from your porch? Look NO further...

BeginnerFull instructions provided1 hour2,756
Spooky Candy Box

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
If you have a Boltduino, you can use it instead.
×1
Bolt WiFi Module
Bolt IoT Bolt WiFi Module
×1
Buzzer
Buzzer
×1
Jumper wires (generic)
Jumper wires (generic)
×6

Software apps and online services

Bolt Cloud
Bolt IoT Bolt Cloud

Story

Read more

Schematics

Boltduino Connections

Arduino Connections

Code

Bolt Cloud code

HTML
Upload this code to your account on Bolt Cloud.
<!DOCTYPE html>
<html>
<head>
    <title>Spooky Bowl</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <style>
        .button {
            background-color: #4CAF50;
            border: none;
            color: white;
            padding: 15px 32px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
        }
    </style>

</head>
<body>
    <button class="button" onclick="arm_system()">Arm System</button>
    <br>
    <button class="button" onclick="disarm_system()">Disarm System</button>

<script type="text/javascript">
    var BOLT_ID = "";  //Change this value
    var API_KEY = "";   //Change this value
    var ARM_COMMAND = "arm_system";
    var DISARM_COMMAND = "disarm_system";
    
    function arm_system(){
        start_communication();
        make_request(ARM_COMMAND);
    }
    
    function disarm_system(){
        start_communication();
        make_request(DISARM_COMMAND);
    }
    
    function make_request(command){
        $.ajax({
            type: "GET",
            url: "https://cloud.boltiot.com/remote/" + API_KEY + "/serialWR",
            cache: false,
            async: false,
            data: {
                "data": command,
                "deviceName": BOLT_ID
            },
            success: function(response){
                console.log(response)
                var status = response["success"];
                if(status!=1){
                    alert("Device is offline!");
                }
                else{
                    alert(response["value"]);
                }
            },
            error: function(response){
                alert(response);
            },
        });
    }
    
    function start_communication(){
        cmd_serial_begin();
    }
    
    function cmd_serial_begin(){
        $.get("https://cloud.boltiot.com/remote/" + API_KEY + "/serialBegin?baud=9600&deviceName=" + BOLT_ID);
    }
</script>


</body>
</html>

Boltduino/Arduino Code

C/C++
Upload this code to your Arduino/Boltduino via the Arduino IDE.
#include <BoltIoT-Arduino-Helper.h>
#include <Ultrasonic.h>

Ultrasonic ultrasonic(12, 13);
int distance;
int min_distance = 15;    //Change this value to the width of your bowl
int BUZZER_PIN = 3;
bool system_armed = true;

void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(BUZZER_PIN, LOW);
  boltiot.begin(Serial);
  boltiot.setCommandString("disarm_system",disarm_system);
  boltiot.setCommandString("arm_system",arm_system);
  Serial.begin(9600);
}

String arm_system(){
  system_armed = true;
  return "System Armed";  
}

String disarm_system(){
  system_armed = false;
  return "System Disarmed";  
}

void sound_buzzer(){
  digitalWrite(BUZZER_PIN, HIGH);
  delay(1000);  
  digitalWrite(BUZZER_PIN, LOW);
}

void loop() {
  boltiot.handleCommand();
  distance = ultrasonic.read();
  if(system_armed){
    if(distance < min_distance){
      sound_buzzer();  
    } 
  }
  delay(100);
}

Credits

Shoeb Ahmed
6 projects • 19 followers
Contact

Comments

Please log in or sign up to comment.