Reklāma
Iepriekš esam runājuši par Arduino un Raspberry Pi relatīvajiem nopelniem - viņiem katram ir savas stiprās puses. Viņiem tomēr nav jābūt ne izvēlei, ne izvēlei - apvienojiet tos, lai iegūtu labāko no abām pasaulēm. Mājas automatizācija tam ir ideāls kandidāts. Mājas automatizācijas tirgus ir pārpludināts ar dārgām patērētāju sistēmām, savstarpēji nesavienojamām un dārgām instalēšanai. Ja jums ir Aveņu Pi Aveņu Pi: neoficiāla apmācībaNeatkarīgi no tā, vai esat pašreizējais Pi īpašnieks, kurš vēlas uzzināt vairāk, vai šīs kredītkartes lieluma ierīces potenciālais īpašnieks, tas nav ceļvedis, kuru vēlaties palaist garām. Lasīt vairāk un Arduino, jūs principā varat sasniegt to pašu par nelielu cenu, pieņemot, ka vēlaties ieguldīt laiku un pūles.
Atjauninājums: kopš šī raksta tika rakstīts, es esmu atklājis OpenHAB, bezmaksas un atvērtā koda mājas automatizācijas platformu kas darbojas uz Raspberry Pi un ko var integrēt ar milzīgu plaša sortimenta viedo māju komplektu, kā arī Arduino. Apskatiet zemāk esošo videoklipu, lai redzētu līkloču maksimumu, un tad dodieties tālāk uz mūsu Darba sākšana ar OpenHAB vietnē Raspberry Pi Darba sākšana ar OpenHAB mājas automatizāciju vietnē Raspberry PiOpenHAB ir nobriedusi, atvērtā koda mājas automatizācijas platforma, kas darbojas ar dažādu aparatūru un ir protokols agnostisks, kas nozīmē, ka tas var izveidot savienojumu ar gandrīz jebkuru mājas automatizācijas aparatūru tirgū šodien. Lasīt vairāk ceļvedis, lai uzzinātu vairāk.
Heimcontrol.js ir Node.js lietotne, kas izstrādāta, lai darbotos uz Raspberry Pi. Apvienojumā ar Arduino un dažām tālvadības pults kontaktligzdām tas padara maiņstrāvas ierīču vadību vienkāršu. Jūs varat pievienot temperatūras sensorus un pat kontrolēt televizoru, taču mēs šodien visu sakārtosim un paplašināsim projektu vēlākā apmācībā.
Tālāk ir sniegts projekta sadalījums.
- Raspberry Pi darbosies kā smadzenes un operāciju vārti - tā darbinās lietotni Node, kas piesaistīta Mongo datu bāzei, un kalpos priekšpuses saskarnei jebkuram tīmekļa pārlūkam.
- Arduino, ko darbina no Pi, pagaidām darbosies saskarne starp elektronikas - radio vadības barošanas slēdžiem.
Lai to izdarītu, jums būs nepieciešams:
- Arduino un aveņu pī
- Dažas tālvadības ligzdas un kontrolieris (es izmantoju šie)
- USB centrmezgls ar barošanu
Pirms darba sākšanas, šeit ir demonstrācijas video no paša projekta veidotāja.
Sāciet no jauna
Mēs šim projektam izmantosim Raspian 11 operētājsistēmas, kas darbojas uz jūsu Aveņu PiLai kāds būtu jūsu Raspberry Pi projekts, tam ir operētājsistēma. Mēs palīdzēsim jums atrast vislabāko Raspberry Pi OS jūsu vajadzībām. Lasīt vairāk , un es ļoti iesakām sākt no jauna instalēšanas, ja jūs jau iepriekš esat rīkojies ar citiem hackiem. Lejupielādējiet jaunāko Raspijas attēls, nokopējiet to uz SD karti un noteikti paplašiniet failu sistēmu un iespējojiet SSH. Pārējā šajā rokasgrāmatā tiks pieņemts, ka esat to izdarījis, un izveidojat savienojumu, izmantojot SSH, izmantojot noklusējuma lietotāju.
Ja jūs to vēl neesat izdarījis, šajā videoklipā ir izskaidrots SD kartes sagatavošanas process operētājsistēmā X X:
Un tas paredzēts Windows lietotājiem:
Sagatavošana
Instalēšanas process ir diezgan darbietilpīgs, un to iegūst no instrukcijas šeit. Diemžēl tie bija novecojuši vai nebija paredzēti Raspian, tāpēc es tos pielāgoju zemāk. Zemāk esošos kodus lielākoties var ielīmēt blokos - jums nav jāielīmē pa vienam. Tā kā mēs apkopojam dažas lietas par pašu Pi, esiet brīdināts, ka viss process prasīs daudz laika. Es teiktu: dodieties uztaisīt sev tasi tējas, bet, kad es saku “ilgs laiks”, es domāju dienas labāko daļu - tāpēc 178 tases būtu piemērotākas.
Visas komandas jāievada terminālī, un dažos punktos jums, iespējams, būs jānospiež Enter. Šīs dažas pirmās komandas atjauninās sistēmu un instalēs priekšnoteikumus:
sudo apt-get update sudo apt-get jauninājums. sudo apt-get install git-core git scons build-essential scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev.
Tālāk mums jāinstalē mezgls:
sudo mkdir / opt / node. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf node-v0.10.2-linux-arm-pi.tar.gz. sudo cp -r node-v0.10.2-linux-arm-pi / * / opt / node. sudo ln -s / opt / node / bin / bin / node / usr / local / bin / node. sudo ln -s / opt / mezgls / bin / npm / usr / local / bin / npm.
Pievienojiet profilam PATH mainīgo, lai OS zinātu, kur atrodas mezgls. Izmantojiet nano teksta redaktoru šādi:
sudo nano / etc / profils.
Atrodiet līniju, kas saka eksporta PATH un aizstāt to ar:
NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / atkritumu tvertne" eksporta PATH.
Nospiediet Ctrl-X, lai izietu, un Y, lai saglabātu.
Lai ceļa izmaiņas stātos spēkā, iespējams, jums būs jāpiesakās un jāpiesakās, taču jūs varat pārbaudīt ar komandu:
kurš mezgls.
Ja nesaņemat izvadi, kas norāda uz bināro mezglu Node, kaut kas neizdevās.
Mongo
Nākamais darbs ir instalēšana Mongo. Mongo ir uz dokumentiem balstīta No-SQL datu bāze, ko arvien vairāk izmanto tīmekļa lietotnes. Diemžēl instalēšana būs jāveic mūžīgi, jo mums tas ir jāapkopo. Izpildot šīs komandas, jūs iegūsit daudz kļūdu, piemēram:
{standard input}: 13085: Brīdinājums: swp {b} lietojums šai arhitektūrai ir novecojis.
Neuztraucieties par tiem. Tātad, izpildiet šīs komandas, lai instalētu Mongo:
git clone git: //github.com/RickP/mongopi.git. CD mongopi. plācenīši. sudo scons --prefix = / opt / mongo install scons -c.
Kad tas ir pabeigts, mums vispirms ir nepieciešams nedaudz vairāk iestatīšanas, lai labotu atļauju problēmas un pārliecinātos, ka tā darbojas startēšanas laikā.
sudo useradd mongodb. sudo mkdir / data / dbb. sudo chown $ LIETOTĀJS / dati / db. cd /etc/init.d. sudo wget -O mongodbs https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh. sudo chmod + x mongodb. sudo update-rc.d mongodb noklusējumi. mongods
Ar šo pēdējo komandu tiks palaists Mongo serveris, un, lai turpinātu citas komandas, jums būs jāatver jauns terminālis. Es neesmu pilnībā pārliecināts par šo soli, tāpēc, ja kāds to var labot komentāros par to, kā mongods automātiski palaižoties, tas būtu ļoti novērtēts. Pagaidām tas darbojas, tikai ne eleganti.
sudo shutdown -r tagad
Visbeidzot, ir pienācis laiks instalēt Heimcontrol.js Node lietojumprogrammu.
cd ~ pi. git clone git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm instalēt.
Lietotni var sākt darbināt, ierakstot
mezgls heimcontrol.js.
Šajā brīdī jums vajadzētu būt iespējai piekļūt vadības saskarnei ar http://localhost: 8080 no Pi, vai nomainiet localhost ar IP adresi, ja tam piekļūstat no cita datora (un jūs arī varētu iestatīt ostas pāradresāciju Kas ir ostas pāradresācija un kā tas man var palīdzēt? [MakeUseOf skaidrojumi]Vai jūs mazliet raudājat iekšā, kad kāds saka, ka pastāv ostas pāradresācijas problēma, un kāpēc jūsu spīdīgā jaunā lietotne nedarbosies? Jūsu Xbox neļaus jums spēlēt spēles, jūsu torrent lejupielādes tiek atteiktas ... Lasīt vairāk lai tam piekļūtu no jebkuras vietas pasaulē), tāpēc pirms Arduino pievienošanas es mudinu jūs apbraukāt un pārbaudīt, vai viss darbojas ar datu bāzi.
Aparatūra
Galu galā es gribētu vadu releju, bet pagaidām es izmantošu drošāku iespēju - radiovadāmus slēdžus.
Esmu izmantojis dažus samērā lētus £ 20 komplektus no Maplin, kuriem ir 3 ligzdas, un atvēru tālvadības pulti, lai es varētu tieši saskarni ar iekšpusē esošo 433 MHz mikroshēmu. Es atradu instrukcijas tam šeit.
Jūs varat arī iegādāties atsevišķus 433 MHz raidītājus, kas ir gatavi lietošanai eBay vai no hobiju elektronikas piegādātājiem. Viss, kas jums nepieciešams, ir savienot VCC ar 5 V arduino, GND un vienu vadības tapu - atcerieties, kuru izmantojāt. (Shēma: Willi Thiel)
Spraudnis darbojas, nosūtot “trīskāršus kodus”, taču tie atšķiras atkarībā no ražotāja. Skatiet RCSwitch dokumentācija lai atrastu precīzus kodus. Šis wiki ceļvedis var arī palīdzēt.
Saziņa ar Arduino notiek, izmantojot mezglu bibliotēku ar nosaukumu duino. Apturiet lietotni Heimcontrol, ja tā darbojas, un instalējiet Arduino tiltu, izmantojot šo komandu.
npm instalēt duino.
Arduino jābūt šis kods augšupielādēts - Es iesaku jums nokopēt un ielīmēt, lai instalētu to no cita datora. Tā būtībā ir klausītāju programma, kas atbild uz sērijas komandām no Pi, taču nekas neliedz jums to paplašināt, izmantojot savas funkcijas.
Kad ir palaista tīmekļa lietotne, dodieties uz vietni Iestatījumi izvēlne> Arduino.
Pēc tam jūs varat pievienot jaunu vienumu, izvēloties RCSwitch metodi, sava raidītāja pin un trīskāršās adreses kodu. Atcerieties ietaupīt, pēc tam dodieties atpakaļ uz jaunā ekrāna galvenā ekrāna ekrānu.
Kļūdas:
Pēc vairāku stundu ilgas koda atkļūdošanas es atklāju, ka nedarbojas vienciparu pin skaitļi - pārliecinieties, vai raidītājs ir ievietots 10 lai pārliecinātos.
Es arī atklāju, ka Arduino spraudnis ir grūti kodēts ar nepareiziem pēdējiem bitiem manis uztvērējiem nepieciešamajiem trijstūru kodiem. Vispirms neliels skaidrojums: trīskāršie kodi sastāv no 3 informācijas baitiem. Pirmais mums nosaka tīkla numuru (1-4), bet otrais nodrošina raiduztvērēja adresi (atkal 1-4, nodrošinot ne vairāk kā 16 adresējamas ligzdas). Gala baits sastāv no diviem polsterējuma bitiem, plus 2 bitiem ieslēgšanai / izslēgšanai. Diemžēl pēdējais baits ir stingri kodēts Arduino spraudnī - un manā gadījumā ieslēgšanas / izslēgšanas kods bija nepareizs.
Man bija manuāli jārediģē spraudņi / arduino / index.js izmantot pareizos kodus. Ja jūs izmantojat tās pašas tālvadības pults ligzdas kā es, mainiet 80. līniju uz:
// Nosūtīt RC kodu. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // mainīt no FF0F. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // mainīt no FF00. }
Šis ir demonstrācijas video par visu, kas darbojas:
Es šajā brīdī to atstāšu, bet sensoru rādījumi un IR tālvadības pulti ir arī atbalstīja. Es, iespējams, vēlāk tos pārskatīšu vēl ar dažiem uzlabojumiem. Ja tas viss jums ir bijis pārāk sarežģīts, iespējams, apskatiet šos iesācējiem draudzīgi Arduino projekti 15 lieliski Arduino projekti iesācējiemVai jūs interesē Arduino projekti, bet nezināt, kur sākt? Šie iesācēju projekti iemācīs jums, kā sākt. Lasīt vairāk .
Džeimsam ir mākslīgā intelekta bakalaura grāds, un viņš ir sertificēts CompTIA A + un Network +. Viņš ir galvenais MakeUseOf izstrādātājs un brīvo laiku pavada, spēlējot VR peintbolu un galda spēles. Kopš mazotnes viņš būvēja datorus.