Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Hardware
- Hakbang 2: Pag-setup ng Raspberry Pi OS Software
- Hakbang 3: Pag-set up ng Dataplicity upang Pahintulutan ang Remote na Pag-access
- Hakbang 4: Suriin ang Mga Sensor
- Hakbang 5: UFW Firewall
- Hakbang 6: S pagtatapos ng Data ng Temperatura Bilang JSON
- Hakbang 7: Magpadala ng Data Mula sa Parehong Mga Sensor
- Hakbang 8: Awtomatikong Pagsisimula
- Hakbang 9: Ipakita ang Data sa Freeboard.io (1)
- Hakbang 10: Ipakita ang Data sa Freeboard.io (2)
- Hakbang 11: Buuin ang proyekto sa isang Kahon
- Hakbang 12: Tapos na
Video: IoT Dual Temperature Data Server: 12 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
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
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
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
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
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
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
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
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)
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)
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
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
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:
Murang Dual Dual 30V / 2A Project Power Supply: 7 Hakbang (na may Mga Larawan)
Murang Dobleng 30V / 2A Project Power Supply: Kapag naghahanap ng mga module ng supply ng kuryente at mga LCD screen, natagpuan ko ang isang pares ng mga murang LCD 35W power supply module na na-rate sa 0.5-30V @ 3A (50W na may heatsink at 4A surge kasalukuyang). Mayroon itong pagsasaayos ng Boltahe at kasalukuyang limiter. Mayroon ding
Nakakonektang Web na SMART LED Animation Clock Na May Control Panel na Batay sa Web, Naka-synchronize ng Time Server: 11 Mga Hakbang (na may Mga Larawan)
Nakakonektang Web na SMART LED Animation Clock Sa Control Panel na nakabatay sa Web, Naka-synchronize ng Time Server: Ang kuwento ng orasan na ito ay bumalik sa malayo - higit sa 30 taon. Pinangunahan ng aking ama ang ideyang ito noong ako ay 10 taong gulang lamang, bago pa ang LED rebolusyon - pabalik noong LED kung saan 1/1000 ang ningning ng kanilang kasalukuyang ningning na ningning. Isang totoo
Bumuo ng isang Dual 15V Power Supply Gamit ang Mga Module ng Istante para sa ilalim ng $ 50: 10 Mga Hakbang (na may Mga Larawan)
Bumuo ng isang Dual 15V Power Supply Gamit ang Off the Shelf Modules para sa Under $ 50: Panimula: Kung ikaw ay isang libangan na nakikipag-usap sa audio, pamilyar ka sa mga dalawahang supply ng kuryente. Karamihan sa mga low audio audio board tulad ng pre-amps ay nangangailangan ng kahit saan mula sa +/- 5V hanggang +/- 15V. Ang pagkakaroon ng dalawahang boltahe na supply ng kuryente ay ginagawang
WiFi Temperature Logger (na may ESP8266): 11 Mga Hakbang (na may Mga Larawan)
WiFi Temperature Logger (kasama ang ESP8266): Kumusta, natutuwa kaming makita ka rito. Inaasahan ko na sa pagtuturo na ito ay makakahanap ka ng ilang kapaki-pakinabang na impormasyon. Huwag mag-atubiling magpadala sa akin ng mga mungkahi, katanungan, … Narito ang ilang pangunahing data at isang mabilis na pangkalahatang ideya ng proyekto. Para sa mga mobile na gumagamit: Video. Ipaalam sa akin
IoT Pinagana ang Sensor Data Collection Center Na May ESP8266 & PubNub: 9 Mga Hakbang (na may Mga Larawan)
IoT Pinagana ang Sensor Data Collection Center Sa ESP8266 & PubNub: Karamihan sa mga tutorial sa ESP8266 ay nasa antas ng newbie (malayo na kumikislap ng isang led) o masyadong kumplikado para sa isang tao na naghahanap ng isang bagay upang mapabuti at mag-upgrade sa kanyang pinangunahan na mga kasanayan sa pagpikit. Ito itinuturo na naglalayong tulay ang puwang na ito sa lumikha