Мазмуну:

Raspberry Pi Solar Weather Station: 7 кадам (Сүрөттөр менен)
Raspberry Pi Solar Weather Station: 7 кадам (Сүрөттөр менен)

Video: Raspberry Pi Solar Weather Station: 7 кадам (Сүрөттөр менен)

Video: Raspberry Pi Solar Weather Station: 7 кадам (Сүрөттөр менен)
Video: Как штукатурить откосы на окнах СВОИМИ РУКАМИ 2024, Ноябрь
Anonim
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station
Raspberry Pi Solar Weather Station

Мурунку эки долбоорумдун, Compact Camera жана Portable Games Console аяктагандан кийин, мен жаңы чакырык тапкым келди. Табигый прогресс тышкы алыскы система болчу …

Мен Raspberry Pi метеостанциясын кургум келди, ал өзүн өзү кармап турду жана жыйынтыктарын мага зымсыз байланыш аркылуу, каалаган жерден жөнөтө алды! Бул долбоордун чындап эле кыйынчылыктары болгон, бирок бактыга жараша Raspberry Pi менен иштөө - PiJuice'ди күн энергиясы менен кошо энергия менен камсыздоо аркылуу жеңилдетилген негизги кыйынчылыктардын бири (биздин революциялык PiAnywhere технологиябыз менен толукталган - эң жакшы жол) Пиңизди тордон алыңыз!).

Менин алгачкы оюм фантастикалык AirPi модулун окуу үчүн колдонуу болчу. Мунун эки негизги кемчилиги болгон; натыйжаларды жүктөө үчүн түз интернет байланышы талап кылынат жана ал Pi боюнча GPIO менен түздөн -түз туташуусу керек, демек ал Raspberry Pi чыгарбастан абага түшө албайт (эгер биз бул аба ырайы станциясын кааласак идеалдуу эмес) каалаган убакытка созулат).

Чечим … өзүмдүн сезүү модулумду түз! Илхам үчүн AirPiнин көп бөлүгүн колдонуп, менде болгон бир нече сенсорду колдонуп, абдан жөнөкөй прототипти чогулта алдым; температура, нымдуулук, жарыктын деңгээли жана жалпы газдар. Жана мунун эң сонун жери - каалаган убакта көбүрөөк сенсорлорду кошуу чынында оңой.

Мен Raspberry Pi a+ колдонууну чечтим, анткени анын кубаттуулугу аз. Мага жыйынтыктарды жөнөтүү үчүн мен EFCom Pro GPRS/GSM модулун колдондум, ал жыйынтыгы менен уюлдук телефонго түз текст жөнөтө алат! Аябай тыкан туурабы?

Башка сонун күн же портативдүү долбоорлор үчүн сизде болгон идеяларга кубанычтамын. Мага комментарийлерде билдириңиз, мен үйрөткүч түзүү үчүн болгон күчүмдү жумшайм!

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр

1 x PiJuice + Күн панели (биздин PiAnywhere революциялык технологиясы менен толукталган - Пиңизди тармактан чыгаруунун эң жакшы жолу!)

1 x Raspberry Pi a+

1 x EFCom Pro GPRS/GSM модулу

1 x сим картасы

1 х нан тактасы

Protoboard

1 x MCP3008 ADC

1 x LDR

1 x LM35 (Температура сенсору)

1 х DHT22 (нымдуулук сенсору)

1 x TGS2600 Жалпы аба сапатынын сенсору

1 x 2.2 KΩ резистор

1 x 22 KΩ резистор

1 x 10 KΩ резистор

10 х Аял - Аял Jumper зымдары

Бирдиктүү зымдардын ассортименти

1 х сырткы туташуу кутусу

1 x Double Outdoor Junction Box

1 х суу өткөрбөйт кабель туташтыргычы

2 x 20mm Жарым сокур кабелдик громметтер

2 -кадам: Сезгич райондук

Sensing Circuit
Sensing Circuit
Sensing Circuit
Sensing Circuit
Sensing Circuit
Sensing Circuit

Бул долбоордо бир нече башка элементтер бар, андыктан баарын кадам менен жасоо эң жакшы. Биринчиден, мен сезүү схемасын кантип чогултуу керектигин карап чыгам.

Муну адегенде нан тактасына куруу жакшы идея, эгер сиз кандайдыр бир ката кетирсеңиз, мен схеманы жана кадамдык сүрөттөрдү коштум.

  1. Зымдуу боло турган биринчи компонент бул MCP3008 аналогу болуп саналат. Бул 8 аналогдук кирүүнү талап кылат жана Raspberry Pi менен SPI аркылуу байланышат. Чипти өйдө каратып, жарым тегерек сизден эң алысыраак жерде, оң жактагы казыктар Raspberry Pi менен туташат. Аларды көрсөтүлгөндөй туташтырыңыз. Эгерде сиз чиптин кантип иштээри жөнүндө бир аз көбүрөөк билгиңиз келсе, бул жерде MCP3008 жана SPI протоколу боюнча мыкты колдонмо бар.
  2. Сол жактагы казыктар-8 аналогдук кириш, 0-7ден жогору карай. Биз биринчи 3тү гана колдонобуз (CH0, CH1, CH2), LDR үчүн, жалпы газ сенсору (TGS2600) жана температура сенсору (LM35). Адегенде LDRди схемада көрсөтүлгөндөй туташтырыңыз. 2.2KΩ каршылык жана CH0 аркылуу жерге бир тарап жана 3.3V үчүн.
  3. Андан кийин, "жалпы газ сенсорун" туташтырыңыз. Бул газ сенсору суутек жана көмүр кычкылы сыяктуу абаны булгоочу заттарды аныктоо үчүн колдонулат. Мен азырынча конкреттүү концентрацияларды кантип алууну ойлоно элекмин, андыктан азырынча бул сенсордун натыйжасы негизги пайыздык деңгээл болуп саналат, мында 100% толук каныккан. Сенсор өйдө карап (астындагы казыктар), кичинекей чыгуунун оң жагындагы пин 1 -пин болуп саналат, андан кийин сандар пиндин айланасында сааттын жебеси боюнча көбөйөт. Ошентип, 1 жана 2 -казыктар 5Вга туташат, 3 -пин CH1 менен жерге 22KΩ резистор аркылуу туташат жана pin4 түз жерге туташат.
  4. Байланыш үчүн акыркы аналогдук сенсор LM35 температура сенсору. Бул 3 төөнөгүч бар. Сенсорду алыңыз, ошондо жалпак жагы сизге эң жакын болот, сол жактын эң көбү түз 5Вга туташат (диаграммада белгиленген эмес, менин жамандыгым!), Борбордук пин CH2ге, эң оң казык жерге түз туташат. Оңой!
  5. Кошулуу үчүн акыркы компонент DHT22 нымдуулук сенсору. Бул санарип сенсор, андыктан Raspberry Pi менен түз байланышса болот. Сенсорду сетка сизге каратып, астындагы төрт казык менен алыңыз. Пиндер сол жактагы 1ден буйрук кылынат. 1ден 3.3Vка чейин туташтырыңыз. Pin 2 GPIO4 жана 3.3Vга 10KΩ резистор аркылуу барат. 3 -пинти ажыратыңыз жана 4 -пин түз жерге түшүңүз.

Дал ушул! Сыноо схемасы курулган. Мен убактым болгондо дагы компоненттерди кошом деп үмүттөнөм. Мен чындыгында басым сенсорун, шамалдын ылдамдыгын сенсорун кошкум келет жана газдын концентрациясы боюнча дагы акылдуу маалымат алгым келет.

3 -кадам: GSM модулу

GSM модулу
GSM модулу
GSM модулу
GSM модулу

Эми сезүү микросхемалары курулгандыктан, натыйжаларды алуунун жолу болушу керек. Бул жерде GSM модулу пайда болот. Биз аны күнүнө бир жолу уюлдук тармак аркылуу SMS аркылуу жөнөтүү үчүн колдонобуз.

GSM модулу Raspberry Pi менен UART аркылуу сериал аркылуу байланышат. Бул жерде Raspberry Pi менен сериялык байланыш боюнча кээ бир сонун маалыматтар бар. Пинин сериялык портун көзөмөлгө алуу үчүн, адегенде конфигурация кылышыбыз керек.

Raspberry Pi'ди стандарттык Raspbian сүрөтү менен жүктөңүз. Эми "/boot/cmdline.txt" файлын төмөнкүдөн өзгөртүңүз:

"dwc_otg.lpm_enable = 0 консоль = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200 консоль = tty1 root =/dev/mmcblk0p2 rootfstype = ext4 лифт = түпкү күтүү мөөнөтү"

чейин:

"dwc_otg.lpm_enable = 0 консоль = tty1 тамыры =/dev/mmcblk0p2 rootfstype = ext4 лифт = түпкү күтүү мөөнөтү"

тексттин асты сызылган бөлүгүн алып салуу менен.

Экинчиден, "/etc/inittab" файлын кийинки бөлүмдө экинчи сапты комментарийлоо менен түзөтүшүңүз керек:

#Raspberry Pi сериясындагы гетти тигүүT0: 23: respawn:/sbin/getty -L ttyAMA0 115200 vt100"

Ошентип, ал мындай дейт:

#Raspberry Pi сериясындагы#T0: 23 боюнча гетти тигүү: respawn:/sbin/getty -L ttyAMA0 115200 vt100

жана Pi'ни кайра жүктөңүз. Эми сериялык порт каалагандай баарлашууга эркин болушу керек. GSM модулун туташтырууга убакыт келди. Мунун кантип жасалганын көрүү үчүн мурунку кадамдагы схеманы жана жогорудагы сүрөттөрдү карап көрүңүз. Негизинен, TX RX менен туташат жана RX TX менен туташат. Raspberry Pi TX жана RXте GPIO 14 жана 15 тиешелүү.

Эми, балким, бул модулдун иштеп жатканын текшергиңиз келет, андыктан текст жөнөтүүгө аракет кылалы! Бул үчүн сиз Minicomду жүктөп алышыңыз керек. Бул сериялык портко жазууга мүмкүнчүлүк берген программа. Колдонуу:

"sudo apt-get minicom орнотуу"

Ал орнотулгандан кийин minicom төмөнкү буйрук менен ачылышы мүмкүн:

"minicom -b 9600 -o -D /dev /ttyAMA0"

9600-бул bod-rate жана /dev /ttyAMA0-Пи сериялык порттун аты. Бул терминалдык эмуляторду ачат, анда сиз жазганыңыздын баары сериялык портко чыгат, б.а. GSM модулуна жөнөтүлөт.

Толтурулган сим -картаны GSM модулуна салып, кубат баскычын басыңыз. Андан кийин көгүлтүр от күйүп турушу керек. GSM модулу AT буйруктар топтомун колдонот, эгер сизди чындап кызыктырса, бул жерде документтер бар. Эми биз Raspberry Pi модулун төмөнкү буйрук менен тапканын текшеребиз:

"AT"

модул анда жооп бериши керек:

"Макул"

Абдан жакшы! Андан кийин биз экилик эмес, SMS катары SMS жөнөтүү үчүн модулду конфигурациялашыбыз керек:

"AT+CMGF = 1"

кайра жооп "макул" болушу керек. Эми биз SMS жөнөтүү буйругун жазабыз:

"AT+CMGS =" 44 ************* "", жылдыздарды номериңиз менен алмаштырыңыз.

Модем ">" менен жооп берет, андан кийин сизге билдирүү жаза аласыз. Билдирүүнү жөнөтүү үчүн басыңыз. Болду, жана кандайдыр бир ийгилик менен сиз Raspberry Piден түз эле текст алдыңыз.

Эми GSM модулу иштеп жатканын билсек, сиз minicomду жаба аласыз; бизге долбоордун калган бөлүгүндө керек эмес.

4 -кадам: Программалык камсыздоону түшүрүү жана Кургак иштетүү

Программаны жана Кургак Ишти жүктөп алыңыз
Программаны жана Кургак Ишти жүктөп алыңыз
Программаны жана Кургак Ишти жүктөп алыңыз
Программаны жана Кургак Ишти жүктөп алыңыз

Бул этапта бардыгы зым менен коштолуп, кургак чуркоо үчүн сыноого даяр болушу керек. Мен абдан жөнөкөй питон программасын жаздым, ал ар бир сенсордон окууларды алып, анан жыйынтыктарын уюлдук телефонго жөнөтөт. Сиз программаны толугу менен PiJuice Github баракчасынан жүктөй аласыз. Эми PiJuice модулу менен тестирлөө үчүн жакшы убакыт болушу мүмкүн. Бул жөн эле Raspberry Piнин GPIO -на туташат, Piге туташкан бардык зымдар PiJuice'деги тиешелүү пин чыгуучу жерлерге туташтырылат. Пи сыяктуу оңой. Кодду жүктөө үчүн төмөнкү буйрукту колдонуңуз:

git clone

Бул күнүнө бир жолу маалыматтарды жөнөтүү үчүн орнотулган. Сыноо максатында бул анча жакшы эмес, андыктан сиз программаны түзөткүңүз келиши мүмкүн. Бул оңой эле жасалат; жөн гана файлды ачыңыз; "sudo nano weatherstation.py". Чокунун жанында "белгиленген кечигүү" бөлүмү бар. "Кечигүү = 86400" сабын комментарийлеп, "кечигүү = 5" деп комментарий бериңиз. Эми жыйынтыктар 5 секундда бир жолу жөнөтүлөт. Сиз ошондой эле программаны өзүңүздүн мобилдик номериңизди өзгөрткүңүз келет. "+44 **********" деп жазылган жерди таап, жылдыздарды өз номериңиз менен алмаштырыңыз.

Программаны иштетүүдөн мурун, жөн гана DHT22 нымдуулук сенсорун окуу үчүн китепкананы жүктөп алышыңыз керек болот:

git clone

Жана китепкана орнотулушу керек:

"CD Adafruit_Python_DHT"

"sudo apt-get update"

"sudo apt-get install build-essential python-dev"

"sudo python setup.py орнотуу"

Жакшы, эми сиз программаны сынап көрсөңүз болот.

"sudo python weatherstation.py"

Программа иштеп жаткандыктан, жыйынтыктар мобилдик телефонго жөнөтүлүп турушу керек, бирок 5 секунд сайын терминалга басылып чыгышы керек.

5 -кадам: Районду куруу

Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу

Эми бардыгы иш жүзүндө иштеп жаткандыктан, чыныгы нерсени курууга убакыт келди. Сүрөттөр бүтүндөй бирдиктин бири -бирине кантип туура келери жөнүндө жалпы түшүнүктү көрсөтөт. Эки өзүнчө турак жай бар; бири сезгич схемасы үчүн (ичинде аба айланышы үчүн тешиктери болот), экинчиси Raspberry Pi, GPRS бирдиги жана PiJuice үчүн (толугу менен суу өткөрбөйт), күн панели суу өткөргүс түйүнү менен эсептөө бирдигине зым тартылат. Эки бирдикти оңой ажыратууга болот, ошондо сенсор корпусун же эсептөө корпусун бүтүндөй бирдикти түшүрбөстөн алып салууга болот. Эгерде сиз дагы сенсорлорду кошкуңуз келсе же башка долбоор үчүн Raspberry Pi же PiJuice керек болсо, бул сонун.

Протобордду сындырышыңыз керек, эки кичине кутучанын кичинесине туура келет. Бул жерде сезүү схемасы жайгашкан. Сезгич схемасы азыр нан тактасынан протоборго которулду. Эми сизге бир аз ширетүү керек болот. Сиз ширетүүчү үтүктү коопсуз колдонуу менен ыңгайлуу экениңизди текшериңиз. Эгер ишенбесеңиз, анда компетенттүү ширетүүчүдөн жардам сураңыз.

Бул жердеги лабораторияда Патрикке чоң рахмат, ал мени ушул схеманын чыныгы таштандысын чыгаруудан сактап калды. Ал муну бир нече мүнөттө чогуу урууга жетишти! Эгерде мен сыяктуу эле, сиз эң мыкты курулуш схемасы болбосоңуз жана сизде Патрикке окшош гений жок болсо, анда сиз электрдик кутуңузга ылайыктуу болсо, сиз дайыма схеманы нан тактасында калтырсаңыз болот..

6 -кадам: Турак жайларды даярдоо

Турак жайларды даярдоо
Турак жайларды даярдоо
Турак жайларды даярдоо
Турак жайларды даярдоо
Турак жайларды даярдоо
Турак жайларды даярдоо

Бул бөлүк чынында эле кызыктуу болот. Ар бир кутучадагы шакектерди байкагандырсыз. Булар нокаут үчүн иштелип чыккан, ошондуктан кутулар электриктер үчүн түйүн болуп калышы мүмкүн. Биз аларды күн панелине туташтыруу үчүн, сезгич бирдиги менен эсептөө бирдигинин ортосунда туташуу үчүн, ошондой эле аба айлануусун камсыздоо үчүн сезгич бирдиги үчүн желдетүү катары колдонобуз.

Адегенде сүрөттөрдөн көрүнүп тургандай, экөөнүн ортосундагы байланыш үчүн ар бир кутудан бир тешикти тыккыла. Тешиктерди кагуу тыкан кылуу кыйын болушу мүмкүн, бирок одоно чети мааниге ээ эмес. Мен эң жакшы ыкма - бурама драйверди колдонуу менен ар бир тешиктин тегерегиндеги оюп кеткен шакекчени тешип, андан кийин боёктун калай капкагындай жулуп салууну таптым. Суу өткөргүч кабель туташтыргычы андан кийин эки кутуну туташтыруу үчүн колдонулат.

Андан кийин күн панелинин зымы үчүн эсептөө корпусуна дагы бир тешик жасашыңыз керек болот. Бул тешик сиздин жарым сокур кабелдик грометтериңиздин бирине туташтырылган. Кабелди тешип коюудан мурун, кабель аркылуу өтүүчү тешикти тешиңиз. Бул суу өткөрбөө үчүн мүмкүн болушунча кичине болушу керек, андан кийин микро USB учун тешиктен түртүп салыңыз (бул PiJuice менен туташкан учу).

Акыры сенсордук бөлүктө абанын киришине жана чыгышына кошумча тешик жасалышы керек. Мен эки кутунун ортосундагы кесилишке карама -каршы барууну чечтим. Экинчи тешикти кошуу керек болушу мүмкүн. Мен метеостанцияны колдонуп, бир аздан кийин билебиз деп ойлойм.

7 -кадам: Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү

Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү
Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү
Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү
Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү
Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү
Аба ырайы станциясынын зымдарын туташтыруу жана бүтүрүү

Туура, дээрлик ошол жерде. Акыркы этап - баарын зым менен жабуу.

Эсептөө бирдиги менен башталат. Бул кутуда бизде Raspberry Pi, PiJuice Raspberry Pi GPIOго туташат жана GSM модулу PiJuiceдеги GPIO үзүлүшүнө ургаачыдан аялга секирүүчү зымдар аркылуу туташат. Жакшы жана тыкан! Бул этапта мен, балким, күн панели үчүн USB кабелинин кирүү чекитине кандайдыр бир герметик коюуну сунуштаар элем. Кандайдыр бир чайыр же супер клей иштеши мүмкүн.

Андан кийин сезүү бирдигине өтүңүз. Сүрөттө жогорудан ылдый карай зымдар; боз, ак, кызгылт көк жана көк SPI маалымат линиялары, кара жер, апельсин 3.3V, кызыл 5V жана жашыл GPIO 4. Буларга туташуу үчүн секиргич зымдарды таап, анан аларды суу өткөрбөөчү кабель аркылуу азыктандырышыңыз керек. туташтыргычы сүрөттөрдө көрүнүп тургандай. Андан кийин ар бир зымды тиешелүү GPIOго туташтырып, туташтыргычты катуулатууга болот. Бул этапта дизайнды кантип жакшыртууга болорун көрүү оңой; LDR көп жарыкка дуушар болбойт (салыштырмалуу баалуулуктарды билүү дагы деле пайдалуу болушу мүмкүн жана кошумча тешикти кагуу жардам бериши мүмкүн), эсептөө бирдиги менен бирдей өлчөмдү колдонуу жакшы болмок деп ойлойм сенсордук блок үчүн кутучаны орнотсоңуз, анда электр тактасын кутуга орнотуу оңой болмок жана ар кандай аранжировкалар менен ойноого орун болмок.

Мен муну азыр бакчага койдум, сүрөттөрдөн көрүп тургандай. Жакынкы күндөрдө мен дагы кээ бир жыйынтыктарды жаза алам деп үмүттөнөм! Жана жогоруда айтканымдай, эгер сизде кандайдыр бир сонун долбоорлор боюнча идеялар болсо, мага кабарлаңыз!

Сунушталууда: