
最近、
Explorer-1と
Explorer-2に関するHabrに関する2つの記事を読みました。 同様のプロジェクトを共有したかった。
問題の背景と説明
私は長い間コスモスのハブを読んでおり、CuriosityやRosettaの開発者と同じように感じたいと思うたびに、私は彼らと同じ困難に直面します。 私の予算は控えめなので、Arduinoで何をするかを考えます。
Explorer-1をベースにしたのですが、センサーを吊るすという概念を捨て、リモートコントロールのトピックを深く掘り下げたいと思いました。
それで、衛星は何をすべきか:
1)実際、他の衛星と同様に、データを送受信できる必要があります。
2)センサーが必要です。
3)自律的でなければなりません。
開発
地上局の役割はArduino unoによって実行され、衛星はArduino nanoでした。
衛星を軌道に打ち上げます(バルコニー)。
送信機はNRF24L01 +チップ上にあります。 32バイトのパケットで双方向通信を提供します。

センサーの選択は、DHT22、BMP180、およびBH1750FVIで決まりました。 あなたが理解するように、それは気象衛星になります。
すべてのセンサー-DHT22(湿度および温度センサー)、BMP180(圧力および温度センサー)およびBH1750FVI(光センサー)-私はAvitoを通じて家を購入しました。 私はまだ誰もそれを使用しない理由を理解していません。



自律性は、バッテリー電源「クロナ」(9ボルト)によって達成されます。
こちらのように、ステップアップでソーラーパネルから電力を供給しようとしましたが、パネルには電力がありませんでした。
私はコードの品質を気にしませんでした-私はまだArduinoでそれをします。 codeいので、ここではコードを紹介しません。 このようなことをしたい人は誰でも必要なものをすべて見つけるでしょう。インターネットの利点には、センサーを操作するための多くの例がすでに散らばっています。
しかし、私は特別な栄養を作りました。フィルターと
抵抗の形の電流センサー。センサー(DHT22、BMP180、およびBH1750FVI)の電源はコントローラーフットから取得されるため、何か問題がある場合はオフにできます。また、センサーの動作中に電圧が低下するように、センサーの接地とコントローラーの接地の間に100オームの抵抗器が配置されます。 Arduinは電圧を測定し、オームの法則を使用して、センサーが消費する電流を計算できます。
バッテリーで駆動しているときにフィルターが必要な理由はわかりませんが、かっこいいですね。
運営管理私は衛星をデバッグできるようにコマンドを思いついたので、まるでバルコニー(開いている)ではなく、机の上にあるかのように衛星をデバッグできました。
チーム:
nop_sputnik //応答を転送するだけ
reset_sputnik //サテライトのハードリセット
test_i2c_sputnik // i2cデバイスをテストし、そのアドレスを返します
make_log //無線でパケットを送信するためのエネルギーが残っていない場合にeepromでログを作成します
アナログ部分:
test_5_volt // 5ボルトラインのテスト電圧
test_buttery_volt //バッテリー電圧をテスト
test_current_sensors //センサー電流を確認
beep_sputnik //スピーカーからビープ音を鳴らします
念のため:
switch_off_termometr
switch_on_termometr
switch_off_pressue
switch_on_pressue
switch_off_humidity
switch_on_humidity
収集中に、私は、外界との相互作用のシステムとして、きしみ音を追加することにしました。
これらすべてをまとめると、すべてが初めて機能したときに非常に驚いた。 しかし、判明したように、長い間ではなく、今のところは衛星写真です。

そして、地球上の受信機:

私はすでに予想している、私はバッテリーを接続し、LEDが点灯します。 すべてが機能し、受信機は10秒ごとに衛星をポーリングします。
私は夜にこれを行い、衛星を段ボール箱のバルコニーに送り、受信機をラップトップに接続して寝ました。 このアクションは8月末に行われたため、暖かい天候に驚かないでください。現在は-10です。
午前中、私はすぐに走ってデータと問題をチェックしました。
衛星からの最後の返信湿度= 99.90
temp = 18.20
圧力= 57370
ライト= 0
データ= 1
値= 623
次のグラフは、夜間の温度を摂氏で示しています(BMP180センサーから取得した情報)。 ある時点で(グラフを参照)、BMP180が機能しなくなりました:

下のグラフは圧力(パスカル)です。 そしてはい...、私自身はピークが真ん中にあるかわかりません:

湿度(パーセント)-(湿度100%は真実に似ています-その夜に雨が降りました):

夜だったため、部屋の中でライトが点灯している時間を除いて、光センサーはほとんど常に0を示していました。
失敗の理由の分析
BMP180のみが失敗しました(ただし、DHT22がダウンすると思いました)。 BMP180とBH1750FVIが接続されたI2Cバス、
働いたような。BH1750FVIは0を送信しました(0を格納するバイトを送信するには、センサーがデータラインをゼロにする必要がありますが、エラーまたは接触不良が原因でライン上の0も発生する可能性があります)。
一般に、私は何も確信していませんが、BMP180は湿度のために死んでいると思います。
最初は、衛星が消費する電流を具体的に測定していませんでしたが、1時間43分後にバッテリーが切れたときはそれほど驚いていませんでした。
一般的に-
完全な障害。次回スリープモードを追加する場合は、突然のサージ(その夜の圧力値として)の間、または長時間の場合、センサーが同じデータ(温度センサーなど)を送信するなど、何らかの種類の自動データ検証システムを作成します。 センサーを再起動して、これを処理する予定です。 そして、遠い将来、おそらく試験に合格した後、私はすべてを純粋なCで書き直し、Atmega8またはSTM32でフルボードを作成して、気象観測所の一部として機能するようにします。
PS大量のデータを処理するプログラムを教えてください。そうしないと、Excelはあまり便利ではありません。