Khalid Faisal
Published

Smart Fire Alarm Using Bolt

Alerts with Sound, Light and SMS When Temperature of Surrounding crosses it's Threshold Value until Temperature gets normal there.

BeginnerFull instructions provided3 hours1,019
Smart Fire Alarm Using Bolt

Things used in this project

Hardware components

Bolt WiFi Module
Bolt IoT Bolt WiFi Module
×1
Breadboard (generic)
Breadboard (generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×6
Male/Female Jumper Wires
Male/Female Jumper Wires
×2
Buzzer
Buzzer
×1
LED (generic)
LED (generic)
×1
Resistor 10k ohm
Resistor 10k ohm
×1
Temperature Sensor
Temperature Sensor
×1
USB-A to Mini-USB Cable
USB-A to Mini-USB Cable
×1

Software apps and online services

Bolt Cloud
Bolt IoT Bolt Cloud
Bolt IoT Android App
Bolt IoT Android App
SMS Messaging API
Twilio SMS Messaging API
Snappy Ubuntu Core
Snappy Ubuntu Core
You can use Digital Ocean Account also

Story

Read more

Schematics

Circuit Connections for Smart Fire Alarm System

Circuit Connections for Smart Fire Alarm System Image

Code

Smart Fire Alarming System

Python
Requires Configuration File(conf.py)
install boltiot paclage (pip install boltiot)
import conf
from boltiot import Sms, Bolt
import json, time
from math import ceil

def Final_Time(Seconds):
    if Seconds < 60:
        return str(Seconds)+'Sec'
    else:
        Minutes = Seconds//60
        if Minutes < 60:
            return str(Minutes)+'Min '+str(Seconds%60)+'Sec'
        else:
            Hours = Minutes//60
            return str(Hours)+'Hr '+str(Minutes%60)+'Min '+str(Seconds%60)+'Sec'


def main_process():
    maximum_limit = 38.0
    mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
    sms = Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)
    is_Fire = False
    status = json.loads(mybolt.isOnline())
    print("Status Check : ",status["value"])
    if status["value"] != "offline":
        while True: 
            print ("Reading sensor value")
            response = mybolt.analogRead('A0') 
            data = json.loads(response)
            
            try:
                flag = 1
                sensor_value = int(data['value'])
                temp1 = (100*sensor_value)/1024
                print("Sensor value is: " + str(temp1))
                start_time = int(time.time()*1000.0)    #time.time_ns() // 1000000 
                while temp1 > maximum_limit:
                    #Exhaust Fan On
                    if flag == 1:
                        response = sms.send_sms("Attention !! Fire in Company")
                        print("Response received from Twilio is: " + str(response))
                        print("Status of SMS at Twilio is :" + str(response.status))
                    mybolt.digitalWrite('1', 'HIGH')
                    mybolt.digitalWrite('2', 'HIGH')
                    response = mybolt.analogRead('A0') 
                    data = json.loads(response)
                    sensor_value = int(data['value'])
                    temp1 = (100*sensor_value)/1024
                    print("Sensor value is: " + str(temp1))
                    flag = 0
                    is_Fire = True
                    stop_time = int(time.time()*1000.0)     #time.time_ns() // 1000000
                mybolt.digitalWrite('2', 'LOW')
                mybolt.digitalWrite('1', 'LOW')
                if is_Fire:
                    print('Start Time : {0} \nStop Time : {1}'.format(start_time, stop_time))
                    Time_Used = (stop_time - start_time)/1000
                    if Time_Used > 0:
                        response = sms.send_sms("Fire Alarm was active for " +Final_Time(ceil(Time_Used)))
                        print("Response received from Twilio is: " + str(response))
                        print("Status of SMS at Twilio is :" + str(response.status))
                stop_time = start_time
                
            except Exception as e:
                print ("Error occured: Below are the details")
                print (e)
            time.sleep(10)
    else:
        print("Device is Offline")

if __name__ == '__main__':
    main_process()

Credits

Khalid Faisal
1 project • 2 followers

Comments