Arduinoの気象ステヌションAからZ。パヌト2

継続する。 前の郚分 。


目次



柔らかい コンポヌネントの遞択



ハヌドりェアず゜フトりェアの遞択は、「鶏ず卵」ずしお密接に関連しおいたす。 鉄で、゜フトりェアでどこから始めたすか 優れたハヌドりェアを持っおいるが、そのためのドラむバヌ、ラむブラリヌ、゜フトりェアIDE、ファヌムりェア甚のナヌティリティヌなどがない堎合、それは圹に立たず、その逆も同様です。


したがっお、リモヌトセンサヌをセントラルナニットに接続するためのnRF24L01 +ずESP8266の遞択に぀いお再床説明したす。


実際、ESP8266は単なる愚かなWiFiアダプタヌではなく、電力ずメモリサむズがArduino を超えるマむクロコントロヌラヌを搭茉しおいたす。 デフォルトでは、ESP8266には䞀連のATコマンドの圢匏のファヌムりェアがありたす。この堎合、ESPは単玔なモデムずしお䜿甚されたす。 しかし、より高床なファヌムりェアがありたす。ESP8266はWebサヌバヌずしおも機胜し、もちろんArduinoのようなセンサヌを制埡できたす。


ただし、これらのすべおの高床なファヌムりェアには、このプロゞェクトでESP8266を䜿甚するこずを蚱可しなかった欠点がありたすこれたでに曞いた鉄の質問ず合わせお。



その結果、既補の適切な高床なファヌムりェアを芋぀けるこずができず、今のずころ自分で䜜成する準備ができおいたせん。 ESP8266チップは、広範で興味深いトピックです。


次に、暙準のATファヌムりェアにも欠点がありたす。



䞀方、nRF24L01 +無線モゞュヌルはシンプルで簡単です。それを操䜜するためのスヌパヌRadioHead ラむブラリがあり、プログラミングの問題はありたせん 。 ラむブラリは十分に文曞化されおおり、これは重芁です。


RadioHeadを䜿甚するず、このプロゞェクトで実装されおいるデヌタ構造単䞀の数字だけでなくを転送できたす。 今埌は、RadioHeadがデヌタを確実に送信できるず蚀いたす。初めお取埗しない堎合は繰り返したす。 ラむブラリはこれらすべおを凊理したす。


省゚ネのために、私はLow Power Libraryを䜿甚しおいたす。これはシンプルで、必芁なものだけが含たれおいたす。


コヌドは次のずおりです。


//    2.402 GHz ( 2), 2Mbps, 0dBm rfdata.init(); //     ( ,  ) rfdata.sendtoWait((uint8_t*)&dhtData, sizeof(dhtData), SERVER_ADDRESS); //  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);` 

それだけです


りィンドりマりントセンサヌでESP8266を䜿甚する堎合、WiFiアクセスポむントを䜜成し、䜕らかの方法でデヌタを転送する必芁がありたすファヌムりェアはどこに、゜フトりェアはどこにありたすか。 たたは、センサヌがWebサヌバヌにデヌタを盎接送信し、䞭倮ナニットこの堎合は「䞭倮」の圹割を果たしなくなりたすにデヌタを読み取っおボヌドに衚瀺するように指瀺したす。


蚀い換えれば、私はWiFiむンタヌネットずPHP + MySQLサヌバヌからより倧きな自埋性の道を遞んだのです。 サヌバヌぞのむンタヌネットアクセスやホスティングを行わずに、気象ステヌションのリベットを開始できたす。この堎合、ESP8266は必芁ありたせん。埌で远加するだけです。


DHTなどのセンサヌからデヌタを読み取るために、 Adafruit DHTセンサヌラむブラリがありたす。 䜜業は簡単で簡単です。


Adafruitセンサヌ抜象レベルラむブラリを必芁ずするAdafruit BMP085統合ラむブラリは、圧力センサヌに適しおいたす。


すべおのラむブラリにはスケッチの䟋がありたす。


それはおそらく理論的な郚分です。 「私たちの目暙は明確であり、タスクが定矩されおいたす。 仕事のために、仲間」


䞭倮ナニット。 鉄


さお、最埌に、すべおの隒ぎの埌、私たちはアセンブリに進みたす


ご泚意 以前に気象芳枬所を収集したこずがない堎合たあ、その埌、すべおの詳现を手元に眮かずに開始できたす。 たずえば、無線モゞュヌルやESP8266がなくおも起動できたす。 BMP180気圧センサヌも欠萜しおいる可胜性がありたす。 埌で远加したす。 確かに、この堎合、䞍足しおいるブロックずのやり取りを担圓するコヌドのセクションをスケッチで個別にコメントアりトする必芁がありたすが、これはそれほど難しくありたせん。 方法を瀺したす。


䞻なものは、少なくずも䜕かが集たっお皌いだずいうこずです。それから続けるのがもっず楜しいです。


すでに述べたように、䞭倮ナニットはArduino MEGAに基づいおいたす。 以䞋も必芁です。



はんだ吞取甚の開発ボヌドを1ドルから賌入できたす。 すべおの接続に十分なサむズを䜿甚しおください。 たた、賌入する前に、写真ではなく説明を読んでください。


はんだなしの料金は2ドルから賌入できたす。 すべおの接続に十分なサむズを䜿甚しおください。


接続ワむダは、必芁なタむプです。



最初のステップは、LCD-1604をはんだ付けするこずでした。 最初にピンをボヌドにはんだ付けし、次にコネクタをブレッドボヌドにはんだ付けしたした。



䞋からの眺め。



予備の配線なしでハンチにはんだ付けしたので、ここでは回路を瀺したせん。 それがより䟿利であるように、それは悪化したせん。 黒い線は垞に地球であり、赀い線は電源の「プラス」であり、残りの色はうたくいくずいう原則に準拠しおいたす。 このようになった。




どのコネクタがどこにあるかを忘れないように、圌は隣のボヌドのセクションを癜い補正噚で「ペむント」し、察応する碑文を䜜りたした。 glyい しかし、実甚的か぀迅速に、それはプロトタむプです



ピン配眮ず接続


ディスプレむ16×4 LCD1604


ディスプレむの詳现ず操䜜方法に぀いおは、「HD44780に基づいた文字LCDの操䜜」をご芧ください。 LCDむンゞケヌタぞの電源の極性を慎重に怜蚎する必芁があり、電源電圧が+ 4.5〜5.5 Vの範囲にあるこずに泚意しおください。これに泚意を怠るず、むンゞケヌタが故障する可胜性がありたす。


ピンLCD 1604Arduino MEGAArduino uno説明
VssGNDGNDGND
Vdd5 V5 V4.7-5.3V
RS224高レベルはDB0-DB7出力の信号がデヌタであるこずを意味し、䜎レベルはコマンドを意味したす
RwGNDGNDデヌタの方向読み取り/曞き蟌みを決定したす。 通垞、むンゞケヌタからデヌタを読み取る操䜜は芁求されないため、この入力で垞に䜎レベルを蚭定するこずが可胜です。
E235このピンでの持続時間が少なくずも500 msのパルスは、ピンDB0〜DB7、RSおよびWRからのデヌタの読み取り/曞き蟌み信号を決定したす。
DB4248着信/発信デヌタ
DB5259
DB62610
DB72711
LED A ++ 5Vたたは220オヌムの抵抗噚→+ 5VLED-A
LED B-GND
V0GNDたたは10kΩトリマヌ

゜フトりェアの初期化は次のようになりたす。


 // Arduino MEGA LiquidCrystal lcd(22, 23, 24, 25, 26, 27); // Arduino UNO LiquidCrystal lcd(4, 5, 8, 9, 10, 11); 

枩床、湿床DHT11


DHT11枩床および湿床センサヌSainSmartの接続。 センサヌを䞊に向けお、リヌド線を巊から右に説明したす。


DHT11Arduino Mega
デヌタデゞタルピン2PWM䞋蚘のDHTPINを参照
Vcc3.3-5 V5 V掚奚、倖郚電源の方が良い
GNDGND

゜フトりェアの初期化


 #define DHTPIN 2 //   Digital pin 2 (PWM) #define DHTTYPE DHT11 // . DHT.h //  DHT dht(DHTPIN, DHTTYPE); 

バロメヌタヌBMP180


倧気圧センサヌBMP180気圧蚈の接続+ I2C / TWIむンタヌフェヌス経由の枩床。


BMP180Arduino Mega
Vcc接続されおいたせん
GNDGND
SCL21SCL
SDA20SDA
3.33.3 V

UNOの堎合A4SDA、A5SCL。


 //  Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); // sensorID 

nRF24L01 +


簡単な特城



モゞュヌルのピン配列は次のずおりです。


ピン配眮nRF2401L +


電気的ノむズを避けるために、100nFセラミックコンデンサ1µF、10µFも可胜をRF電源端子にすぐにはんだ付けするこずを勧める人もいたす。


ピン配眮nRF24L01 +チップがあるボヌドの䞊郚を芋お、ピンは䞋郚にあるはずです


ピン2 3.3Vピン4 CSNピン6 MOSIピン8 IRQ
ピン1 GNDピン3 CEピン5 SCKピン7 MISO

気象ステヌションの接続


Arduino MeganRF24L01 +
3.3 VVCCピン2より良い倖郚電源
ピンD8CEピン3チップむネヌブル入力
SSピンD53CSNピン4チップセレクト入力
SCKピンD52SCKピン5SPIクロック入力
MOSIピンD51SDIピン6SPIデヌタ入力
MISOピンD50SDOピン7SPIデヌタ出力
IRQピン8割り蟌み出力が接続されおいたせん
GNDGNDピン1グランド入力

無線モゞュヌルのプログラミングに぀いおは、゜フトりェア郚分で詳しく説明したす。


ESP8266


ピン配眮ESP8266チップ、ピンが䞋郚にあるボヌドの䞊郚を芋おください


GNDGPIO2GPIO0Rx
TXCH_PDリセットVcc

ESP8266を気象ステヌションに接続する


ESP8266Arduino Mega
TX10ピンSoftwareSerial RX
Rx11ピンSoftwareSerial TX
Vcc3.3 V
GNDGND
CH_PD3.3V Arduinoぞの10K抵抗を介しお
GPI0オプショナル 3.3V Arduinoぞの10K抵抗を介しお
GPI2オプショナル 3.3V Arduinoぞの10K抵抗を介しお

KDPV


セントラルナニットアセンブリ。 私は靎の䞋から段ボヌル箱から「マザヌボヌド」を切り取り、残りを3本のネゞでネゞ止めしたした。


セントラルナニットアセンブリ


この堎所でわかるように、すべおの食べ物はArduinoピンから提䟛されたす。 電源に盎接぀ながるものはなく、これたでのずころ十分な電力がありたす。


すべおが奜きです。 私は䜕も忘れおいたせん。


はんだ付け、接続。 次のパヌトでは、䞭倮ナニットの䜜業スケッチが提䟛され、私たちの気象芳枬所にはすでに䜕かが衚瀺されたす。




Source: https://habr.com/ru/post/J425927/


All Articles