جدول المحتويات:

محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 خطوات
محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 خطوات

فيديو: محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 خطوات

فيديو: محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 خطوات
فيديو: IoT Based weather station using BMP280 & ESP32 | BMP280 pressure and temperature sensor with Blynk 2024, شهر نوفمبر
Anonim
محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire)
محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire)

هنا يمكنك العثور على تكرار واحد لاستخدام OneWire مع عدد قليل جدًا من دبابيس ESP-01. يتصل الجهاز الذي تم إنشاؤه في هذه التعليمات بشبكة Wifi التي تختارها (يجب أن يكون لديك بيانات الاعتماد …) يجمع البيانات الحسية من BMP280 و a DHT11 ، ويرسل البيانات التي تم جمعها إلى قناة ThingSpeak المتوفرة ، أفترض أنك تعرف كيفية تحميل رسم تخطيطي إلى ESP-01 الخاص بك ، لذلك لن أخوض في هذه التفاصيل ، فبدون منظم الجهد ، يجب تشغيل الدائرة. بحد أقصى 3.3 فولت تيار مستمر. لا يتم إضافة الكثير من النصوص ، يجب أن يكون البرنامج التعليمي واضحًا من هذه النقطة.

الخطوة 1: الخطوة 1: BOM

الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM
الخطوة 1: BOM

المعدات:

1 × وحدة Wifi: ESP-01 (أنا أستخدم إصدار 1024 كيلوبايت)

1 × مستشعر الضغط ودرجة الحرارة: BMP280

1 × مستشعر الرطوبة ودرجة الحرارة: DHT11

1 x Voltage Regulator AMS1117 (اختياري للتشغيل المباشر ، أو يمكنك استخدام أي جهاز آخر قادر على تنظيم جهد الدخل الخاص بك وصولاً إلى 3.3 فولت ثابت)

الخطوة 2: الخطوة 2: الأسلاك

الخطوة 2: الأسلاك
الخطوة 2: الأسلاك

ESP-01 VCC إلى 3.3VESP-01 GND إلى GNDESP-01 TX إلى DHT11 DATAESP-01 GPIO0 إلى BMP280 SDAESP-01 GPIO2 إلى BMP280 SCLDHT11 VCC إلى 3.3VDHT11 GND إلى GNDBMP280 VCC إلى 3.3VBMP280 GND إلى GND

الخطوة 3: الخطوة 3: الكود

#include #include #include // CHECK #define BMP280_ADDRESS يعمل الألغام مع (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "as "؛ // YOUR WIFI SSID const char * password = "asd" ؛ // YOUR WIFIPASS const char * host = "api.thingspeak.com" ؛ const char * writeAPIKey = "asd" ؛ // جهاز APIKEY الخاص بك // DHT11 يطفو على درجة الحرارة_buiten ؛ تعويم temperature_buiten2؛ DHT dht (DHTPIN ، DHTTYPE ، 15) ؛ // BMP280 Adafruit_BMP280 bmp ؛ إعداد باطل () {// I2C stuff Wire.pins (0، 2)؛ Wire.begin (0 ، 2) ؛ // DHT1 dht.begin () ؛ // BMP280 if (! bmp.begin ()) {// Serial.println ("No BMP280")؛ // while (1) {}} // الاتصال بشبكة WiFi WiFi.begin (ssid ، كلمة المرور) ؛ while (WiFi.status ()! = WL_CONNECTED) {delay (500) ؛ }} void loop () {// DHT11 float humidity = dht.readHumidity ()؛ درجة حرارة الطفو = dht.readTemperature () ؛ إذا (isnan (الرطوبة) || isnan (درجة الحرارة)) {return؛ } // BMP280 String t = String (bmp.readTemperature ()) ؛ String p = String (bmp.readPressure ()) ؛ // TCP CONNECTION WiFiClient client ؛ const int httpPort = 80 ؛ if (! client.connect (host، httpPort)) {return؛ } String url = "/ update؟ key ="؛ url + = writeAPIKey ؛ url + = "& field1 =" ؛ url + = سلسلة (درجة الحرارة) ؛ // DHT11 CELSIUS url + = "& field2 ="؛ url + = سلسلة (رطوبة) ؛ // DHT11 RELATIVE HUMIDITY url + = "& field3 ="؛ url + = String (bmp.readTemperature ()) ، // BMP280 CELSIUS url + = "& field4 ="؛ url + = String (bmp.readPressure () / 100) ؛ // BMP280 MILLIBAR url + = "& field5 ="؛ url + = String (bmp.readAltitude (1013.25)) ، // BMP280 METER url + = "& field6 ="؛ url + = سلسلة ((temperature + bmp.readTemperature ()) / 2) ؛ // DHT11 + BMP280 AVERAGE CELSIUS url + = "\ r / n"؛ // أرسل الطلب إلى الخادم client.print (String ("GET") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n ") ؛ تأخير (1000) ؛ }

موصى به: