mohnish Saxena
Published

Capstone Project

About change in temperature and measuring the average temperature and abnormalities.

BeginnerFull instructions provided4 hours508
Capstone Project

Things used in this project

Hardware components

Bolt WiFi Module
Bolt IoT Bolt WiFi Module
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×1
Texas Instruments LM35 IC
×1

Software apps and online services

Bolt Cloud
Bolt IoT Bolt Cloud
SMS Messaging API
Twilio SMS Messaging API

Story

Read more

Schematics

capstone

Code

capstone --- main code

Python
//main code
import conf, json, time, math, statistics
from boltiot import Sms, Bolt
def compute_bounds(history_data,frame_size,factor):
    if len(history_data)<frame_size :
        return None

    if len(history_data)>frame_size :
        del history_data[0:len(history_data)-frame_size]
    Mn=statistics.mean(history_data)
    Variance=0
    for data in history_data :
        Variance += math.pow((data-Mn),2)
    Zn = factor * math.sqrt(Variance / frame_size)
    High_bound = history_data[frame_size-1]+Zn
    Low_bound = history_data[frame_size-1]-Zn
    return [High_bound,Low_bound]
minimum_temp = 10
maximum_temp = 16

mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
sms = Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)
history_data=[]

while True:
    response = mybolt.analogRead('A0')
    data = json.loads(response)
    if data['success'] != 1:
        print("There was an error while retriving the data.")
        print("This is the error:"+data['value'])
        time.sleep(10)
        continue

    print ("This is the value "+data['value'])
    sensor_value=0
    try:
        sensor_value = int(data['value'])
    except e:
        print("There was an error while parsing the response: ",e)
        continue

    bound = compute_bounds(history_data,conf.FRAME_SIZE,conf.MUL_FACTOR)
    if not bound:
        required_data_count=conf.FRAME_SIZE-len(history_data)
        print("Not enough data to compute Z-score. Need ",required_data_count," more data points")
        history_data.append(int(data['value']))
        time.sleep(10)
        continue

    try:
	temp = sensor_value/10.24
        if temp > maximum_temp :
            print ("The temprature increased suddenly. Sending an SMS.")
            response = sms.send_sms("someone opened the fridge door")
            print("This is the response ",response)
        elif temp < minimum_temp:
            print ("The temprature  decreased suddenly. Sending an SMS.")
            response = sms.send_sms("Something is wrong with temprature")
            print("This is the response ",response)
        history_data.append(sensor_value);
    except Exception as e:
        print ("Error",e)
    time.sleep(10)

capstone --- conf. file

Python
CONF.PY file code
SID = 'ACb259911c2492baa9cf7a328c36a07d4b'
AUTH_TOKEN = '0da83f9431c29e958b627d4412bd86bc'
FROM_NUMBER = '+19196662805'
TO_NUMBER = '+919340348839'
API_KEY = 'ee645bd8-f748-4dd6-9530-2d239dae50ff'
DEVICE_ID = 'BOLT3848102'
FRAME_SIZE = 10
MUL_FACTOR = 6

Credits

mohnish Saxena

mohnish Saxena

1 project • 0 followers

Comments