Talaan ng mga Nilalaman:

IoT Dual Temperature Data Server: 12 Hakbang (na may Mga Larawan)
IoT Dual Temperature Data Server: 12 Hakbang (na may Mga Larawan)

Video: IoT Dual Temperature Data Server: 12 Hakbang (na may Mga Larawan)

Video: IoT Dual Temperature Data Server: 12 Hakbang (na may Mga Larawan)
Video: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, Nobyembre
Anonim
IoT Dual Temperatura Data Server
IoT Dual Temperatura Data Server

Ito ang aking unang pagtatangka sa pagsulat ng isang Maituturo at sa gayon mangyaring madali sa akin! Kung sa tingin mo hindi ito masyadong masama, mangyaring bumoto para sa akin sa First Time na Paligsahan ng May-akda.

Ito ang aking proyekto sa Lock-Down upang malayuang masubaybayan ang 2 temperatura sa isang greenhouse, isa sa antas ng sahig at isa sa ilalim lamang ng bubong. Bagaman ginamit ko ang Raspberry Pi's (RPi) dati, ang proyektong ito ay nagsasangkot ng maraming mga elemento na hindi ko nagamit at kasama ko, nakakita ako ng maraming mga tutorial na wala sa panahon o mali lamang. Ito ang aking koleksyon ng kaalaman upang makagawa ng isang nagtatrabaho dalawahang remote monitor ng temperatura mula sa isang Pi Zero & 2 DS18B20 + One Wire Digital Temperature Sensors na nakuha sa daan.

Mga bagay na natutunan ko tungkol sa:

  • Ginagawang magagamit ang data mula sa isang aparato bilang bahagi ng Internet of Things (IoT)
  • 1-Wire interface na may 2 mga aparato
  • Dataplicity
  • Data ng JSON
  • Pagse-set up ng UFW firewall
  • Paggamit ng Freeboard.io upang maipakita ang data
  • Ang pag-configure ng RPi upang mai-autorun ang programa

Mayroong malaking halaga ng data na maaaring matagpuan sa isang simpleng paghahanap sa lahat ng mga paksang ito, ngunit ang hindi gaanong malinaw ay kung paano pagsamahin ang lahat ng magkakahiwalay na mga elementong ito.

Mga gamit

  • Kakailanganin mo ang isang Raspberry Pi (na may monitor, mouse at keyboard para sa pagse-set up ngunit hindi kapag tumatakbo ang natapos na proyekto)
  • Isang gumaganang koneksyon sa internet.
  • Isang PSU na may isang konektor ng Micro USB
  • 2 ng DS18B20 + One Wire Digital Temperature Sensors. Nalaman kong ang Amazon ang pinakamura
  • 4K7 ohm risistor o gumamit ako ng 2 10K ohm resistors.
  • Maliit na breadboard at ilang mga lalaki / babaeng wires para sa pagsubok sa bench
  • Maliit na piraso ng stripboard para sa huling pagpupulong
  • Mga simpleng tool para sa paghihinang at paghuhubad ng wire.
  • Maliit na kahon ng plastik upang mapaloob ang natapos na disenyo

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware

Mayroon na akong Raspberry Pi Zero W (na may wireless) ngunit sigurado akong ang simpleng proyektong ito ay tatakbo nang maayos sa alinman sa mga RPI. Ang kahon ng kakaibang mga elektronikong piraso sa aking pagawaan ay mayroong lahat (breadboard, wire, PSU atbp) at sa gayon ang kailangan kong bilhin ay ang dalawang 2 x DS18B20 sensor mula sa Amazon. Ito ang normal na chips ng DS18B20 na maginhawang naka-mount sa isang hindi tinatagusan ng tubig na pabahay at 3m cable. Mayroong 3 mga wire mula sa cable:

  • Pula - lakas - kumonekta sa 3.3v pin 1
  • Itim - bumalik - kumonekta sa ground pin 6
  • Dilaw - data - kumonekta sa GPIO4 pin 7

Gumagamit ang mga sensor ng interface na 1-Wire at napakadaling kumonekta at makakuha ng data mula sa. Mayroong maraming mga pahina sa Web na may mga detalye para sa koneksyon ng 1 aparato ngunit napakakaunting sa pagkonekta ng 2 (o higit pa).

Para sa pagsubok sa bench, ang circuit ay binuo gamit ang isang breadboard. Ang mga tutorial na nahanap ko na nakasaad na gumamit ng isang resistor sa 4K7 upang makiling ang linya ng data, ngunit hindi ako makahanap ng isa at kaya ginamit ang 2 * 10K kahanay at gumana ito nang maayos. Mayroong maraming mga mapagkukunan sa Web para sa paggamit ng isang breadboard upang tipunin ang mga RPi circuit at sa gayon hindi ko ito uulitin dito.

Nilikha ang diagram gamit ang Circuit Diagram

Hakbang 2: Pag-setup ng Raspberry Pi OS Software

Pag-setup ng Raspberry Pi OS Software
Pag-setup ng Raspberry Pi OS Software
Pag-setup ng Raspberry Pi OS Software
Pag-setup ng Raspberry Pi OS Software
Pag-setup ng Raspberry Pi OS Software
Pag-setup ng Raspberry Pi OS Software

Tulad ng ginamit ko dati sa RPi na ito, nagpasya akong magsimula sa isang malinis na pag-install ng OS, muling binago ko ang SD card at nag-install ng isang malinis na bersyon ng NOOBS. Pagkatapos ay na-install ko ang buong bersyon ng desktop ng Raspian (ang tuktok na pagpipilian) dahil mai-install din nito ang PIP & GIT na ang lite na bersyon ay hindi. Kahit na hindi ko kailangan ang Graphical User Interface (GUI) para sa proyekto, ito ay isang madaling paraan upang mai-set up ang lahat ng mga pagpipilian at sa isang 16gb SD card walang kakulangan ng puwang.

In-set up ko ang WI-FI access pagkatapos ay pinatakbo ang buong pag-install at pagkatapos ang wizard na may mga pag-update at pag-upgrade atbp Gamit ang GUI, na-set up ko ang RPI kung kinakailangan lamang dahil ang paggamit ng GUI ay mas simple kaysa sa Command Line Interface (CLI). Nagpunta ako sa window ng pagsasaayos mula sa menu at pagkatapos ay:

  • Sa tab ng system, binago ko ang password, itinakda upang mag-boot sa CLI at hindi na-check ang Auto Login
  • Sa tab ng mga interface, pinagana ko ang 1-wire
  • Nag-click ok at muling na-boot

Kung kailangan mong bumalik sa GUI anumang oras i-type lamang ang startx sa CLI

startx

Hakbang 3: Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access

Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access

Natagpuan ko ang isang talagang kapaki-pakinabang na entry sa blog sa site ng Dataplicity sa https://blog.dataplicity.com/how-to- build-a-raspb… at ginamit ang ilang bahagi nito. Inilalarawan ng seksyon 3 ng blog ang pagse-set up ng Dataplicity para sa malayuang pag-access sa RPi. Hindi ko pa nagamit ang Dataplicity dati, ngunit sasabihin, lubusan kong inirerekumenda ito bilang isang napaka-simpleng tool sa remote access. Kahit na ang mga screenshot (sa blog sa itaas) ay medyo napapanahon, ang prinsipyo ay mabuti.

Sa iyong PC, pumunta sa Dataplicity.com at lumikha ng isang account (maaari mong gamitin ang browser sa GUI, ngunit mas mabagal sa RPi Zero). Pagkatapos i-click ang pindutang "magdagdag ng bagong aparato" at isang linya ng code ang ipinapakita sa pop-up window. Pagkatapos ay pumunta sa CLI sa RPi at i-type ang linya ng teksto. Kung okay ang lahat, lalabas ang logo ng Dataplicity at tatakbo ang program ng pag-install.

Bumalik sa iyong PC, dapat lumitaw ngayon ang bagong aparato sa website ng Dataplicity. I-click ang aparato at dapat mong makita ang isang terminal screen para sa iyong RPi.

Mayroong ilang mga bagay na dapat tandaan dito:

  • Upang mag-log in, i-type ang "su pi" (para sa pag-access ng superuser) at sasabihan ka para sa password (tulad ng itinakda nang mas maaga)
  • Kailangan mong paganahin ang Wormhole (upang magamit sa ibang pagkakataon)
  • Kakailanganin mo ang Wormhole address para sa pagpapakita ng data sa paglaon (mag-right click upang makopya kapag kinakailangan)

Maaari mong gamitin ang remote access na ito para sa lahat ng mga sumusunod na hakbang at mas madali para sa pagkopya ng data, mga programa atbp nang direkta sa RPi.

Hakbang 4: Suriin ang Mga Sensor

Maaari mo na ngayong gamitin ang Dataplicity mula sa malayuang pag-access sa RPI para sa lahat ng mga susunod na seksyon.

Kung ang lahat ay konektado na ngayon okay, dapat mong makita ang mga temperatura na ibinabalik mula sa DS18B20's. Nagtatrabaho ako sa pamamagitan ng tutorial ng Pi Hut ngunit karamihan sa mga ito ay hindi kinakailangan. Kung nais mo ang buong detalye maaari silang makita dito:

Ang mga mahahalagang piraso ay upang pumunta sa direktoryo ng mga aparato at tiyaking ipinapakita ang 2 magkakaibang mga sensor.

cd / sys / bus / w1 / mga aparato /

Dapat itong magpakita ng 2 mga aparato na nagsisimula sa 28- at sa bus master. Ipinapakita ng minahan:

28-011453ebfdaa 28-0114543d5daa w1_bus_master1

Ang mga 2 numero ng ID ay mahalaga at kakailanganin sa paglaon! Pagkatapos ay palitan ang isa sa mga direktoryo ng sensor:

cd 28-011453ebfdaa

(halimbawa) at pagkatapos ay basahin ang halaga mula sa sensor

pusa w1_slave

Dapat mayroong 2 linya ng teksto na ipinakita:

53 01 4b 46 7f ff 0c 10 2d: crc = 2d YES

53 01 4b 46 7f ff 0c 10 2d t = 21187

Ipinapakita ng YES na ang sensor ay nagbabasa nang tama at ang 21187 ay nagpapakita ng temperatura sa Celsius na 21.187 (hatiin ng 1000) Ulitin ito upang suriin ang pangalawang sensor. Kung kapwa basahin ang ok pagkatapos ay maaari tayong magpatuloy sa pagbabasa ng data sa Python3.

Kinopya at inangkop ko ang sumusunod na code na nakita ko sa Web ngunit hindi ko matandaan kung saan nagmula. Kung mukhang ito ang iyong code, pagkatapos ay humihingi ako ng paumanhin dahil walang pamamlahi na inilaan; mangyaring ipaalam sa akin at makikilala ko ang iyong trabaho.

Lumikha ng isang direktoryo na tinatawag na mga proyekto at baguhin sa direktoryo na iyon.

mkdir ~ / mga proyekto

cd ~ / mga proyekto

Sa direktoryo na ito, gamitin ang text editor (nano) upang lumikha at mag-edit ng isang file na tinatawag na thermo-test.py

sudo nano thermo-test.py

Ito ay dapat buksan ang editor at habang gumagamit ka ng Dataplicity, maaari mo lamang kopyahin ang sumusunod na code sa ibaba (thermo-test.py) at i-paste sa editor. Kakailanganin mong baguhin ang 2 mga pangalan ng aparato (simula 28- …) sa mga nabanggit sa itaas. Kapag ang lahat ay mukhang tama, pindutin ang ctrl + X upang matapos, Y upang i-save at bumalik upang magamit ang umiiral na pangalan. Kung mas gusto mong gamitin ang GUI pagkatapos ay gagawin din ni Thonny.

Upang patakbuhin ang programa ng pagsubok:

sudo python3 thermo-test.py

Nagiging maayos ang lahat, dapat itong isagawa ang file gamit ang python 3 at i-print sa screen ang 2 temperatura bawat 10 sec. Maaari mong subukan ang lahat ay ok sa pamamagitan ng paglalagay ng 1 sensor sa iced water o dahan-dahang pag-init ng isang hairdryer. Kung mukhang okay ang lahat, maaari na tayong magpatuloy!

Hakbang 5: UFW Firewall

UFW Firewall
UFW Firewall

Dahil ang RPi na ito ay magiging permanenteng konektado sa internet nagpasya akong isang Firewall ay isang magandang ideya at isang simpleng gagamitin ay Uncomplicated Firewall (ufw). Mayroong isang napaka-simpleng tutorial dito

Hindi ako lalim ng malalim dahil hindi ito ang layunin ng Ituturo na ito, ngunit sa madaling salita:

I-install ang firewall gamit ang:

sudo apt-get install ufw

Itakda ang mga default na panuntunan:

sudo ufw default payagan ang papalabas

sudo ufw default tanggihan ang papasok

Buksan ang port 80 para sa Dataplicity

sudo ufw payagan ang 80

Paganahin ang firewall

sudo ufw paganahin

Suriin ang katayuan at tiyaking tumatakbo ang lahat

sudo ufw katayuan

Hakbang 6: S pagtatapos ng Data ng Temperatura Bilang JSON

S pagtatapos ng Data ng Temperatura Bilang JSON
S pagtatapos ng Data ng Temperatura Bilang JSON

Bumalik sa blog ni Tim Fernando at seksyon 5.

Sundin ang mga hakbang tulad ng nakasaad (maliban kung nilikha na namin ang direktoryo ng mga proyekto) at lahat ay dapat na gumana nang maayos. Gamit ang GIT mai-download mo ang mga file ng application ni Tim at tiyakin ng PIP na ang lahat ng kinakailangang mga programa ay naka-install sa iyong RPi. Nalaman ko na kailangan kong mag-boot muli upang matiyak na ang mga pakete ay ang lahat ng setup ng tama.

Pagkatapos ay patakbuhin ang programa ni Tim at ang iyong RPi dapat ay pagkatapos ay magbigay ng data ng JSON para sa unang sensor.

cd bahay / pi / proyekto / temperatura-ihatid-pi

sudo gunicorn temperatura: app -b 0.0.0.0:80

Maaari kang magpatuloy sa pamamagitan ng blog sa seksyon 6 kung saan mahahanap mo ang data na ibinibigay para sa 1 sa mga sensor.

Maaari mo ring gamitin ang JSON Viewer upang makita ang data https://codebeautify.org/jsonviewer I-click ang pindutang "load URL" at i-paste sa Wormhole address na nabanggit kanina. Sa kaliwang pane, dapat mong makita ang dalawang mga entry, isa para sa Celsius at isa para sa Fahrenheit.

Hakbang 7: Magpadala ng Data Mula sa Parehong Mga Sensor

Magpadala ng Data Mula sa Parehong Mga Sensor
Magpadala ng Data Mula sa Parehong Mga Sensor

Batay sa code sa temperatura.py at thermo-test.py, gumawa ako ng 2temps.py Na-edit tulad ng dati sa direktoryo / mga proyekto / temperatura-ihatid-pi, na na-paste sa code at nai-save. Tumakbo ako saka

sudo gunicorn 2temps: app -b 0.0.0.0:80

Ngayon kapag pinatakbo ko ulit ang JSON Viewer nakuha ko ang mga halaga para sa temp1 at temp2

Tagumpay:)

Hakbang 8: Awtomatikong Pagsisimula

Awtomatikong Pagsisimula
Awtomatikong Pagsisimula

Tulad ng lakas sa greenhouse na nakakakuha ng shut off paminsan-minsan, nais ko ang RPi na awtomatikong i-load ang programa at simulang patunayan ang data. Ang pinakasimpleng paraan ay tila upang i-edit ang rc.local file at idagdag ang kinakailangang code sa ibaba sa itaas lamang ng linya ng exit 0.

cd atbp

sudo nan rc.local

tapos add-in

matulog 10

cd bahay / pi / proyekto / temperatura-ihatid-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &

  • Sinasabi ng & sa dulo ang computer na patakbuhin ang script sa isang sub shell upang ang iyong computer ay hindi maghintay para matapos ang pagpapaandar at magpapatuloy sa boot
  • Tinitiyak ng Sleep 10 [segundo] na ang lahat ng mga nakaraang pagpapatakbo ay nakumpleto bago simulan ang serbisyo.

Lumabas at makatipid tulad ng dati. Pagkatapos ay i-reboot at muling patakbuhin ang JSON Viewer upang suriin ang lahat ay mabuti.

Kung nais mo ng karagdagang impormasyon sa mga awtomatikong pagpapatakbo ng mga programa mayroong isang mahusay na tutorial dito

Hakbang 9: Ipakita ang Data sa Freeboard.io (1)

Ipakita ang Data sa Freeboard.io (1)
Ipakita ang Data sa Freeboard.io (1)

Ang mga hakbang sa blog ng Tim ay gumagana nang maayos, sa buod; lumikha ng isang account sa www.freeboard.io at pagkatapos ay lumikha ng isang bagong Freeboard, tinawag ko ang aking SHEDTEMPERATURES.

Una, magdagdag ng isang datasource, i-click ang ADD sa kanang tuktok at mula sa pop-up piliin ang JSON bilang uri, bigyan ang datasource ng isang PANGALAN, idagdag ang address ng wormhole mula nang mas maaga bilang URL at i-click ang HINDI para sa TRY THINGPROXY. Ang temperatura ay napakabagal lamang magbabago at kaya't PALIGTASAN ang BAWAT 15 segundo ay mabuti. I-click ang I-save.

Hakbang 10: Ipakita ang Data sa Freeboard.io (2)

Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)
Ipakita ang Data sa Freeboard.io (2)

I-click ang ADD PANE at pagkatapos ang + upang idagdag ang unang widget. Maaari kang pumili at maglaro ng iba't ibang mga TYPE ngunit nalaman kong maayos lang ang Gauge. Magbigay ng angkop na TITLE, UNITS (C), MINIMUM at MAXIMUM upang umangkop sa iyong aplikasyon. Para sa DATASOURCE, i-click ang + at lilitaw ang pinagmulan na nilikha sa itaas.

Dapat ipakita ngayon ng dropdown ang 2 mapagkukunan ng data ng JSON (temp2 at temp2) na binuo nang mas maaga. Piliin ang naaangkop na mapagkukunan at i-click ang i-save.

Ulitin ito para sa ikalawang gauge at lahat kami ay nakatakda.

Dapat ipakita ang data ngayon sa 2 gauge at kung mayroon ka pa ring koneksyon sa PRi sa isang monitor, dapat mong makita ang mga kahilingan mula sa Freeboard.io sa kanilang pagdating.

Hakbang 11: Buuin ang proyekto sa isang Kahon

Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon
Buuin ang proyekto sa isang Kahon

Hanggang sa puntong ito, ang RPi at ang iba pang mga sangkap ay natipon lahat sa bench gamit ang isang breadboard. Pagkatapos ay ginamit ang isang maliit na piraso ng stripboard upang mapalitan ang breadboard at ang mga lead ay solder sa isang lugar.

Ang isang maliwanag na rosas na maliit na kahon ng imbakan ng Lego ay natagpuan na may maraming puwang at kung saan ang RPI ay hindi magiging masyadong mainit. ang mga butas ay drilled sa mga gilid ng kahon & 3mm nylon mounting pou ay ginamit upang hawakan ang RPi at stripboard sa lugar.

Mayroon lamang 3 koneksyon na kinakailangan mula sa GPIO, 3.3v, GND at data.

  • 3.3vdc pin 1
  • GND pin 6
  • Data (GPIO4) pin 7

Ang mga butas ay idinagdag din sa kahon para sa lakas ng USB at mga kable sa mga sensor ng temperatura. Kapag ang lahat ng bagay ay naka-mount sa lugar, isang maliit na halaga sa silicone sealant ay naidagdag upang matiyak na ang mga gagamba ay hindi iniisip na ito ay isang magandang mainit na lugar upang gugulin ang taglamig!

Hakbang 12: Tapos na

Tapos na
Tapos na
Tapos na
Tapos na

Ang kahon ay inilagay sa greenhouse at pinalakas mula sa isang USB charger. Ang dalawang sensor ay inilagay ang isa malapit sa tuktok ng greenhouse at ang isa pa papunta sa isang palayok ng halaman upang suriin kung gaano gininaw ang mga punla sa gabi.

Ito ang aking unang Instructable at inaasahan kong sa tingin mo okay lang. Kung nakakita ka ng anumang mga error mangyaring ipaalam sa akin at susugan ko kung saan kinakailangan. Ang susunod na hakbang ay maaaring i-log ang data bawat (sabihin) 60 sec, ngunit darating ito sa paglaon.

Inirerekumendang: