در این پروژه اینترنت اشیاء شما قادر خواهید بود با کمک سنسور BMP183 فشار اتمسفر هوا را اندازه گیری کرده و توسط اپ موبایل آن را مشاهده کنید.
این پروژه از سری پروژه های سایت ic2cloud.com هست که در مطالب قبلی نیز به نحوه راه اندازی پروژه های این سایت پرداختیم.همونطور که میدونید پروژه های سایت ic2cloud به کمک برد آردوینو و با حداقل امکانات و سخت افزار های لازم قابل اجرا هست و به صورت ازمایشگاهی میتونید از این پروژه ها استفاده کنید و با کمی تغییر نیز میتونید در پروژه های واقعی خود از اون استفاده کنید . در این پروژه اینترنت اشیاء نیز از سنسور BMP183 و برد های Arduino Uno و Arduino Ethernet Shield استفاده شده است.
در مورد پایه های ماژول فشار هوا BMP183 طبق جدول زیر میباشد و همانطور که میبینید این سنسور از طریق پروتکل SPI اطلاعات را رد و بدل میکند.
|
Pressure Sensor |
Pin |
Description |
۱ |
Vcc |
۲ |
۳.۳V |
۳ |
GND |
۴ |
SCLK |
۵ |
MISO |
۶ |
MOSI |
۷ |
CS |
|
بر اساس سورس برنامه و پایه های spi در برد آردوینو شما میتوانید پایه های سنسور رو به برد arduino وصل کنید.
Pressure Sensor |
Pin ArduinoUno |
GND |
GND |
Vcc |
+۵V |
SCLK |
D7 |
MISO |
D6 |
MOSI |
D5 |
CS |
D4 |
در این مرحله جهت مقدار دهی devId و auth میتوانید طبق آموزش موجود در این پست مقادیر رو تغییر بدین در ضمن برای راه اندازی سنسور فشار هوا BMP183 در آردیونو نیاز به کتابخانه مربوطه دارید که در آخر همین پست جهت دانلود قرار داده شده است و لازمه بعد از دانلود فایل ، فایل Adafruit_BMP183_Library-master.zip را از حالت فشرده خارج کنید و پوشه Adafruit_BMP183 را در مسیرarduinosketchfolder/libraries/ نرم افزار کپی کنید. برای کسب اطلاعات بیشتر در مورد این کتابخونه میتونید به این لینک مراجعه کنید.
در نهایت با استفاده از سورس اردوینو زیر هر ۲ ثانیه یکبار مقدار فشار اندازه گیری شده را به سرور ارسال کنید و توسط موبایل مشاهده کنید.
#include <SPI.h>
#include <Ethernet.h>
#include <Adafruit_BMP183.h>
byte mac[] = { 0xDE, 0xED, 0xBE, 0xEF, 0xFE, 0xD1 }; // mac address for ethernet board
EthernetClient eth; // the Ethernet client
char server[] = "www.ic2pro.com"; // Wiring Cloud host name
int port = 80;
String devId = "111-222-333"; // Device ID. CREATE YOUR OWN GUID; Use this http://www.guidgenerator.com/
String auth = "dXNlcjpwYXNzd29yZA=="; // Authentication credentials Create a string from <email_address>:<API_Password> and encode it base64
// The sample here "dXNlcjpwYXNzd29yZA==" is the encoding for "user:password"
// Use software SPI for pressure sensore because the ethernet shield uses standard SPI
#define BMP183_CLK ۷ // CLK
#define BMP183_SDO ۶ // MISO
#define BMP183_SDI ۵ // MOSI
#define BMP183_CS ۴ // CS
Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CLK, BMP183_SDO, BMP183_SDI, BMP183_CS);
// Update Pressure signal on the Wiring Cloud
void sendPressure(String pressure)
{
Serial.println("Pressure = " + pressure);
if (eth.connect(server, port)) { // initialize HTTP connection on port 80
eth.println("GET http://" + String(server) + ":" + String(port) + "/Wire/connector/set?id=" + devId + "&AIRPRESSURE=" + pressure + " HTTP/1.1"); // submit HTTP request
eth.println("Authorization: Basic " + auth);
eth.println("Connection: close");
eth.println();
Serial.println("Pressure sent to server.");
}
else {
Serial.println("Connection Error");
}
eth.stop();
}
void setup() {
Serial.begin(115200);
Serial.println("Start...");
Ethernet.begin(mac); // start the Ethernet connection:
delay(1000); // give the Ethernet shield a second to initialize:
bmp.begin(); // Start sensor
}
void loop() {
sendPressure(String(bmp.getPressure() / 100));
delay(2000); // send pressure only every 2 seconds
}
|
در پایان فایل های مربوط به سورس آردیونو ، کتابخانه اردوینو سنسور فشار هوا Adafruit BMP183 و سورس اپ موبایل جهت دانلود قرار داده شده است و جهت کسب اطلاعات بیشتر میتونید به مطلب اصلی این سنسور در سایت ic2cloud مراجعه کنید.
Download “Air-Pressure-IoT.zip”Air-Pressure-IoT.zip – 0 بار دانلود شده است – 76 KB