สารบัญ:

Raspberry Pi NOAA และ Meteor-M 2 ตัวรับ: 6 ขั้นตอน
Raspberry Pi NOAA และ Meteor-M 2 ตัวรับ: 6 ขั้นตอน

วีดีโอ: Raspberry Pi NOAA และ Meteor-M 2 ตัวรับ: 6 ขั้นตอน

วีดีโอ: Raspberry Pi NOAA และ Meteor-M 2 ตัวรับ: 6 ขั้นตอน
วีดีโอ: High Detail Weather Images from Russian Meteor M2 Satellite Using SDR 2024, กรกฎาคม
Anonim
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver
Raspberry Pi NOAA และ Meteor-M 2 Receiver

คำแนะนำนี้จะช่วยคุณตั้งค่าสถานีรับสัญญาณสำหรับ APT ไม่ใช่แค่จาก NOAA-15, 18 และ 19 แต่ยังรวมถึง Meteor-M 2 ด้วย

เป็นเพียงโครงการเล็ก ๆ ที่ตามมาในโครงการ "Raspberry Pi NOAA Weather Satellite Receiver" ที่ยอดเยี่ยมของ haslettj

ขั้นตอนที่ 1: เริ่มต้นด้วยคำแนะนำของ Haslettj

ก่อนที่คุณจะทำตามคำแนะนำของ haslettj ให้สังเกตการเปลี่ยนแปลงเหล่านี้ก่อน:

ที่อยู่เดิมสำหรับ wxtoimg ไม่ได้ใช้งานอีกต่อไป ตอนนี้คุณสามารถใช้ที่อยู่นี้แทนในคำสั่ง wget:

www.wxtoimgrestored.xyz/beta/wxtoimg-linux-armhf-2.11.2-beta.tar.gz

ฉันยังต้องทำการเปลี่ยนแปลงสคริปต์ "receive_and_process_satellite.sh" เพราะเห็นได้ชัดว่า rtl_fm ไม่ได้ส่งสัญญาณเสียงรูปแบบ "wav" แต่ไม่มีปัญหา ซอกซ์จัดการได้ ดังนั้นฉันจึงเปลี่ยนบรรทัดนี้:

sudo timeout $6 rtl_fm -f ${2}M -s 60k -g 45 -p 55 -E wav -E deemp -F 9 - | sox -t wav - $3.wav อัตรา 11025

สำหรับสิ่งนี้ (แต่อย่าลืมเปลี่ยนการตั้งค่าเกน "-g 0" และการตั้งค่าข้อผิดพลาดความถี่ PPM "-p 68" ด้วยสิ่งที่ใช้ได้กับฮาร์ดแวร์ของคุณ):

sudo timeout $6 rtl_fm -f ${2}M -s 48k -g 0 -p 68 -E dc -A fast -F 9 - | sox -t raw -r 48000 -es -b16 -c1 -V1 - $3.wav อัตรา 11025

ในสคริปต์เดียวกัน คุณอาจต้องการเปลี่ยนอาร์กิวเมนต์ wxtoimg "-e ZA" เป็น "-e MSA" เพื่อให้ได้ภาพสีที่สวยงาม ดังนี้:

/usr/local/bin/wxtoimg -m ${3}-map.png -e MSA $3.wav $3.png

ตอนนี้ไปทำ Instructable!

www.instructables.com/id/Raspberry-Pi-NOAA…

ขั้นตอนที่ 2: ติดตั้ง GnuRadio และบล็อกสำหรับ RTL-SDR

เครื่องรับ Meteor-M 2 ใช้ GnuRadio ในการติดตั้งสิ่งที่คุณต้องการ ให้ทำดังนี้

sudo apt ติดตั้ง gnuradio

sudo apt ติดตั้ง gr-osmosdr

ขั้นตอนที่ 3: ดาวน์โหลดสคริปต์ GnuRadio

หากคุณไม่คุ้นเคย GnuRadio มีเครื่องมือกราฟิกที่เรียกว่า GnuRadio-Companion ซึ่งสามารถใช้สร้างโฟลว์กราฟและคอมไพล์ลงในโค้ด Python ที่ดำเนินการได้

ฉันได้แยกตัวรับ "meteor-m2-lrpt" ของ "otti-soft" โดยแก้ไขพารามิเตอร์บางตัวเพื่อปรับปรุงประสิทธิภาพและใช้ RTL-SDR แทน Airspy ดาวน์โหลดได้จากที่นี่:

github.com/NateDN10/meteor-m2-lrpt

ไฟล์.grc สามารถเปิดได้ด้วย GnuRadio-Companion แต่ไม่ใช่สคริปต์ที่เรียกใช้งานได้ - มีไว้เพื่อใช้อ้างอิงและใช้งานได้จริง เพื่อให้มันใช้งานได้ ให้คัดลอกไฟล์ "rtlsdr_m2_lrpt_rx.py" ลงในไดเร็กทอรี /home/pi/weather/predict ของคุณและตรวจสอบให้แน่ใจว่าไฟล์ปฏิบัติการได้:

chmod +x rtlsdr_m2_lrpt_rx.py

คุณจะต้องเปลี่ยนการชดเชยความถี่ด้วย:

self.rtlsdr_source_0.set_freq_corr(69, 0)

และรับสิ่งใดก็ตามที่เหมาะกับการตั้งค่าของคุณ:

self.rtlsdr_source_0.set_gain(4, 0)

ขั้นตอนที่ 4: ดาวน์โหลดตัวถอดรหัส

ดาวน์โหลดตัวถอดรหัส Meteor LRPT ของ "artlav" จากที่นี่ - คุณต้องการเวอร์ชัน Linux ARM:

orbides.org/page.php?id=1023

คุณสามารถทำได้บน Raspberry Pi โดยใช้คำสั่งเหล่านี้:

cd /home/pi/weather

wget https://orbides.org/etc/medet/medet_190825_arm.tar.gz mkdir medet; cd medet tar xvzf../medet_190825_arm.tar.gz

ตอนนี้คุณควรมีไดเร็กทอรีชื่อ "medet" ภายในไดเร็กทอรี "weather" และภายในไดเร็กทอรีควรเป็นไฟล์ปฏิบัติการ "medet_arm"

ขั้นตอนที่ 5: ดาวน์โหลดเครื่องมืออื่นๆ

ในการแก้ไขอัตราส่วนภาพของรูปภาพ เราจะใช้เครื่องมือ Python "meteor_rectify" ของ dbdexter จาก Github

หากคุณยังไม่ได้ติดตั้ง git และ ImageMagick:

sudo apt ติดตั้ง git

sudo apt ติดตั้ง imagemagick

จากนั้นโคลนที่เก็บ:

cd /home/pi/weather

โคลน git

คุณอาจต้องการไลบรารี Python "pillow" และ "numpy":

pip3 ติดตั้ง numpy

pip3 ติดตั้งหมอน

ขั้นตอนที่ 6: อัปเดตสคริปต์

ขั้นแรก เพิ่มบรรทัดต่อไปนี้ต่อท้าย "schedule_all.sh":

/home/pi/weather/predict/schedule_satellite.sh "METEOR-M 2" 137.1000

จากนั้นใน "schedule_satellite.sh" ให้เปลี่ยนบล็อกนี้:

ถ้า [$MAXELEV -gt 19]; แล้ว

echo ${1//" "}${OUTDATE} $MAXELEV echo "/home/pi/weather/predict/receive_and_process_satellite.sh \"${1}\" $2 /home/pi/weather/${1// " "}${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER" | "}${หมดอายุ} /home/pi/weather/predict/weather.tle $var1 $TIMER ที่ `date --date="TZ=\"UTC\" $START_TIME" +"%H:%M %D"`

สำหรับสิ่งนี้:

ถ้า [$MAXELEV -gt 19]; แล้ว

echo ${1//" "}${OUTDATE} $MAXELEV if ["$1" == "METEOR-M 2"] แล้ว echo "/home/pi/weather/predict/receive_and_process_meteor.sh \"${1} " $2 /home/pi/weather/${1//" "}${หมดอายุ} /home/pi/weather/predict/weather.tle $var1 $TIMER" | ที่ `date --date="TZ=\"UTC\" $START_TIME" +"%H:%M %D"` อื่น echo "/home/pi/weather/predict/receive_and_process_satellite.sh \"${1} " $2 /home/pi/weather/${1//" "}${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER" | ที่ `date --date="TZ=\"UTC\" $START_TIME" +"%H:%M %D"` fi fi

สุดท้าย สร้างสคริปต์ใหม่ชื่อ "receive_and_process_meteor.sh" โดยมีเนื้อหาดังต่อไปนี้:

#! /bin/bash

# $1 = ชื่อดาวเทียม # $2 = ความถี่ # $3 = ชื่อไฟล์พื้นฐาน # $4 = ไฟล์ TLE # $5 = เวลาเริ่มต้น EPOC # $6 = เวลาจับภาพ cd /home/pi/weather timeout $6 ทำนาย/rtlsdr_m2_lrpt_rx.py $1 $2 $3 # ฤดูหนาว #medet/medet_arm ${3}.s $3 -r 68 -g 65 -b 64 -na -S # ฤดูร้อน medet/medet_arm ${3}.s $3 -r 66 -g 65 -b 64 -na -S rm ${3}.s ถ้า [-f "${3}_0.bmp"]; จากนั้น #rm ${3}.s dte=`date +%H` # Winter #convert ${3}_1.bmp ${3}_1.bmp ${3}_0.bmp -combine -set colorspace sRGB ${ 3}.bmp #convert ${3}_2.bmp ${3}_2.bmp ${3}_2.bmp -combine -set colorspace sRGB -negate ${3}_ir.bmp # ฤดูร้อนแปลง ${3}_2.bmp ${3}_1.bmp ${3}_0.bmp -combine -set colorspace sRGB ${3}.bmp meteor_rectify/rectify.py ${3}.bmp # ฤดูหนาวเท่านั้น #meteor_rectify/rectify.py ${ 3}_ir.bmp # หมุนภาพตอนเย็น 180 องศาถ้า [$dte -lt 13]; จากนั้นแปลง ${3}-rectified.png -normalize -quality 90 $3.jpg # Winter only #convert ${3}_ir-rectified.png -normalize -quality 90 ${3}_ir.jpg else convert ${3} -rectified.png -rotate 180 -normalize -quality 90 $3.jpg # Winter only #convert ${3}_ir-rectified.png -rotate 180 -normalize -quality 90 ${3}_ir.jpg fi rm $3.bmp rm ${3}_0.bmp rm ${3}_1.bmp rm ${3}_2.bmp rm ${3}-rectified.png # ฤดูหนาวเท่านั้น #rm ${3}_ir.bmp #rm ${3} _ir-rectified.png fi

ทำให้ปฏิบัติการได้:

chmod +x รับ_and_process_meteor.sh

และนั่นแหล่ะ! ครั้งต่อไปที่งาน cron ที่คุณมีอยู่จะทำงานเพื่อกำหนดเวลาดาวเทียม Meteor-M 2 จะถูกกำหนดเวลาไว้ด้วย ตัวถอดรหัสจะส่งออกไฟล์.bmp โดยใช้ APID 66 สำหรับสีแดง 65 สำหรับสีเขียว และ 64 สำหรับสีน้ำเงิน

เอาต์พุตมาตรฐานจากสคริปต์ เมื่อเรียกใช้โดยตัวจัดกำหนดการ จะถูกผนวกเข้ากับ /var/mail/pi หากต้องการอ่านให้ใช้คำสั่งนี้:

น้อยกว่า /var/mail/pi

และหากต้องการลบข้อความเก่า ให้ทำดังนี้

/var/mail/pi

แนะนำ: