Съдържание:

Интернет метеостанция Raspberry Pi: 5 стъпки (със снимки)
Интернет метеостанция Raspberry Pi: 5 стъпки (със снимки)

Видео: Интернет метеостанция Raspberry Pi: 5 стъпки (със снимки)

Видео: Интернет метеостанция Raspberry Pi: 5 стъпки (със снимки)
Видео: Raspberry Pi 4B в кутията Argon ONE M.2 с 128 GB SSD, сглобяване на сървър за Home Assistant 2024, Юли
Anonim
Интернет метеорологична станция Raspberry Pi
Интернет метеорологична станция Raspberry Pi
Интернет метеорологична станция Raspberry Pi
Интернет метеорологична станция Raspberry Pi

*** Актуализация ***

Този Instructable е остарял. Метеорологичните услуги за метеорологичните данни, използвани в тази инструкция, вече не работят. ОБАЧЕ, има алтернативен проект, който прави основно едно и също нещо (само по -добре - този Instructable винаги е бил само хак). Ето линка, който искате да следвате:

https://piweatherrock.technicalissues.us/

Благодаря ви много, отидете на Джийн Ливърман в PiWeatherRock, за да вземете мантията на този проект.

Тази инструкция ще ви покаже как да изградите наистина страхотна интернет-базирана метеорологична станция Raspberry Pi. Всъщност да се нарече това изграждане „метеорологична станция“е малко по -слабо изявление. Тази конструкция може лесно да бъде разширена, за да осигури много повече от просто времето. Това обаче е добро начало и изглежда наистина готино на бюрото ми.

Нашето семейство (ОК, най -вече аз) се радваше да има семейния iPad на кухненския плот, когато не се използва, показвайки тихо текущите външни метеорологични условия. Въпреки това е болка за зареждане и разтоварване на iPad в и извън корпуса на аркадната люлка. Плюс това, точно когато отида да погледна времето, откривам, че някой е взел iPad / дисплея за времето. Това, което е необходимо, е постоянен дисплей с плот, който децата няма да плъзгат като iPad.

Стъпка 1: Първо поколение - метеорологичната станция Lunchbox Pi

Gen 1 - метеорологичната станция Lunchbox Pi
Gen 1 - метеорологичната станция Lunchbox Pi
Gen 1 - метеорологичната станция Lunchbox Pi
Gen 1 - метеорологичната станция Lunchbox Pi

Първата ми мисъл беше да използвам малък композитен видео дисплей. Взех този на снимката в Ebay за 22 долара - просто потърсете на „4.3 -инчов TFT LCD монитор за автомобил за задно виждане на автомобил“. Дисплеят има докладвана резолюция от 656 на 416 пиксела, което предизвикателно прави показването на много полезна информация предизвикателство! Дисплеят изисква 12Vdc като захранващо напрежение. Raspberry Pi, разбира се, се нуждае от 5Vdc като захранващо напрежение. За да разреша това, купих евтино USB зарядно за кола от Amazon. За около $ 6 долара намерих чейнджър за кола 5Vdc by 2 Amp. Следователно кутията за обяд има външно 12Vdc захранване за стена. 12Vdc захранва дисплея директно. 12Vdc също отива към USB зарядното устройство за кола, което намалява напрежението до регулиран 5Vdc. Като последен хак, запоявах чифт проводници директно между зарядното за кола и Raspberry Pi - не е най -добрата ми идея.

Въпреки че всичко работи, не бях много доволен от качеството на видеото на композитния дисплей. Малкият шрифт на дисплея беше по -размит, отколкото бих искал. Плюс това, докато кутията за обяд първоначално изглеждаше сладка, по -късно изглеждаше доста сирене.

Стъпка 2: Поколение 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване

Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване
Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване
Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване
Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване
Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване
Gen 2 - HDMI монитор + Аркаден калъф от плексиглас с лазерно изрязване

Обратно в eBay намерих добре изглеждащ HDMI монитор с отворена рамка за $ 54 с резолюция 800x600. По дефиниция, с отворена рамка всичко се нуждае от рамка, в която да се монтира. Тъй като сладостта на кутията за обяд отдавна свърши, беше време за малко лазерно изрязан акрил. Моето местно хакерско пространство i3Detroit има наистина хубава 150 ватова резачка, която може да направи кайма от 4,5 мм акрил.

Свободно базирах моята аркадна кутия на аркадната кутия на iPad. Ако някога направя дизайн от Gen 3, той предизвикателно ще включва подвижна / плъзгаща се тава за Pi. Оказа се, че това е голяма болка в шията, опитваща се да включи и изключи нещата от Pi, тъй като няма много място между Pi и страничните стени.

HDMI мониторът също изисква 12Vdc захранване. Така че, използвах същия трик да използвам отново USB зарядно за кола. Този път обаче накъсах стар USB кабел, така че споените проводници на Pi не бяха необходими.

Ако някой се интересува от аркадния случай, пуснете коментар по -долу и ще кача DXF файловете. Или файловете са на моя уебсайт на адрес ph-elec.com.

Стъпка 3: Настройка на Pi

Настройка на Pi
Настройка на Pi

Да настроите нов Raspberry Pi с необходимия софтуер не е толкова трудно. Целият софтуер е написан на Python само с един добавен Python модул. Допълнителният модул на Python се нарича "pywapi". Ето линк, от който можете да изтеглите модула. Този модул улеснява получаването на време в реално време от Yahoo, Weather.com или NOAA.

Първо, ето списък за настройка на сурова Raspberry Pi:

  1. Изтеглете най -новия Raspbian (Debian Wheezy). Разархивирайте, за да получите.img файл.
  2. Запишете на SD карта с "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img на =/dev/sdb"
  3. Командата dd отнема около пет минути. Когато приключи, стартирайте "sync", за да промиете тръбите.
  4. Инсталирайте SD карта в Pi и рестартирайте. Уверете се, че има Ethernet връзка към Pi.
  5. Използвайки страницата „Прикачени устройства“на рутера, намерете IP адреса на новия Pi.
  6. Влезте в Pi, като използвате „ssh [email protected]. ???“където ??? е IP номер отгоре. Паролата ще бъде "малинова".
  7. На Pi използвайте командата "raspi-config", за да настроите настройките по подразбиране.

    1. Включете автоматичното зареждане в GUI.
    2. Задайте името на хоста на нещо като „MyPi“.
  8. Инсталирайте VNC на Pi с „sudo apt-get install tightvncserver“.

    Стартирайте „tightvncserver“, който задава паролата

  9. Върнете се в голямата кутия на Linux, използвайте „Отдалечен работен плот“, за да видите работния плот на Pi GUI.

    1. Задайте протокол на „VNC“и IP номер на „192.168.1.???:1“. Обърнете внимание на „: 1“в края на IP номера.
    2. Натиснете бутона за свързване и въведете паролата за VNC.
    3. Бинго, отдалечен GUI Pi десктоп!

      Това спестява изтеглянето на монитор, клавиатура и мишка, за да се свържете с новия Pi

    4. На работния плот стартирайте иконата за настройка на WiFi. Настройте новия Pi / USB WiFi за свързване към мрежата.
    5. Затворете VNC връзката - сега приключихме с отдалечени настолни компютри.
  10. Върнете се в прозореца ssh, рестартирайте Pi с „sudo reboot“. Изключете Ethernet кабела, тъй като WiFi вече е настроен.
  11. Назад на домашния рутер, намерете новия IP номер, който Pi използва с WiFi.
  12. Използвайки ssh, влезте отново с новия IP номер. Този път връзката ще бъде през WiFi.
  13. Използвайки уредбата за файлове в Linux, свържете се с Pi, като използвате командата "свързване към сървъра".

    Адресът на сървъра е "sftp: //192.168.1. ???/home/pi"

  14. Основната настройка е завършена.

След това pywapi трябва да бъде изтеглен и инсталиран. Отново, това не е твърде трудно със следните стъпки:

  1. Изтеглете най -новото от тук. Извлечете архива в нова директория.
  2. Използвайки File Manger, копирайте директорията в началната директория на Pi.
  3. Използвайки ssh, направете следното на Pi:

    1. cd pywapi-0.3.8
    2. sudo python setup.py изграждане
    3. sudo python setup.py install
  4. Свършен.

Актуализация, забравих да спомена две други неща:

  1. На Pi изпълнете следната команда:

    1. sudo apt-get install avahi-daemon

      Това позволява свързване към Pi по име. Така че на основния си компютър можете да се свържете като „ssh [email protected]“, вместо да използвате IP номера. С множество Pi в мрежата е лесно да ги объркате, освен ако не бъдат извикани по име

    2. sudo raspi-config

      1. Потърсете и стартирайте четвъртата опция, наречена „Опции за интернационализация“и задайте вашата часова зона.
      2. С зададената часова зона и ntpd (демон на мрежовия протокол за време), работещ Pi винаги ще показва правилното време с точност до няколко милисекунди! Трябва да го обичам.
  2. Добре, сега свършихме отново.

Стъпка 4: Изходен код

Програмен код
Програмен код

Целият изходен код за този малък дисплей за времето е базиран на Python, PyGame и Pywapi. Всички с отворен код / безплатен софтуер.

PyGame се използва за извършване на всички GUI неща. Наистина невероятни неща. Използвайки PyGame, целият дисплей се възстановява веднъж в секунда. В горната част на моя изходен код ще намерите раздел, който позволява промяна на различни размери на дисплея. Има една секция за малкия композитен видео дисплей и втора секция за по -големия HDMI дисплей. Просто коментирам един от двата раздела въз основа на размера на дисплея, от който се нуждая.

За да стартирате изходния код, просто разархивирайте прикачения файл и копирайте цялата директория в Pi, като използвате File Manage. След като копирате, стартирайте кода, използвайте следните ssh команди:

  1. cd Времето
  2. sudo python weather.py

Командата sudo е необходима, за да може Python да контролира / чете пиновете на GPIO. Вероятно има някакъв начин да заобиколим това ограничение, но ми се изплъзва.

След като всичко работи с помощта на ssh, е време да накарате времето да стартира автоматично при рестартиране. Това също е наистина лесно да се направи.

  1. Използвайки ssh, стартирайте "sudo vi /etc/rc.local"
  2. Точно преди последния ред, който казва „изход 0“, добавете следното към редовете.

    1. cd/home/pi/Weather
    2. sudo python weather.py &> err.log

Това автоматично ще стартира метеорологичното приложение на Pi след рестартиране. Ако по -късно искате да изключите това, просто използвайте ssh, за да редактирате файла и добавете символа за коментар „#“пред двата реда и рестартирайте.

Забележете, моят изходен код е голям хак и не се гордея много с него. Въпреки това, ако изчаках да бъде представен, той никога нямаше да бъде представен. Така че, вземете го или го оставете, просто не плачете, тъй като имам много тънка кожа.

Няколко други неща, които трябва да се отбележат за моя код. Погребан там, ще забележите някакъв код за разговор с устройство X10. Това беше моят опит да контролирам външните си полюсни светлини, които са на адрес А3. Просто исках лампите да светнат по здрач и да изгаснат на разсъмване. Изглежда достатъчно лесно и си мислех, че се справя. С помощта на USB-към-RS232 ключ на Pi бях свързал CM11A X10 модул. CM11A е стар X10 макро модул. CM11A също има RS232 порт, който позволява контрол над шината X10. Изглежда, че все още има някои грешки, защото светлините на стълбовете на лампата не получават съобщението!

Също така трябва да се отбележи, че на по -големия дисплей има хубава отворена празнина по дясната страна на дисплея. Моят план е да добавя няколко лампи за състоянието в тази област. Играя с някои радиостанции IEEE802.15.4 и техните изходи един ден ще се появят на това открито място.

За най-новите и най-добрите актуализации, моля, посетете моя уебсайт на адрес ph-elec.com.

Е, кажете ми в секцията за коментари под всякакви въпроси, които може да имате.

Благодаря, Джим.

О, и не забравяйте да гласувате за мен! Благодаря отново.

BTW: На моя уеб сайт: www.ph-elec.com винаги има повече информация

Стъпка 5: Актуализация на показателя

Прикачена е нова версия, която позволява показване на метрични или имперски.

Надявам се това да помогне, Джим

Препоръчано: