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

ArduinoNanoを使用したミニウェザーステーション

コンポーネントと消耗品

Arduino Nano R3
× 1
DHT11モジュール
× 1
BMP-280圧力センサー
× 1
1.44インチST7735LCDディスプレイ
× 1
3Dプリントエンクロージャー
× 1
USBA-ミニUSBBケーブル
× 1

必要なツールとマシン

>
はんだごて(汎用)
3Dプリンター(汎用)
はんだ付けワイヤー
両面テープ

アプリとオンラインサービス

>
Arduino IDE
Autodesk Fusion 360

このプロジェクトについて

はじめに

物理データをリアルタイムでキャプチャすることは、常に魅力的です。このプロジェクトでは、気象予測のための3つの基本的な物理的パラメータをキャプチャできるだけではありません。温度、湿度、大気圧だけでなく、LCD画面にリアルタイムのデータを表示することもできます。

説明と動作原理

このプロジェクトで使用される2つのセンサーは、BMP-280とDHT-11です。前者は温度と大気圧を感知し、後者は相対湿度を感知します。 DHT-11は、BMP-280の代わりにBME-280(湿度も測定可能)を使用して行うことができましたが、コストを考慮すると、ここで使用するセンサーの組み合わせを使用すると、DIYの方がはるかに経済的です。プロジェクト。また、DHT-11は温度と湿度の両方を検出できますが、温度検出の分解能がBMP-280の+/-。5°に対して+/- 2°であるため、湿度検出にのみ使用されることにも注意してください。このプロジェクトの中心は、ArduinoNANO開発ボードです。ここでも、手頃な価格のため、大衆に好まれるUNOよりもNANOボードが選ばれています。プロジェクトのディスプレイには、1.44インチのST7735シリーズTFTLCDスクリーンを使用しています。 Arduino NANOが過負荷にならないように、ここでは大きな画面は避けられています。

回路とプログラミング

回路図とブロック図の組み合わせは、メーカーがコンポーネントの物理的な構成と接続を理解するのに役立つように、可能な限り便利に提供されています。コンポーネントのピン配置の表も用意されており、作業が簡単になります。図と表を見ると、Arduino NANOのICSPヘッダーの5VピンとGNDピンが、オンボードの電源ピンと接地ピンとともにコンポーネントに電力を供給するために使用されていることがわかります。これは、システムをかさばらせる追加の電源をなくすために行われました。

プログラミングに関して言えば、最初の部分では、プログラミングを短くシンプルに保つために、ライブラリの配列が含まれています。明らかなものに加えて、Wire.hおよびSPI.hライブラリは言及する価値があります。Wire.hはArduinoがBMP-280やST7735LCDおよびSPI.hなどのI2C / TWIデバイスと通信できるようにするものだからです。 ST7735LCDとのシリアルペリフェラルインターフェースを提供します。 2番目の部分では、センサーが初期化され、LCDのレイアウト、フォントの色などが、好みに応じてデータを表示するように設定されます。プログラミングの最後の部分では、センサーからの出力が取得され、各読み取りの間に便利な遅延を伴って表示され、物事を安定させます。

構築とテスト

プロトタイプでは、コンポーネントはモジュール式に保たれ、はんだ付けの代わりにジャンパー線を使用して接続されています。これにより、トラブルシューティングと修復が簡単になるだけでなく、組み立てプロセスの手間が省けます。デバイスケースは、コンポーネントに完全にフィットするようにカスタム3Dプリントされています。センサーを測定対象物にさらし、システムによって生成された熱を放散するために、ケースには適切な換気が提供されます。デバイスは、Arduinoのプログラミングに使用されるタイプBのミニUSBと同じタイプのAUSBを介して電力を供給されます。プロトタイプは、PC USBポートと5Vスマートフォン充電器の両方を電源として使用して、屋内で数時間ストレッチテストされています。生産コストと開発時間を考慮すると、結果はオンラインの気象データと比較して非常に正確です。

結論

結論として、このプロジェクトは非常に経済的で、控えめに言っても便利であり、そして最も重要なことに、あなたのポケットにぴったり収まる小さくて便利な気象観測所を持つことは楽しいと言えます。

電子部品を購入するには、UTSOURCEから注文してください

参考文献

・Google.com

・Arduino.cc

・mytectutor.com

<図> <図> <図> <図>


コード

  • コード
コード C / C ++
これはプロジェクトに関連するスケッチです。コメントステートメントは、動作を説明します
 #include  //シリアルペリフェラルインターフェイスライブラリを含める#include  // 2線式インターフェイスライブラリを含める#include  // Adafruitグラフィックライブラリを含める#include  // AdafruitST7735を含めるTFTライブラリ#include  // AdafruitBMP280センサーライブラリを含める#include "DHT.h" // DHTXXセンサーを含めるlibrary#define DHTPIN 2 // arduinoピンに接続されたDHT11データピンD2#define DHTTYPE DHT11 //使用するDHTセンサーのタイプを指定#defineTFT_RST 8 // TFT RSTピンはarduinoピンに接続されていますD8#define TFT_CS 10 // TFT CSピンはarduinoピンに接続されていますD9#define TFT_DC 9 // TFTDCピンはarduinoピンに接続されていますD10 //初期化ST7735シリーズTFTライブラリAdafruit_ST7735tft =Adafruit_ST7735(TFT_CS、TFT_DC、TFT_RST); //デバイスI2Cアドレスを定義します:0x76または0x77(0x77はライブラリのデフォルトアドレスです)#define BMP280_I2C_ADDRESS 0x76 Adafruit_BMP280 bmp280; // AdafruitBMP280ライブラリを初期化しますDHTdht(DHTPIN、DHTTYPE); // DHTセンサーを初期化しますvoidsetup(void){dht.begin(); // DHTセンサーを同期しますtft.initR(INITR_144GREENTAB); // ST7735Sチップを初期化します、黒いタブtft.fillScreen(ST77XX_BLACK); //黒の背景を設定しますtft.drawFastHLine(0、15、tft.width()、ST77XX_CYAN); //位置(0、15)に水平分離線を描画しますtft.setTextColor(ST77XX_CYAN、ST77XX_BLACK); //テキストの色を白と黒の背景に設定しますtft.setTextSize(1); //テキストサイズを1に設定します//tft.setCursor(4,0); //カーソルを位置(4、0)ピクセルに移動します//tft.print("ARDUINO + ST7735 TFT "); tft.setCursor(25、5); //カーソルを位置(25、5)に移動しますpixel tft.print( "WEATHER BUDDY"); // BMP280センサーを初期化しますif(bmp280.begin(BMP280_I2C_ADDRESS)==0){//接続エラーまたはデバイスアドレスが間違っています! tft.setTextColor(ST77XX_RED、ST77XX_CYAN); //テキストの色を赤と黒の背景に設定しますtft.setTextSize(2); //テキストサイズを2に設定tft.setCursor(5、76); //カーソルを位置(5、76)に移動しますpixel tft.print( "Connection"); tft.setCursor(35、100); //カーソルを位置(35、100)に移動しますpixel tft.print( "Error"); while(1); //ここにとどまります} tft.drawFastHLine(0、55、tft.width()、ST77XX_CYAN); //位置(0、55)ピクセルに水平分離線を描画しますtft.drawFastHLine(0、95、tft.width()、ST77XX_CYAN); //位置(0、195)に水平分離線を描画しますpixel tft.setTextColor(ST77XX_RED、ST77XX_BLACK); //テキストの色を赤と黒の背景に設定しますtft.setCursor(30、20); //カーソルを位置(30、20)に移動しますpixel tft.print( "TEMPERATURE"); //最初のセクションの見出しを設定しますtft.setTextColor(ST77XX_CYAN、ST77XX_BLACK); //テキストの色をシアンと黒の背景に設定しますtft.setCursor(40、60); //カーソルを位置(40、60)に移動しますpixel tft.print( "HUMIDITY"); // 2番目のセクションの見出しを設定しますtft.setTextColor(ST77XX_GREEN、ST7735_BLACK); //テキストの色を緑と黒の背景に設定しますtft.setCursor(40、100); //カーソルを位置(40、100)に移動しますpixel tft.print( "PRESSURE"); // 3番目のセクションの見出しを設定しますtft.setTextSize(2); //テキストサイズを2に設定} // main loopvoid loop(){char _buffer [8]; // BMP280センサーから温度、湿度、圧力を読み取りますfloat temp =bmp280.readTemperature(); //温度を°Cで取得しますfloathum =dht.readHumidity(); //湿度をrHで取得%float pres =bmp280.readPressure(); //圧力をhPaで取得//温度を出力(°C)if(temp <0)//温度<0の場合sprintf(_buffer、 "-%02u。%02u"、(int)abs(temp)、(int )(abs(temp)* 100)%100); else //温度> =0の場合sprintf(_buffer、 "%02u。%02u"、(int)temp、(int)(temp * 100)%100); //値の近似値を設定tft.setTextColor(ST77XX_YELLOW、ST77XX_BLACK ); //テキストの色を黄色と黒の背景に設定しますtft.setCursor(11、34); //カーソルを位置(11,34)に移動しますpixel tft.print(_buffer); // BMP-280センサーから温度を出力しますtft.drawCircle(89、34、2、ST77XX_YELLOW); //度記号(°)を出力します(代わりに*を使用する場合は省略できます)tft.setCursor(95、34); //カーソルを位置(95,34)に移動しますpixel tft.print( "C"); //摂氏記号を出力します// 2:湿度を出力します(%)sprintf(_buffer、 "%02u"、(int)(hum)); //値の近似値を設定しますtft.setTextColor(ST77XX_MAGENTA、ST77XX_BLACK); //テキストの色をマゼンタと黒の背景に設定しますtft.setCursor(45、74); //カーソルを位置(45,74)に移動しますpixel tft.print(_buffer); // DHT-11センサーから湿度を出力しますtft.setCursor(75、74); //カーソルを位置(75,74)に移動しますpixel tft.print( "%"); //パーセント記号を出力します// 3:圧力を出力します(hPa)sprintf(_buffer、 "%04u。%02u"、(int)(pres / 100)、(int)((uint32_t)pres%100)); //値の概算を設定しますtft.setTextColor(ST77XX_ORANGE、ST77XX_BLACK); //テキストの色をオレンジと黒の背景に設定しますtft.setCursor(3、112); //カーソルを位置(3,112)pixelに移動しますtft.print(_buffer); // BMPから大気圧を出力-280tft.setCursor(91、112); //カーソルを位置(91,112)に移動しますpixel tft.print( "hPa"); //大気圧の単位をヘクトパスカルdelay(1000);として出力します。 // 1秒待ってから次のセンサーの読み取りを行います} 

カスタムパーツとエンクロージャー

これは私が使用した3DプリントパーツのSTLファイルです

回路図

示されている配線に従う必要があります。

製造プロセス

  1. Raspberry Pi2ウェザーステーション
  2. ラズベリーパイウェザーステーション
  3. RaspberryPiを使用した天気のリモートモニタリング
  4. Weather Station V 2.0
  5. Arduino Nano RP2040を使用したDIYPhotoshop編集コンソール
  6. 7セグメントアレイクロック
  7. $ 10ポータブルArduinoウェザーステーション(AWS)
  8. eDOT-Arduinoベースの精密時計および気象観測所
  9. ArduinoとRDA8057Mを使用したFMラジオ
  10. ThingSpeak Arduino Weather Station
  11. ローカル気象台