System alarmowy pożaru lub wycieku gazu przy udziale platformy Raspberry Pi i czujnika gazu MQ2 (cz. 2/2)

System alarmowy pożaru lub wycieku gazu przy udziale platformy Raspberry Pi i czujnika gazu MQ2 (cz. 2/2)
Poniżej podajemy kod programu.

Komentarze zostały tutaj dodane i oznaczone #. Nie trzeba ich reprodukować podczas wprowadzania kodu.
Zauważ, że musisz zastąpić zapisany klucz API w linii 22 (pokazany pogrubioną czcionką) na ten, który utworzyłeś dla serwera ThingSpeak.

myAPI = “OICJL711JK2CON1H”  # API Key from thingSpeak.com channel

//*******************************
# Import required Python libraries
import sys
import os
import time
from time import sleep
import urllib2
import Adafruit_ADS1x15
# Create an ADS1115 ADC (16-bit) instance.
adc = Adafruit_ADS1x15.ADS1115()
GAIN = 1
#Setup our API and delay
myAPI = “OICJL711JK2CON1H” # API Key from thingSpeak.com channel
myDelay = 15 #how many seconds between posting data
def getSensorData():
MQ2 = 0
print(‘Reading ADS1x15 values, press Ctrl-C to quit…’)
# Print nice channel column headers.
print(‘| {0:>6} | {1:>6} | {2:>6} | {3:>6} |’.format(*range(4)))
print(‘-‘ * 37)
try:
# Main loop until users quits with CTRL-C
while True :
# Read all the ADC channel values in a list.
values = [0]*4
for i in range(4):
# Read the specified ADC channel using the previously set gain value.
values[i] = adc.read_adc(i, gain=GAIN)
MQ2 = values[0]
# Print the ADC values.
print(‘| {0:>6} | {1:>6} | {2:>6} | {3:>6} |’.format(*values))
return (str(MQ2))
except KeyboardInterrupt:
print ” Quit”
def main():
print ‘starting…’
baseURL = ‘https://api.thingspeak.com/update?api_key=%s’ % myAPI
print baseURL
while True:
try:
print “Reading Sensor Data now”
MQ2 = getSensorData()
print MQ2 + ” “
f = urllib2.urlopen(baseURL + “&field1=%s” % (MQ2))
print f.read()
f.close()
sleep(int(myDelay))
except Exception as e:
print e
print ‘exiting.’
break
if __name__ == ‘__main__’:
main()
//******************************

Aby wygenerować kod, wykonaj czynności opisane w artykule o projekcie systemu alarmowego. Możesz również znaleźć dobre przykłady w bibliotece IC ADS115, aby zrozumieć, jak to działa.
Aby skorzystać z narzędzi dostawcy usług IoT, należy postępować zgodnie ze wskazanymi wytycznymi.
Procedura
Nadszedł czas, aby wypełnić raporty.
Instalowanie biblioteki czujników ADS1115
Biblioteka ADS1115 można pobrać pod tym linkiem:

https://github.com/adafruit/Adafruit_Python_ADS1x15/blob/master/setup.py

i nosi  nazwę: Adafruit_Python_ADS1x15-master.zip.
Rozpakuj paczkę. Aby przeprowadzić instalację, wpisz w wierszu poleceń:
>>> sudo python setup.py install
W bibliotece można znaleźć proste przykłady testowania czujnika ADS1115 (Rysunek 1).

r_210_16_4r_210_16_5
Włączanie interfejsu 12C
Musisz aktywować interfejs 12C na ekranie konfiguracji Raspberry Pi i ponownie uruchomić system, aby działał poprawnie.

Przejdź do Menu ➤ Preferencje ➤ Konfiguracja Raspberry Pi.

Tworzenie projektu w ThingSpeak

(Go to Menu ➤ Preferences ➤ Raspberry Pi Configuration.

Creating a Project in ThingSpeak)
Użyj konta ThingSpeak, które utworzyłeś w artykule o systemie alarmowym  i utwórz nowy kanał z następującymi danymi (Rysunek 2):

r_210_16_6r_210_16_7
Nazwa: Alarm wycieku gazu
Opis: System alarmowy z czujnikiem gazu MQ2
Pole 1: MQ2
Zapisz projekt.
System poda numer kanału i klucz Write API (Rysunek 3).

r_210_16_8
Skopiuj klucz Write API, który ma 16 znaków, i wklej go do kodu Pythona w odpowiednim miejscu
myAPI = “GET_YOUR_KEY”
Pamiętaj, że na darmowym koncie w ThingSpeak możesz jednocześnie monitorować maksymalnie cztery kanały.
Rysunki 4 i 5 pokazują, jak działa system.
Na rysunku 4 czujnik mierzy ilość gazu w środowisku i wysyła dane do serwera IoT.
Na rysunku 5 serwer IoT przedstawia dane, które odbiera w kanale.
Korzystanie z konta na Twitterze w ThingSpeak

r_210_16_9
Aby korzystać ze swojego konta na Twitterze w ThingSpeak, postępuj zgodnie z instrukcjami podanymi również w artykule o systemie alarmowym.
Wysyłanie alertu na Twoje konto na Twitterze
Kliknij Aplikacje, a następnie kliknij React.
Utwórz nowy React i wypełnij dane pokazane na rysunku 6.
Na końcu będziesz mieć dane pokazane na rysunku 7.

r_210_16_10r_210_16_11
Przykład alertu tweeta przedstawia rysunek 8.
Propozycja:
Korzystając z portów analogowych, poeksperymentuj z czujnikiem temperatury TMP36 lub czujnikiem LDR.

Autor: Jeff Rodes

Komentarze z Facebooka

Komentarze obecnie - OFF.