haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 电子DIY > 译文美国DIY综合制作 >

物联网简单:与nodemcu家气象站和OLED(2)

VCC(我们可以连接到外部5V或3.3V的nodemcu);
  • 数据输出;
  • 没有连接
  • 地面。
  • 一旦你通常会使用传感器的距离小于20m,10K欧姆的电阻应连接数据和VCC引脚之间。输出引脚将被连接到nodemcu引脚D3(见上图)。

    一旦传感器安装在我们的模块,下载DHT文库Adafruit GitHub库安装在你的Arduino的库文件。一旦你重新加载你的Arduino IDE,“DHT传感器库”应安装。

    让我们来定义我们的传感器参数和相关的变量(我们将使用首先,DHT22):

    / * * / 
     DHT22 #包括“DHT。H”
     #定义dhtpin D3 
     #定义dhttype DHT22 
     DHT DHT(dhtpin,DHTTYPE);
     int localhum = 0;
     int localtemp;

    现在,让我们创建一个函数来读取数据:

    / *************************************************** 
     *室内温度/湿度数据
     **************************************************** / 
    无效getdht() 
     { 
    浮tempini = localtemp;
    浮humini = localhum;
     localtemp = DHT。readtemperature();
     localhum = DHT。readhumidity();
    如果(isnan(localhum)| | isnan(localtemp))/检查是否有读失败和退出早期(再试一次)。
     { 
    串行out.println(“无法读取;
     localtemp = tempini;
     localhum = humini;
    回报;

    一旦我们有了数据,让他们在我们的OLED显示器:

    /***************************************************
    * Draw Indoor Page
    ****************************************************/
    void drawDHT() 
    {
      int x=0;
      int y=0;
      display.setFont(ArialMT_Plain_10);
      display.setTextAlignment(TEXT_ALIGN_LEFT);
      display.drawString(0 + x, 5 + y, "Hum");
      
      display.setFont(ArialMT_Plain_10);
      display.setTextAlignment(TEXT_ALIGN_LEFT);
      display.drawString(43 + x, y, "INDOOR");
    
      display.setFont(ArialMT_Plain_24);
      String hum = String(localHum) + "%";
      display.drawString(0 + x, 15 + y, hum);
      int humWidth = display.getStringWidth(hum);
    
      display.setFont(ArialMT_Plain_10);
      display.setTextAlignment(TEXT_ALIGN_LEFT);
      display.drawString(95 + x, 5 + y, "Temp");
    
      display.setFont(ArialMT_Plain_24);
      String temp = String(localTemp) + "°C";
      display.drawString(70 + x, 15 + y, temp);
      int tempWidth = display.getStringWidth(temp);
    }

    上面的照片显示了如何将数据显示在显示。

    你可以下载完整的代码为室内操作从我的GitHub:
    家气象站室内编码

    或使用文件贝娄:

     
    • 物联网简单:与nodemcu家气象站和OLED(2)home_weather_station_indoor.ino
      下载

    步骤4:户外资料:地下气象服务

    物联网简单:与nodemcu家气象站和OLED(2)

    我们的室外气象数据将通过免费提供的服务,地下气象您将需要创建一个帐户,在他们的网站上,得到一个天气的API密钥。做以下说明贝娄链接:

    https://www.wunderground.com/weather/api

    我们的气象站是基于由Daniel Eichhorn完成伟大的工作(@ squix78)。按照他的指示去GitHub拨库。你至少需要安装图书馆贝娄:

    • Daniel Eichhorn气象站:https://github.com/squix78/esp8266-weather-station
    • JSON解析器的Daniel Eichhorn流:https://github.com/squix78/json-streaming-parser

    在你的图书馆安装IDE重新开始下载程序从下面我的GitHub:

    mjrobot家气象站代码

    一旦你的代码加载到你的Arduino IDE,打开“stationcredentials。H”和你的人事数据代替虚拟数据:

    / * * / WiFi 
     const char* wifi_ssid =“你的SSID”;
     const char* wifi_pwd =“密码”;
     
     / * * / 
     wunderground设置常量布尔is_metric = true;
     const string wundergrround_api_key =“钥匙”;
     const string wundergrround_language =“en”;
     const string wunderground_country =“瘦肉精”;
    ;
    请注意,我们将从地下服务检索天气信息将以圣地亚哥(城市)和Cl(国:智利)。你必须改变你自己城市的数据。

    这就是它!你的站必须运行,现在你可以看见我的原型的照片。

    步骤5:将站在盒子里

    物联网简单:与nodemcu家气象站和OLED(2)

    最后一个阶段是装配我们站在盒子。我只做了一个简单的例子,如上图所示。我也改变了DHT22与DHT11,只为乐趣

    不要忘记更改文件“stationdefines适当的DHT的宣言。”)。

    这是所有的人们!

    步骤6:结论

    物联网简单:与nodemcu家气象站和OLED(2)

    (责任编辑:admin)
    haoDIY创好电子 版权所有,电话微信13977534587