- Paggana at Pag-set up ng ThingSpeak:
- Diagram ng Circuit:
- Raspberry Pi Configuration at Python Program:
Ang kahalumigmigan, temperatura at presyon ay tatlong pangunahing mga parameter upang bumuo ng anumang Weather Station at upang masukat ang mga kondisyon sa kapaligiran. Nakagawa na kami dati ng isang mini Weather Station gamit ang Arduino at sa oras na ito ay pinapalawak namin ang istasyon ng panahon kasama ang Raspberry Pi. Nilalayon ng Project na batay sa IoT na ito na ipakita ang kasalukuyang mga parameter ng Humidity, Temperatura at Presyon sa LCD pati na rin sa server ng Internet gamit ang Raspberry Pi, na ginagawang isang Raspberry Pi Weather Station. Maaari mong mai-install ang setup na ito kahit saan at masusubaybayan ang mga kondisyon ng panahon ng lugar na iyon mula sa kahit saan sa mundo sa internet, hindi lamang nito ipapakita ang kasalukuyang data ngunit maipapakita rin ang mga nakaraang halaga sa anyo ng Mga Grap.
Gumamit kami ng DHT11 Humidity & temperatura sensor para sa sensing ng temperatura at module ng Pressure sensor ng BM180 para sa pagsukat ng presyon ng barometric. Ang sukat na Celsius na Thermometer at porsyento ng sukat na Humidity meter ay nagpapakita ng temperatura sa paligid at halumigmig sa pamamagitan ng isang LCD display at presyon ng barometric ay ipinapakita sa millibar o hPa (hectopascal). Ang lahat ng data na ito ay ipinadala sa ThingSpeak server para sa live na pagsubaybay mula sa kahit saan sa mundo sa internet. Suriin ba ang Demonstration Video at Python Program, na ibinigay sa pagtatapos ng tutorial na ito.
Paggana at Pag-set up ng ThingSpeak:
Ang proyektong ito na batay sa IoT ay may apat na seksyon. Una ang pandamdam ng sensor ng DHT11 ang Humidity & Temperature Data at sinusukat ng sensor ng BM180 ang presyon ng atmospera. Pangalawa binabasa ng Raspberry Pi ang output ng module ng DHT11 sensor sa pamamagitan ng paggamit ng solong wire protocol at output ng sensor ng BM180 pressure sa pamamagitan ng paggamit ng I2C protocol at i-extract ang parehong halaga ng sensor sa isang angkop na bilang sa porsyento (halumigmig), scale ng Celsius (temperatura), hectoPascal o millibar (presyon). Pangatlo, ipinapadala ang mga halagang ito sa ThingSpeak server sa pamamagitan ng paggamit ng inbuilt Wi-Fi ng Raspberry Pi 3. At sa wakas ay pinag-aaralan ng ThingSpeak ang data at ipinapakita ito sa isang form na Grap. Ginagamit din ang isang LCD upang ipakita ang mga halagang ito nang lokal.
Nagbibigay ang ThingSpeak ng napakahusay na tool para sa mga proyekto na nakabatay sa IoT. Sa pamamagitan ng paggamit ng ThingSpeak website, maaari naming subaybayan ang aming data at makontrol ang aming system sa Internet, gamit ang Mga Channel at webpage na ibinigay ng ThingSpeak. ThingSpeak 'Kinokolekta' ang data mula sa mga sensor, 'Pag-aralan at I-visualize' ang data at 'Mga Gawa' sa pamamagitan ng pag-agaw ng isang reaksyon. Nauna naming ipinaliwanag tungkol sa pagpapadala ng data sa ThingSpeak nang detalyado, maaari kang mag-check doon. Narito kami ay maikling ipinapaliwanag upang magamit ang ThingSpeak para sa istasyong ito ng Raspberry Pi Weather.
Una kailangan mong lumikha ng account sa ThingSpeak website at lumikha ng isang 'Bagong channel' dito. Sa bagong channel kailangan mong tukuyin ang ilang mga patlang para sa data na nais mong subaybayan, tulad ng proyektong ito lilikha kami ng tatlong mga patlang para sa data ng Humidity, Temperatura at Presyon.
Ngayon mag-click sa tab na 'Mga API key' at i- save ang Isulat at Basahin ang mga key ng API, narito ginagamit lamang namin ang susi ng Pagsulat. Kailangan mong Kopyahin ang key na ito sa variable na 'key' sa Code.
Pagkatapos nito, mag-click sa 'Data Import / Export' at kopyahin ang Update Channel Feed GET Request URL, na kung saan ay:
api.thingspeak.com/update?api_key=30BCDSRQ52AOI3UA&field1=0
Ngayon ay kailangan namin ang 'Feed Get Request URL' na ito sa aming Python code upang buksan ang “api.thingspeak.com” at pagkatapos ay magpadala ng data gamit ang Request ng Feed na ito bilang string ng query. At Bago magpadala ng data ay kailangang ipasok ng gumagamit ang temperatura, kahalumigmigan at data ng presyon sa query na ito ng String gamit ang mga variable sa programa, suriin ang Code sa dulo ng artikulong ito.
URL = 'https://api.thingspeak.com/update?api_key=%s'% key finalURL = URL + "& field1 =% s & field2 =% s"% (humi, temp) + "& field3 =% s"% (presyon)
Ang pagtatrabaho ng DHT11 ay batay sa solong wire serial na komunikasyon para sa pagkuha ng data mula sa DHT11. Ginamit namin dito ang AdaFruit DHT11 library para sa interfacing DHT11 sa Raspberry Pi. Kinokolekta ng Raspberry Pi dito ang data ng Humidity at temperatura mula sa DHT11 at presyon ng atmospera mula sa sensor ng BMP180 at pagkatapos ay ipinapadala ito sa 16x2 LCD at ThingSpeak server. Ipinapakita ng ThingSpeak ang Data sa anyo ng Graph tulad ng sa ibaba:
Maaari kang matuto nang higit pa tungkol sa DHT11 Sensor at ang Interfacing nito sa Arduino dito.
Diagram ng Circuit:
Raspberry Pi Configuration at Python Program:
Kami ay gumagamit ng Python wika dito para sa Programa. Bago ang pag-coding, kailangang i-configure ng gumagamit ang Raspberry Pi. Maaari mong suriin ang aming nakaraang mga tutorial para sa Pagsisimula sa Raspberry Pi at Pag-install at Pag-configure ng Raspbian Jessie OS sa Pi.
Una sa lahat ng kailangan namin i-install ang mga file ng Adafruit Python DHT Sensor Library upang patakbuhin ang proyektong ito sa Raspberry Pi. Upang magawa ito kailangan nating sundin ang mga naibigay na utos:
sudo apt-get install git-core sudo apt-get update git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py install
Pagkatapos nito, kailangang paganahin ng gumagamit ang Raspberry Pi I2C sa pamamagitan ng pagpunta sa Pag-configure ng RPi Software din:
sudo raspi-config
Pagkatapos ay pumunta sa 'Advance Option', piliin ang 'I2C' at 'Paganahin' ito.
Ang bahagi ng pagpoproseso ng proyektong ito ay gumaganap ng napakahalagang papel upang maisagawa ang lahat ng mga operasyon. Una sa lahat isinasama namin ang lahat ng kinakailangang mga silid-aklatan, initiaze variable at tukuyin ang mga pin para sa LCD at DHT11.
import sys import RPi.GPIO bilang GPIO import os import Adafruit_DHT import urllib2 import smbus import time mula sa mga typyp import c_short #Register Address regCall = 0xAA……………..
Sa def main (): pagpapaandar, sa ibaba ang code ay ginagamit para sa pagpapadala ng data sa server at ipakita ito sa LCD, patuloy na habang loop.
def main (): print 'System Ready…' URL = 'https://api.thingspeak.com/update?api_key=%s'% key print "Wait…." habang Totoo: (humi, temp) = readDHT () (pressure) = readBmp180 () lcdcmd (0x01) lcdstring ("Humi # Temp # P (hPa)") lcdstring (humi + '%' + "% sC% s"% (temp, pressure)) finalURL = URL + "& field1 =% s & field2 =% s"% (humi, temp) + "& field3 =% s"% (pressure) print finalURL s = urllib2.urlopen (finalURL); i-print ang humi + "" + temp + "" + pressure s. sarado () oras. pagtulog (10)
Para sa LCD, ang function na def lcd_init () ay ginagamit upang pasimulan ang LCD sa apat na mode na bit, ang function na def lcdcmd (ch) ay ginagamit para sa pagpapadala ng utos sa LCD, ang function na def lcddata (ch) ay ginagamit para sa pagpapadala ng data sa LCD at def lcdstring (Str ) Ang pagpapaandar ay ginagamit upang magpadala ng data string sa LCD. Maaari mong suriin ang lahat ng mga pagpapaandar na ito sa Code na ibinigay pagkatapos.
Ang pagpapaandar na def readDHT () ay ginagamit para sa pagbabasa ng DHT11 Sensor:
def readDHT (): humi, temp = Adafruit_DHT.read_retry (Adafruit_DHT.DHT11, DHTpin) return (str (int (humi)), str (int (temp)))
Ginagamit ang pagpapaandar ng def readBmp180 para sa presyon ng pagbabasa mula sa sensor ng BM180. Ang sensor ng BM180 ay maaari ring magbigay ng temperatura ngunit narito lamang natin ito nagamit para sa pagkalkula ng presyon.
def readBmp180 (addr = deviceAdd): halaga = bus.read_i2c_block_data (addr, regCall, 22) # Basahin ang data ng pagkakalibrate # I-convert ang byte na data sa mga halagang salita AC1 = convert1 (halaga, 0) AC2 = convert1 (halaga, 2) AC3 = convert1 (halaga, 4) AC4 = convert2 (halaga, 6)……………………..
Kaya't ito ang pangunahing Raspberry Pi Weather Station, maaari mo pa itong palawakin upang masukat ang iba't ibang mga parameter na nauugnay sa panahon tulad ng bilis ng hangin, temperatura ng lupa, pag-iilaw (lux), pag-ulan, kalidad ng hangin atbp.