工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino Nanoで作るコンパクト気象ステーション - 温湿度・気圧をリアルタイム表示

必要な部品と用品

部品 数量
Arduino Nano R3 1
DHT11 モジュール(温湿度センサー) 1
BMP280 気圧センサーモジュール 1
1.44インチ ST7735 TFT LCD ディスプレイ 1
3Dプリント製ケース 1
USB A - mini B ケーブル 1

必要な工具・機器

使用ソフトウェア

プロジェクト概要

はじめに

リアルタイムで物理データを取得することは常に魅力的です。このプロジェクトでは、天気予報の基本パラメータである「温度」「湿度」「大気圧」の3つを取得し、TFT LCD画面にリアルタイム表示します。

仕様と動作原理

回路とプログラミング

回路図とブロック図を併記し、ピン配置表も用意しています。NanoのICSPヘッダーの5V/GNDピンも電源供給に活用し、外部電源不要でコンパクトにまとめています。

主要ライブラリ

初期化処理(setup)

メインループ(loop)

組み立てとテスト

結論

低コスト・実用的・何よりポケットに入るサイズの気象ステーションを自作できる、楽しいプロジェクトです。

スケッチ


#include 
#include 
#include 
#include 
#include 
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11
#define TFT_RST 8
#define TFT_CS 10
#define TFT_DC 9
#define BMP280_I2C_ADDRESS 0x76

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
Adafruit_BMP280 bmp280;
DHT dht(DHTPIN, DHTTYPE);

void setup(void) {
  dht.begin();
  tft.initR(INITR_144GREENTAB);
  tft.fillScreen(ST77XX_BLACK);
  tft.drawFastHLine(0, 15, tft.width(), ST77XX_CYAN);
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);
  tft.setTextSize(1);
  tft.setCursor(25, 5); tft.print("WEATHER BUDDY");

  if (!bmp280.begin(BMP280_I2C_ADDRESS)) {
    tft.setTextColor(ST77XX_RED, ST77XX_CYAN);
    tft.setTextSize(2);
    tft.setCursor(5, 76); tft.print("Connection");
    tft.setCursor(35, 100); tft.print("Error");
    while (1);
  }

  tft.drawFastHLine(0, 55, tft.width(), ST77XX_CYAN);
  tft.drawFastHLine(0, 95, tft.width(), ST77XX_CYAN);
  tft.setTextColor(ST77XX_RED, ST77XX_BLACK);  tft.setCursor(30, 20); tft.print("TEMPERATURE");
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);  tft.setCursor(40, 60); tft.print("HUMIDITY");
  tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK); tft.setCursor(40, 100); tft.print("PRESSURE");
  tft.setTextSize(2);
}

void loop() {
  char buf[8];
  float temp = bmp280.readTemperature();
  float hum = dht.readHumidity();
  float pres = bmp280.readPressure();  // Pa単位

  // 温度表示(℃)
  if (temp < 0) sprintf(buf, "-%02u.%02u", (int)abs(temp), (int)(abs(temp)*100)%100);
  else sprintf(buf, " %02u.%02u", (int)temp, (int)(temp*100)%100);
  tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK);
  tft.setCursor(11, 34); tft.print(buf);
  tft.drawCircle(89, 34, 2, ST77XX_YELLOW);  // 度記号
  tft.setCursor(95, 34); tft.print("C");

  // 湿度表示(%)
  sprintf(buf, "%02u ", (int)hum);
  tft.setTextColor(ST77XX_MAGENTA, ST77XX_BLACK);
  tft.setCursor(45, 74); tft.print(buf);
  tft.setCursor(75, 74); tft.print("%");

  // 気圧表示(hPa)
  sprintf(buf, "%04u.%02u", (int)(pres/100), (int)((uint32_t)pres % 100));
  tft.setTextColor(ST77XX_ORANGE, ST77XX_BLACK);
  tft.setCursor(3, 112); tft.print(buf);
  tft.setCursor(91, 112); tft.print("hPa");

  delay(1000);
}

3Dプリント用ケースデータ

STLファイルが提供されています。Fusion 360で設計されています。

回路図

Arduino Nanoで作るコンパクト気象ステーション - 温湿度・気圧をリアルタイム表示

製造プロセス

  1. Raspberry Pi 2とADS-WS1で屋外気象観測ステーションを構築
  2. Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
  3. Raspberry Pi 3とPubNubでリモート気象監視
  4. 高度気象ステーション v2.0:温度・気圧・湿度・高度のリアルタイム監視
  5. Arduino Nano RP2040で作るDIY Photoshopコントロールコンソール
  6. Arduino Pro MiniとDS1302 RTCで作る高精度7セグメント時計
  7. 10ドルで作る携帯型Arduino気象観測ステーション – Nano、DHT22、BMP180、LCDで簡単DIY
  8. eDOT:高精度Arduino時計・気象ステーション(IRリモコン・自動輝度調整内蔵)
  9. Arduino NanoとRDA5807Mで作るコンパクトFMラジオ
  10. ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
  11. Arduino Nano製ウェザーステーション:気圧・温湿度・UV・時計表示付き