簡単に接続された温度と湿度センサーを構築する


To monitor the temperature of the main room or the baby bedroom, you can create and develop your own connected temperature sensor easily.


これらの手順により接続温度センサを作成する.これを達成するために、ESP 8266と2シールドを使用します.
ESP 8266は、統合されたWi - FiモジュールでArduinoのようなマイクロコントローラです.
シールドは、その機能を拡大するメインボードに追加することができますボードです.シールドは非常に簡単に設定し、使用することの利点があります.
今のところ、20シールドはESP 8266 D 1ミニで利用可能です.
だから我々は簡単にお互いの上に盾をクリッピングし、小さなコードを書くことによって、多くのIOTプロジェクトを作成することができます.

このプロジェクトで使用されるもの

  • A ESP8266 Wemos D1 miniこれは、メインのミニWi - Fiボードです.
  • A SHT30 Shield温湿度センサモジュールです.私は、それがより正確で、ESP 8266から熱によって影響されないので、あなたにV 2をとるように勧めます.この記事では、モジュールのV 1を使用します.
  • A OLED display Shieldそれは我々が温度
  • を表示できるようにする画面です



    要件


    Arduino IDEの最新のバージョン

  • ESP 8266ボードを追加します.Arduino/Preferences/Additional Boards Manager URLsにこのURL https://arduino.esp8266.com/stable/package_esp8266com_index.jsonを加えてください
    ESP 8266をボードマネージャTools/Board/Board Managerにインストールします
  • このライブラリにTools/Manage Librariesを追加します.Adafruit_SHT31Adafruit_SSD1306BlynkSimpleEsp8266
  • Toolsで設定を変更します.
  • ボード:LOLIN(WEMOS) D1 mini lite
  • ポートポート:の/dev/cu.wchusbserial…
  • アップロード速度:921600
  • Serial Monitorをクリックしてください

    ステップ1 -温度値を読む


    当分の間、SET 30シールドをESP 8266の上に接続します.次のコードで、室温と湿度を4秒ごとにコンソールに戻します.

    #include "Adafruit_SHT31.h"
    
    Adafruit_SHT31 sht30 = Adafruit_SHT31();
    
    void setup() {
      Serial.begin(9600);
    
      while (!Serial)
        delay(10);
      // will pause until serial console opens
    
      Serial.println("SHT30 test");
      if (! sht30.begin(0x45)) {
        Serial.println("Couldn't find SHT30");
        while (1) delay(1);
      }
    }
    
    
    void loop() {
      float t = sht30.readTemperature();
      float h = sht30.readHumidity();
    
      if (! isnan(t)) {  // check if 'is not a number'
        Serial.print("Temp *C = "); Serial.println(t);
      } else { 
        Serial.println("Failed to read temperature");
      }
    
      if (! isnan(h)) {  // check if 'is not a number'
        Serial.print("Hum. % = "); Serial.println(h);
      } else { 
        Serial.println("Failed to read humidity");
      }
      Serial.println();
      delay(4000); 
      // wait 4 seconds before coming back into the loop
    }
    
    次のコードで、室温と湿度を4秒ごとにコンソールに戻します.

    ステップ2 -画面にメッセージを表示する


    ESP 8266の上にOLEDディスプレイシールドを接続して、簡単なメッセージを投稿しましょう.

    #include <Adafruit_SSD1306.h>
    
    Adafruit_SSD1306 display(-1);
    
    void setup() {
      Serial.begin(9600);
    
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
      // initialize with the I2C addr 0x3C (for the 64x48)
    
      // set the text size and color
      display.setTextSize(2);
      display.setTextColor(WHITE);
    }
    
    void loop() {
       display.setCursor(0,0);
       display.println("Hello");
       display.display();
       delay(1000);
    
       display.clearDisplay();
    
       display.setCursor(0,24);
       display.println("World");
       display.display();
       delay(1000);
    
       display.clearDisplay();
    }
    
    我々は今、どのようにテキストを表示する方法と画面をクリアする方法を知っている.

    ステップ3 -画面上の温度を表示する


    温度の値を読み取ることができますし、画面に表示されるテキストは、次のステップのために、我々は温度と湿度の値が表示されます.
    #include "Adafruit_SHT31.h"
    #include <Adafruit_SSD1306.h>
    
    Adafruit_SSD1306 display(-1);
    
    Adafruit_SHT31 sht30 = Adafruit_SHT31();
    
    void setup() {
      Serial.begin(9600);
    
      if (! sht30.begin(0x45)) {
        Serial.println("Couldn't find SHT30");
        while (1) delay(1);
      }
    
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
      // initialize with the I2C addr 0x3C (for the 64x48)
    
      // set the text size and color
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.clearDisplay();
    }
    
    void loop() {
       float t = sht30.readTemperature();
       float h = sht30.readHumidity();
    
       display.setCursor(0,0);
       display.sprintf("%.1fC", t);
    
       display.setCursor(0,25);
       display.printf("%.0f%%\n", h);
    
       display.display();
       delay(5000);
    
       display.clearDisplay();
    }
    

    ステップ4 - BLynkアプリに接続


    温度と湿度の値を持っているが、それを相談するのは非常に実用的ではない.それで、我々は雲の上でデータを掲示して、我々がBlynkで構築するアプリケーションでそれを取り戻すために、我々の温度センサーをインターネットに接続します.
    Blynkは、アプリケーションなどの小さなアプリケーションの無料です.それは雲にあなたのデバイスを接続し、簡単に我々のアプリケーションを設計する最も人気のあるiOTプラットフォームです.
    アプリケーションで新しいプロジェクトを作成する方法の詳細については、このリンクを使用することができます.
    ➡️ http://docs.blynk.cc/#getting-started-getting-started-with-the-blynk-app
    #define BLYNK_PRINT Serial
    
    #include "Adafruit_SHT31.h"
    #include <Adafruit_SSD1306.h>
    #include <BlynkSimpleEsp8266.h>
    
    Adafruit_SSD1306 display(-1);
    
    Adafruit_SHT31 sht30 = Adafruit_SHT31();
    
    char auth[] = "BLYNK_API_KEY";
    char ssid[] = "WIFI_NAME";
    char pass[] = "WIFI_PASSWORD";
    
    void setup() {
      Serial.begin(9600);
      Serial.println("Starting");
    
      // connect to the WiFi
      Blynk.begin(auth, ssid, pass);
    
      if (! sht30.begin(0x45)) {
        Serial.println("Couldn't find SHT30");
        while (1) delay(1);
      }
    
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
    
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.clearDisplay();
    }
    
    void loop() {
       // start blynk
       Blynk.run();
       float t = sht30.readTemperature();
       float h = sht30.readHumidity();
    
       display.setCursor(0,0);
       display.printf("%.1fC", t);
    
       // send the temp value on the virtual pin 1 (V1)
       Blynk.virtualWrite(1, t);
    
       display.setCursor(0,25);
       display.printf("%.0f%%\n", h);
    
       // send the humidity value on the virtual pin 2 (V2)
       Blynk.virtualWrite(2, h);
    
       display.display();
       delay(5000);
    
       display.clearDisplay();
    }
    
    ここで、次の写真のように2つのラベルの値を設定することにより、アプリケーションをblynkに設定できます.


    あなたは、アプリケーションで提供されるモジュールと少し楽しいことができます.私は、温度と湿度の値を表すグラフを作りました.

    おめでとう、あなたの接続温度センサーを作った.👏
    当初https://henaff.io年に出版された.