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

ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض: 5 خطوات
ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض: 5 خطوات

فيديو: ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض: 5 خطوات

فيديو: ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض: 5 خطوات
فيديو: Программирование модуля датчика температуры и влажности ESP8266 ESP01 DHT11 | удаленныйXY | ФЛПрог 2024, يوليو
Anonim
ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض
ESP8266 NodeMCU Access Point (AP) لخادم الويب مع مستشعر درجة الحرارة DT11 ودرجة حرارة الطباعة والرطوبة في المستعرض

مرحبًا يا رفاق في معظم المشاريع التي نستخدمها ESP8266 وفي معظم المشاريع نستخدم ESP8266 كخادم ويب بحيث يمكن الوصول إلى البيانات على أي جهاز عبر شبكة wifi عن طريق الوصول إلى خادم الويب الذي يستضيفه ESP8266 ولكن المشكلة الوحيدة هي أننا بحاجة إلى جهاز توجيه يعمل من أجل يحتاج هذا وجهازنا أيضًا إلى الاتصال بالموجه ونحتاج إلى وضع بيانات اعتماد wifi الخاصة بنا في الكود ، لذلك إذا قمت بتغيير wifi ، فأنت بحاجة إلى تغيير بيانات الاعتماد في الكود وتحتاج إلى إعادة تحميله.: 1- نحتاج إلى اتصال wifi لاستضافة خادم الويب (جهاز التوجيه) 2- في كل مرة إذا احتاج اتصال wifi إلى تغيير ، نحتاج إلى إدخال بيانات الاعتماد وإعادة تحميل الكود. لذلك لتجنب كل هذه المشكلة ، ما يمكننا القيام به هو بدلاً من إعطاء الوصول إلى شبكة wifi يمكننا أن نجعل ESP8266 لإنشاء اتصال wifi خاص به ، لذلك إذا اتصلنا باتصال wifi هذا ، يمكننا الوصول إلى خادم الويب ESP8266 ، لذلك سنستضيف خادم ويب مع ESP8266 مع نقطة وصول. سوف تخلق خادم ويب يستخدم Access Point مع ESP8266 وسنقوم بتوصيل مستشعر DHT11 ودرجة حرارة الطباعة والرطوبة على صفحة خادم الويب.

الخطوة 1: الأشياء التي تحتاجها

أشياء تحتاجها
أشياء تحتاجها
أشياء تحتاجها
أشياء تحتاجها

1x ESP 8266 Nodemcu: 1x DHT11: 1x لوح التجارب:.: عدد قليل من وصلات العبور:

الخطوة 2: احصل على مكتبات DHT11

احصل على مكتبات DHT11
احصل على مكتبات DHT11
احصل على مكتبات DHT11
احصل على مكتبات DHT11

افتح Arduino IDE وانتقل إلى Sketch> Include Library> Manage Libraries. يجب أن يفتح مدير المكتبة. ابحث عن "DHT" في مربع البحث وقم بتثبيت مكتبة DHT من Adafruit. بعد تثبيت مكتبة DHT من Adafruit ، اكتب "Adafruit Unified Sensor" في مربع البحث. قم بالتمرير لأسفل للعثور على المكتبة وتثبيتها ، وبعد تثبيت المكتبات ، أعد تشغيل Arduino IDE.

الخطوة 3: التوصيلات

روابط
روابط

الدائرة سهلة جدًا لتوصيل كل شيء وفقًا لما هو موضح في schmatics

الخطوة 4: رمز نقطة الوصول

رمز نقطة الوصول
رمز نقطة الوصول

من التعليمات السابقة الخاصة بي ، سأقوم بتعديل رمز خادم الويب الخاص بهذه التعليمات:

وقم بتحويله إلى رمز خادم الويب الخاص بنقطة الوصول ، يرجى نسخ الكود الوارد أدناه:

# تضمين "Arduino.h" # تضمين "ESP8266WiFi.h"

# تضمين "Hash.h"

# تضمين "ESPAsyncTCP.h"

# تضمين "ESPAsyncWebServer.h"

# تضمين "Adafruit_Sensor.h"

# تضمين "DHT.h"

const char * ssid = "ESP8266" ؛ const char * password = "password" ؛ # حدد DHTPIN 5 // الدبوس الرقمي المتصل بمستشعر DHT // قم بإلغاء تعليق نوع المستشعر المستخدم: // # حدد DHTTYPE DHT11 // DHT 11 # حدد DHTTYPE DHT22 // DHT 22 (AM2302) // # حدد DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN ، DHTTYPE) ؛ // درجة الحرارة والرطوبة الحالية ، محدثة في حلقة () تعويم t = 0.0 ؛ float h = 0.0 ؛ // إنشاء كائن AsyncWebServer على المنفذ 80AsyncWebServer server (80) ؛ // بشكل عام ، يجب عليك استخدام "unsigned long" للمتغيرات التي تحتوي على الوقت // ستصبح القيمة بسرعة كبيرة جدًا بحيث لا يمكن تخزينها قبل فترة طويلة غير موقعة = 0 ؛ // سيتم تخزين آخر مرة تم فيها تحديث DHT // تحديث قراءات DHT كل 10 ثوانٍ ؛ فاصل زمني طويل = 10000 ؛ const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

درجة الحرارة٪ TEMPERATURE٪ ° C

رطوبة٪ رطوبة٪٪) rawliteral "؛ // يستبدل العنصر النائب بقيم DHT ومعالج السلسلة (const String & var) {//Serial.println(var)؛ if (var ==" TEMPERATURE ") {return String (t)؛} وإلا إذا (var == "HUMIDITY") {return String (h)؛} return String ()؛} void setup () {// المنفذ التسلسلي لأغراض التصحيح Serial.begin (115200)؛ dht.begin ()؛ Serial.print ("إعداد AP (نقطة الوصول) … ") ؛ // قم بإزالة معلمة كلمة المرور ، إذا كنت تريد أن تكون نقطة الوصول (نقطة الوصول) مفتوحة WiFi.softAP (ssid ، كلمة المرور) ؛ IPAddress IP = WiFi.softAPIP () ؛ Serial.print (" عنوان IP لـ AP: ") ؛ Serial.println (IP) ؛ // طباعة ESP8266 عنوان IP المحلي Serial.println (WiFi.localIP ()) ؛ // مسار لخادم صفحة الويب / الجذر. على (" / "، HTTP_GET ، (AsyncWebServerRequest * request) {request-> send_P (200، "text / html"، index_html، processor)؛})؛ server.on ("/ temperature"، HTTP_GET، (AsyncWebServerRequest * request) {request- > send_P (200، "نص / عادي"، String (t).c_str ())؛})؛ server.on ("/ humidity"، HTTP_GET، (AsyncWebServerRequest * request) {request-> send_P (200، "نص عادي"، سلسلة (h).c_str ()) ؛ }) ؛ // بدء الخادم server.begin () ؛} حلقة فارغة () {غير موقعة long currentMillis = millis () ؛ if (currentMillis - previousMillis> = الفاصل الزمني) {// احفظ آخر مرة قمت فيها بتحديث قيم DHT previousMillis = currentMillis ؛ // قراءة درجة الحرارة مئوية (الافتراضي) float newT = dht.readTemperature () ؛ // قراءة درجة الحرارة على أنها فهرنهايت (isFahrenheit = true) // float newT = dht.readTemperature (true) ؛ // إذا فشلت قراءة درجة الحرارة ، لا تغير قيمة t إذا (isnan (newT)) {Serial.println ("فشل للقراءة من مستشعر DHT! ") ؛ } else {t = newT؛ Serial.println (t) ؛ } // قراءة الرطوبة العائمة newH = dht.readHumidity ()؛ // إذا فشلت قراءة الرطوبة ، لا تغير قيمة h إذا (isnan (newH)) {Serial.println ("Failed to read from DHT sensor!")؛ } آخر {h = newH؛ Serial.println (ح) ؛ }}} قبل تحميل الكود تأكد من وضع الأشياء التالية: const char * ssid = "ESP8266"؛ // أيا كان SSID الخاص بشبكة wifi التي تريدهاconst char * password = "password" ؛ // pass للاتصال بـ ssidSet أعلاه. ESP8266 كنقطة وصول: لتعيين esp8266 كنقطة وصول ، سنستخدم أمر softAP كما هو موضح أدناه ؛ لإنشاء نقطة وصول. WiFi.softAP (ssid ، كلمة المرور) ؛ هناك أيضًا معلمات اختيارية أخرى يمكنك تمريرها إلى طريقة softAP (). إليك جميع المعلمات: إذا فتحت الشاشة التسلسلية ، يمكنك رؤية عنوان IP الخاص بنقطة الوصول. يتم ذلك باتباع جزء من الكود. IPAddress IP = WiFi.softAPIP () ؛ Serial.print ("عنوان IP لـ AP:") ؛ Serial.println (IP) ؛ عنوان IP الافتراضي هو: 192.168.4.1

الخطوة 5: الخطوة النهائية: الاختبار

الخطوة النهائية: الاختبار
الخطوة النهائية: الاختبار

بعد تحميل الكود ، افتح هاتفك المحمول / جهاز الكمبيوتر الشخصي wifi واتصل بشبكة wifi esp8266 (بغض النظر عن ssid وكلمة المرور اللذين أدخلتهما في الرمز ، استخدم ذلك) ، بعد الاتصال فقط افتح عنوان IP في متصفحك الذي حصلنا عليه من الشاشة التسلسلية (https://192.168.4.1.) وستكون قادرًا على رؤية درجة الحرارة والرطوبة في متصفحك على أنها ملكي. ولم نستخدم أي شبكة wifi للقيام بذلك ، فهذه هي طريقة عمل نقطة الوصول esp8266.

موصى به: