راه اندازی شیلد سنسور دما و رطوبت DHT11 و شیلد OLED باماژول Wemos D1 Mini
با سری آموزش های دیگری از برد Wemos D1 mini در خدمت علاقمندان به دنیای الکترونیک و IOT هستیم. امروز شیلد رطوبت و دما را مورد بررسی قرار خواهیم داد و همچنین برای این منظور از شیلد نمایشگر OLED نیز استفاده خواهیم کرد و در واقع در این پست شما با نحوه راه اندازی و کنترل دو شیلد پر استفاده D1 mini آشنا خواهید شد.با ما همراه باشد ….
پارامترهای محیطی از جمله دما، رطوبت، شدت نور در یک محیط از موارد مهم در اینترنت اشیاء IOT میباشد. این پارامترها به صورت آنالوگ هستند و برای تبدیل به مفهوم قابل درک برای سیستم نیاز به سنسور میباشد. سنسورها در اینترنت اشیاء IOT توانایی قابل درک بودن پارامترهای فیزیکی برای اشیاء را به دنبال خواهند داشت. معمولا برای هر پارامتر فیزیکی و آنالوگ یک سنسور طراحی شده است. بنابراین با انواع سنسورها میتوانیم مقادیر آنالوگ را به مقادیر دیجیتال و صفر و یک تبدیل کنیم. در این پست با استفاده از برد کنترل اینترنت اشیاء Wemos D1 Mini بر پایه ESP8266 و سنسور DHT11 و یک نمایشگر OLED دما و رطوبت محیط را میخوانیم و به نمایش در میآوریم. از این پروژه به راحتی در انواع پروژه های IOT مخصوصا پروژه هایی که مشکلات فضای کم و مصرف جریان محدود دارند میتوان استفاده کرد.
شیلد مورد استفاده در این پروژه دارای سنسور رطوبت و دمای DHT 11 میباشد. و برای راه اندازی فقط به یک عدد برد Wemos D1 mini و دو شیلد سنسور رطوبت و دما وشیلد نمایشگر OLED نیاز هست تا پروژه راه اندازی شود.
برای شروع برنامه نویسی نیاز به شناسایی برد توسط نرم افزارArduino داریم تا آن را به منوی انواع برد اضافه کنیم. آموزش اضافه کردن D1 mini به لیست برد های نرم افزار Arduino در آموزش های قبلی ارائه شده است.
لینک آموزش راه اندازی Wemos D1 mini NodeMCU
در اینجا لینک کتابخانه های مورد استفاده در پروژه را می بینید و همچنین لینک آموزش اضافه کردن کتابخانه ها به Arduino را هم مشاهده می کنید
- لینک کتابخانه شیلد OLED
- لینک کتابخانه شیلد سنسور دما و رطوبت DHT11
- لینک آموزش اضافه کردن کتابخانه های Arduino
این پروژه خوشبختانه به دلیل ماژولار بودن نیاز خاصی به شماتیک ندارد و کافیست که شما هر دو شیلد را روی برد نصب کنید و سپس با آپلود برنامه روی برد شاهد کارکرد آن باشید.
و در نهایت سورس کد Arduino برای راه اندازی این پروژه :
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "DHT.h" #define OLED_RESET 0 Adafruit_SSD1306 display(OLED_RESET); #define DHTPIN D4 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); } void loop() { delay(2000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } display.println("temp"); display.print(t); display.println(" c"); display.println("hum"); display.print(h); display.println(" %"); display.display(); }
در پروژه های بعدی با استفاده از شیلد رله و استفاده از برد D1 mini با کاربرد IOT این برد بیشتر آشنا میشویم.
موقع وریفای این اررو میده
Arduino: 1.8.10 (Windows 7), Board: “Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 4MB (FS:2MB OTA:~1019KB), 2, nonos-sdk 2.2.1+111 (191024), v2 Lower Memory, Disabled, None, Only Sketch, 115200”
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x7855fb]
goroutine 1 [running]:
github.com/arduino/arduino-cli/legacy/builder.ResolveLibrary(0x130d85a0, 0x13131c83, 0x5, 0x13131c83)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/resolve_library.go:64 +0x14b
github.com/arduino/arduino-cli/legacy/builder.findIncludesUntilDone(0x130d85a0, 0x131e8080, 0x88ed00, 0x1308ce70, 0x13042ae0, 0x131e0000, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:358 +0x3b6
github.com/arduino/arduino-cli/legacy/builder.(*ContainerFindIncludes).Run(0xdebc68, 0x130d85a0, 0xdebc68, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:152 +0x3e5
github.com/arduino/arduino-cli/legacy/builder.runCommands(0x130d85a0, 0x13035e1c, 0x20, 0x20, 0x409a01, 0xffffffff, 0x3fffffff)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd
github.com/arduino/arduino-cli/legacy/builder.(*Builder).Run(0x13071f40, 0x130d85a0, 0xdebbb4, 0x13042c90)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:117 +0xb9c
github.com/arduino/arduino-cli/legacy/builder.RunBuilder(…)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:226
main.main()
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:398 +0x6d2
C:\Program Files (x86)\Arduino\arduino-builder returned 2
Error compiling for board Generic ESP8266 Module.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
سلام.
موقعی که میخواهم کتابخانه السیدی رو به اردوینو اضافه کنم ارور میگریزد
ایا کتابخانه درست است؟
اگه میشه لینک دانلود مجددش رو هم بزارید
سلام. ممنون از لطفتون
چرا از Serial.begin(9600); استفاده کردید چرا از display.begin(9600); استفاده نکردید ؟