Smart Piscina Com IoT Ionic Dweet E DragonBoard
Enfòmasyon sou pwodwi:
Smart Piscina Com IoT a se yon pwodwi achitekti IoT ki
pèmèt kontwòl ak siveyans nan yon pisin lè l sèvi avèk Ionic,
Dweet, ak teknoloji DragonBoard. Li gen ladann konpozan tankou
Linker Mezzanine, 96Boards GPIO, ak Py-Spidev. Pwodwi a
pèmèt itilizatè yo kontwole estati tretman an, estati ponp,
estati rezèvwa, ak valè pH pisin lan. Pwodwi a tou
gen ladan yon founisè Dweet ki pèmèt itilizatè yo voye done bay la
Dweet.io platfòm pou plis analiz.
Enstriksyon Itilizasyon pwodwi:
Pou itilize pwodwi Smart Piscina Com IoT, swiv sa yo
enstriksyon:
- Mete ajou ak ajou lojisyèl an pa kouri sa ki annapre yo
kòmandman nan tèminal la:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
- Enstale eleman adisyonèl pa kouri kòmandman sa yo
nan tèminal la:
sudo apt-get install gedit
sudo apt-get install python-pip
sudo apt-get install build-essential autoconf automake
libtool-bin pkg-config python-dev
git clone
https://github.com/jackmitch/libsoc.git
cd libsoc
sudo autoreconf -i
sudo ./configure --enable-python=2 --enableboard=
dragonboard410c --with-board-configs
sudo make
sudo make install
sudo ldconfig /usr/local/lib
git clone
https://github.com/96boards/96BoardsGPIO.git
cd 96BoardsGPIO/
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make install
sudo ldconfig
git clone https://github.com/doceme/pyspidev.git
cd py-spidev
sudo python setup.py install
sudo ldconfig
- Edit libsoc.conf la file pa kouri lòd sa a nan
tèminal la:
sudo gedit /usr/local/etc/libsoc.conf
Mete ajou la file kontni nan sa ki annapre yo:
{ status_tratamento: 0, ligadesliga_bomba: 0, status_bomba:0,
status_reservatorio:0, PH_setpoint:6, PH_valor: 4 } - Enstale bibliyotèk demann pa kouri lòd sa a nan
tèminal la:
sudo pip install requests
- Sèvi ak pwodwi a pa enpòte spidev, tan, Dweet, gpio, ak
GPIO. Kouri fonksyon ki nesesè yo kontwole ak kontwole a
pisin. Pou egzanpample, sèvi ak fonksyon readPH pou li pH la
valè pisin lan. Sèvi ak fonksyon liga_des_bomba a pou limen/éteindre
ponp lan. Sèvi ak fonksyon atualiza_sp pou mete ajou pH la
valè. Sèvi ak fonksyon dweetPost pou voye done nan Dweet.io
platfòm pou plis analiz.
instructables
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard
pa rxidieh
Entwodiksyon
Apresento aqui uma solução para monitoramento e tratamento de piscinas de maneira remota, ke poderia ser usado tanto pelo proprietário de um imóvel, como por algum piscineiro ke poderia veri car remotamente diverse piscinas as quais ele atende. O pyès ki nan konpitè ki baze sou plak DragonBoard ak Qualcom ak plak Linker Mezanine nan 96boards. Epitou sèvi ak detèktè Arrow pou plak Linker Mezanine. Esta não é uma implementação nal! Mas sim um desenvolvimento pou montre kòm reyalize yon programação do Hardware, yon kominikasyon ak sèvis repozitwa nan nouvo ea criação de um app pou aksè ak kontwòl sistèm. As funções criadas são: -Controle do PH da Piscina -Acionamento da Bomba and monitoramento -Monitoramento do nível do reservatory of product para treatment
Achitekti IoT
Yon automatisation eo controle do treatment da piscina sao realizes pela Dragonboard, com koòdone itilize nan aplikasyon an. Web. Para that this seja possível, is used a achitetura demonstrata on imagem, and consist em:
1. Os dados são lidos and processados pela Dragonboard 2. A DragonBoard sekrete in um repositório na Web, neste caso o Dweet.io 3. O Dweet.io disponib kòm enfòmasyon lidas para que sejam disponíveis para other aplicações 4. Um aplicativo Web pa desenvolvido no Ionic ak Acessa os dados do Dweet.io ak apresenta nan yon koòdone
HTML pou ou itilize
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 1
Etap 1: Konfigirasyon Fè Materyèl
Se konsa, li itilize yon DragonBoard 410c pou fè otomatik ak kontwòl lokal nan pisin. Konm yon Dragonboard te enstale yon plak pwotèj 96boards ki rele Linker Mezanine, ki fasil pou jwenn aksè nan IOs nan DragonBoard. Este shield tb possui dois conversores A/D para leitura de dados analógicos. Imaj yo egziste yon fason ki itilize pou egzanp IO yo.
1. Sa a se konsidere kòm itilizasyon um PHmetro ke forneça uma saída proporcional de 0 a 5V pou ke seja compatível com a entrada do A/D. Caso seja used um com sinal maior, será necessário um divisor resistivo para compatibilizar o sinal com a entrada
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 2
2. No example, ao invés de um PHmetro foi utilisé um potênciometro para simulação do sinal 3. Para simulation or acionamento da bomba foi used um led, ke em um projecto real could ser um
acoplador ótico acionando um TRIAC ou relé 4. O sensor de rotação da bomba foi simulado com um sensor de toque. Li se yon aplikasyon reyèl ki gen pouvwa
um sensor no eixo da bomba ou um contado auxiliar do contator que aciona a bomba. Nan ka sa a, nan ka defeito da bomba ou queda do disjuntor, seria possível veri car ke a bomba foi acionada e não está girando 5. O sensor para nível do reservatório é um do tipo “tilt” ke devra enstale em uma bóia 6. . Por m, a dosagem de produto é feita por uma eletroválvula acionada por um relé.
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 3
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 4
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 5
Etap 2: Preparasyon pou DragonBoard
Atualização da Placa e instalação das bibliotecas p/ 96boards
Yon plak DragonBoard vem de fábrica kòm uma distribye Linux Linux Linaro, li se yon bon resous pou egzekite sa a aplikasyon, ba w ap fè yon plak ak enstale nan bibliyotèk yo nan 96boards pou koòdone nan Linker Mezanine. Yon fwa ke nou travay nan Linux, nou kapab acessar o Terminal para realizar os comandos de atualização e instalação de bibliotecas: Os following commands realizem a atualização da placa:
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade
Pou travay ak Python, tou reyalize yon enstalasyon editè tèks ak entèpretasyon
sudo apt-get install gedit sudo apt-get install python-pip
Na sequeência serão instaladas as Bibliotecas necessárias. Osi komand yo dwe prezante yo nan lòd yo swiv e sao críticos pou yon enstalasyon korèk:
sudo apt-get install build-essential autoconf automake libtool-bin pkg-config python-dev sudo reboot
LIBSOC (Acesso a Linker Mezanine)
git clone https://github.com/jackmitch/ libsoc.git cd libsoc sudo autoreconf -i sudo ./configure –enable-python=2 –enableboard= dragonboard410c –with-board-configs sudo make sudo make install sudo ldconfig /usr /local/lib sudo rdemare
96 tablo:
git klonaj https://github. com/96boards/96BoardsGPIO.git
cd 96BoardsGPIO/
sudo ./autogen.sh sudo ./configure sudo make sudo make enstale sudo ldconfig
Quase no m… mas profitamos para instalar tb a biblioteca para acesso a parte analógica de Linker Mezanine:
git clone https://github.com/doceme/pyspidev.git cd py-spidev sudo python setup.py enstale sudo ldconfig sudo reboot
Enpòtan lebrar ke na LIBSOC se kòm referans nan endeskripsyon Linker Mezanine, e sèvi nan ka referans presize acessar diretamente um endereço de IO.
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 6
sudo gedit /usr/local/etc/libsoc.conf
Etap 3: Criação Do Objeto No Dweet.io
Kòm ou pwopriye eslogan diz, o dweet.io fonksyone kòm um Twitter para IoT, kote as coisas can send and receber dados pela internet de manera facilitada. o torna interessante para início dos testes com IoT. Para criar o object no Dweet basta follow the following passs:
1. Acessar o Dweet.io e clicar em “Play” 2. Na guia POST crie um nom para o obejto no campo "bagay" 3. Non campo "kontni" adisyone os dados que serão lidos e enviados. Os dados dwem estar pa gen fòma
"json" 4. Klike sou "Eseye li!" e observe o result em “Response Body” 5. Caso queira con rmar o uncionamento da “coisa”, vá até ocampo "Get Lattest Dweet", insira o name do
obje criado e click em “Try it out” pou veri car a repons do Dweet. Pou aplikasyon sa a pou fè kriye oswa objè “smart_piscina” sa a ki vin apre a:
{ “status_tratamento”: 0, “ligadesliga_bomba”: 0, “status_bomba”:0, “status_reservatorio”:0, “PH_setpoint”:6, “PH_valor”: 4 }
Se tout moun ki nesesè pou kominikasyon ant DragonBoard ak aplikasyon an Web. É important ressaltar que o nome do object deve ser alterado no Dweet e no code fonte das aplicações para evite ke lòt aparèy acessem simultaneamente a coisa gerando result indesejados.
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 7
Etap 4: Pwogramasyon Python
Lojik fonksyonman
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 8
Lojisyèl de Controle da Piscina te devwale nan Python, ki se yon langaj senp epi entèprete, ou pa bezwen konpilasyon pou jwenn aplikasyon an. Kòm funções realizas pelo software piscina_ nal.py, ke w ap woule nan DragonBoard sao jan sa a:
1. Controla o PH, monitorando o valor medido na piscina e comparndo com o “Setpoint” de nido pelo usuário no Web app. A correção will be feita dosando product através do acionamento da eletroválvula.
2. O acionamento da eletroválvula é temporizado, ou seja, uma certain quantidade de product é dosada ea lógica aguarda um determine period para realizar uma nova dosagem
3. O controle só é realizado se a bomba da piscina estiver em functiono e se o nível do tanque de product para dosagem estiver ok!
4. Quando o PH atinge um valor superior ao desejado, a dosagem para automaticamente 5. Controla a bomba, ligando e desligando a mesma através do Web app, conforme solicitação do usuário 6. Monitora e informa ao usuário o nível do reservatório do produto de Dosagem 7. Informa anomalia na bomba, caso seja ligada e não rode.
Antes de apresentar o code, we we perform some ajustes in Dragonboard for that the a se communique properly com o Dweet.io
Konpozan adisyonèl
Enstale yon bibliyotèk REQUESTS pou fè funções de POST ak GET nan HTTP
demann enstalasyon sudo pip
Copiar o arquivo dweet.py para a mesma pasta on is a application smart_piscina.py
Kòd Fonte nan Python
A seguir apresentamos o code por partes, premye sao lidas as bibliotecas necessárias, with gurados os IOs and achieved a leitura analological do valor de PH.
enpòte spidev enpòte tan soti nan dweet enpòte Dweet soti nan libsoc enpòte gpio soti nan gpio_96boards enpòte GPIO
COMANDO_BBA = 36
#Comando Bomba
NIVEL_PROD = 13
#Chave de nivel
DOSAGEM_VVL = 115
#Valvula Dosagem
BBA_LIGADA = 24 #Retorno de Bomba ligada
GPIO_CS = 18
#Capteur PH (Analojik)
broch = (
(GPIO_CS, 'soti'), (COMANDO_BBA, 'soti'), (DOSAGEM_VVL, 'soti'), (NIVEL_PROD, 'andan'), (BBA_LIGADA, 'andan')
)
dweet = Dweet ()
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz=10000
spi.mode = 0b00
spi.bits_per_word = 8def readPH (gpio):
gpio.digital_write(GPIO_CS, GPIO.HIGH)
time.sleep (0.0002)
gpio.digital_write(GPIO_CS, GPIO.LOW)
r = spi.xfer2([0x01, 0x80, 0x00])
gpio.digital_write(GPIO_CS, GPIO.HIGH)
adcout = (r[1] << 8) & 0b1100000000
adcout = adcout | (r[2] & 0xff)
adcout = (adcout * 0.014)
#konvèti pou PH 0 a 14
retounen adcout
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 9
Nan dezyèm pati a, se fè yon plezi pou Dweet ak tout moun ki te armazen yo nan divès kalite mond lan pou kòm lojik nan lojisyèl:
def le_dweet():
#Le qual setpoint para tretman
global ld_bomba, st_bomba, st_trat, st_res, PH_valor, PH_SP
resposta = dweet.latest_dweet(name =”smart_piscina”)
ld_bomba = resposta['with'][0]['content']['ligadesliga_bomba']
st_bomba = resposta['with'][0]['content']['status_bomba']
st_trat = resposta['with'][0]['content']['status_tratamento']
st_res = resposta['with'][0]['content']['status_reservatorio']
PH_valor = repons['with'][0]['content']['PH_valor']
PH_SP = repons['with'][0]['content']['PH_setpoint']
retounen ld_bomba, st_bomba, st_trat, st_res, PH_valor, PH_SP
A twazyèm parte é a função que realiza o treatment da piscina, com a lógica para acionamento baseada no PH, nível do reservatório e bomba ligada. Note que as variaveis de monitoramento são as mesmas lidas pelo Dweet, desta forma conseguimos atualizar os values na lógica para que after sejam novamente enviados ao service.
def tratamento(): global st_trat, st_res, st_bomba st_res = gpio.digital_read(NIVEL_PROD) st_bomba = gpio.digital_read(BBA_LIGADA) if (PH_valor < PH_SP) and ( st_res == 1) and ( st_bomba == 1): gpio. digital_write(DOSAGEM_VVL, GPIO.HIGH) time.sleep(2) #tempo da dosagem do produto gpio.digital_write(DOSAGEM_VVL, GPIO.LOW) time.sleep(1) #espera entre dosagens st_trat = 1 print(“TRATAMENTO LIGADO”) lòt bagay: gpio.digital_write(DOSAGEM_VVL, GPIO.LOW) st_trat = 0 print(“TRATAMENTO DESlIGADO”) return st_trat, st_res
A quarta e ultima parte é o looping de execução da lógica. A order onde as subrotinas são chamadas é importante para que os dados lidos pelo Dweet sejam atualizados e depois enviados para a correta visualção no Web app.
if __name__=='__main__': ak GPIO(pins) kòm gpio: pandan ke se vre:
le_dweet()tratament() PH_valor = round(readPH(gpio), 2) if ld_bomba == 1: gpio.digital_write(COMANDO_BBA, GPIO.HIGH) print(“Bomba Ligada”) else: gpio.digital_write(COMANDO_BBA, GPIO. LOW) print(“Bomba Desligada”) print(“Valor do PH = %d” % PH_valor) print(“Valor do SP PH = %d” % PH_SP) print(“”) dweet.dweet_by_name(name=”smart_piscina” , data={“ligadesliga_bomba”:ld_bomba, “status_bomba”:st_bomba, “status_tratamento”:st_trat, “status_reservatorio”:st_res, “PH_valor”:PH_valor, “PH_setpoint”:PH_SP}) time.sleep(10)
https://www.instructables.com/ORIG/FPV/I7ZO/JAMTVW5R/FPVI7ZOJAMTVW5R.py https://www.instructables.com/ORIG/FMD/BHS3/JAMTVW5V/FMDBHS3JAMTVW5V.py
Telechaje Telechaje
Etap 5: Desenvolvimento Do APP – Ambiente Hídrido
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 10
Plataforma híbrida Ionic
O aplicativo para controle da piscina a will desenvolvido using your platform híbrida, or seja, fazemos a absstração do hardware that o app will use and developmos um projecto using HTML, CSS and Javascript that afterly can converted on um app for your platform specí as like. Android oswa IOS. Nan ka sa a itilize IONIC, ki fonksyone baze sou platfòm Cordova, ki pèmèt visualiser ak teste yon aplikasyon através pou rannize nan menm twal la. Web Navigatè. Pou devlopman aplikasyon an, sèvi ak lang HTML ak Typescript. o IONIC tou pèmèt yon itilizasyon kad angilè pou travay ocs eleman kòm Modèl ak Kontwolè.
Instalação do Ambiente de Envolvimento
O desenvolvement do app a pral reyalize nan yon òdinatè pessoal, ak sou plak DragonBoard. N ap kòmanse enstale a node.js, li nesesè pou fonksyone Ionic Acessar o sit https://nodejs.org/en/ e fazer o Download dènye vèsyon node.js Apre sa, ou fini ak enstalasyon an, oswa jere pacotes NPM devlope. te enstale pandan enstalasyon node.js. Li pral fè enstalasyon Ionic. Pa gen èd memwa nan komandman pou Windows reyalize yon enstalasyon ak sa ki annapre yo:
npm enstale g cordova ionic npm enstale g cordova
Para testar o ionic, o swivan komandman ou kapab exécuté e se estiver tudo ok returnará a versão instalada:
iyonik v
Criação da application no Ionic
Não, non tem uma koòdone grá ca bonita. Lè w ap kriye aplikasyon an, sèvi ak yon liy kòmandman. Mas depois a facilidade de uso compensation. Para criar uma nova aplicação, neste caso a smart_piscina, digitamos ou komandman sa a:
iyonik kòmanse smart_piscina vid
Sera criada uma nova aplikasyon an branco ki pral sove pa gen direksyon:
C:UsuáriosNome fè usuáriosmart_piscina
Para testaman oswa kòd:
cd smart_piscina ionic sèvi
Será aberta uma tela pa gen navigatè padrão montre yon aplikasyon nan branco
Etap 6: Desenvolvimento Do APP – Edição Da Aplicação
Yon edisyon pou aplikasyon an nan plas Ionic pa pral fèt pa Visual Studio Code, aplikasyon gratis nan pwogramasyon desenvolved pou Microsoft e ki pa kapab desann okenn sit: https://code.visualstudio.com/download Os codes alterados são apresentados a follow, mas twò disponib pou telechaje.
Entèfas
Yon koòdone kòm itilizatè a ap edite pa dosye home.html. Note ke as tags itilize sao próprias do Ionic ak kontém Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Page 11
kèk paramèt yo mete lè l sèvi avèk resous yo nan kad angilè. Oswa resous Angular yo itilize pa gen okenn botão de aksyonman nan bonm ak nan antre nan valè Setpoint do PH. Não é possível apresentar o code aqui por uma limitação do Instructables, ke apaga as tags. De qualquer forma is available no file compactado for download.
Pwosesisman
Kòm referans yo bay enfòmasyon yo ekri ak ekriti yo pa Dweet e lógicas em geral para o correto functiono da interface isão no file home.ts desenvolvido em Typescript, liguagem muito semelhante ao Javascript
enpòte { Component } soti nan '@angilè/nwayo'; enpòte { NavController } soti nan 'yonik-angilè';
//É preciso importar o provider. enpòte { DweetProvider } soti nan '../../providers/dweet/dweet';
@Component({ seleksyon: 'paj-lakay', modèlUrl: 'home.html'
})
paj dakèy klas ekspòtasyon {
konstrukteur (navCtrl piblik: NavController, DweetProvider prive: DweetProvider) { }
//Declarações de Variáveis repons piblik Dweet: string="”; piblik status_tratamento: string="danje"; piblik st_trat = 0; piblik status_bomba: string="danje"; piblik st_bba = 0; piblik status_reservatorio: string="danje"; piblik st_res = 0; piblik lokal = Array(); piblik PH_val = 0; piblik SP_PH = 0;
//Model do botão de ligar bomba public bomba_model = {
tcheke: fo, non: "Ligar Bomba"}
ionViewDidLoad () { //buscando os dados no Dweet and salvando na variáies local this.DweetProvider.getLastestDweet(“smart_piscina”).subscribe( data=>{
repons const = (done kòm nenpòt); const objeto_retorno = JSON.parse(response._body); this.locais = objeto_retorno.with[0].kontni; this.bomba_model.checked = objeto_retorno.with[0].content.ligadesliga_bomba; this.st_bba = objeto_retorno.with[0].content.status_bomba; this.st_trat = objeto_retorno.with[0].content.status_tratamento; this.st_res = objeto_retorno.with[0].content.status_reservatorio; this.PH_val = objeto_retorno.with[0].content.PH_valor; this.SP_PH = objeStmo_arret tPoirsncoin.wa iCtho[m0].IcooTn-teIonnti.cP,HD_wseeettpEoinDtr;agonBoard: Paj 12
this.SP_PH = objeto_retorno.with[0].content.PH_setpoint; console.log(this.locais); }, erè => { console.log(erè); } ) //Atualiza icones de Status this.status_bomba = ((this.st_bba == 1) ? “segondè” : “danje”); this.status_tratamento = ((this.st_trat == 1) ? “segondè” : “danje”); this.status_reservatorio = ((this.st_res == 1) ? “segondè” : “danje”); }
//Botão Atualizar update() {
sa a.ionViewDidLoad(); }
//Liga Desliga Bomba liga_des_bomba(){ this.dweetPost() }
atualiza_sp(){ this.dweetPost()
}
dweetPost(){ //Konvèti dados do botão de Boolean para inteiro const ld_bba = ((this.bomba_model.checked == vre) ? 1 : 0);
//Envia dados para o Dweet.io const json_dweet = {“ligadesliga_bomba”: ld_bba, “status_bomba”: this.st_bba, “status_tratamento”: this.st_trat, “status_reservatorio”: this.st_res, “PH_valor”: this.PH_val , “PH_setpo int”: this.SP_PH}; this.DweetProvider.setDweet(“smart_piscina”,json_dweet).subscribe(
done => { console.log (done); }, erè => { console.log (erè); } ) } }
Founisè Dweet
Se yon founisè ki nesesè pou fè yon kominikasyon HTTP ak Dweet. Isto é feito através do Ionic com o next command no prompt de komand:
iyonik jenere founisè dweet
Nan moman sa a se gerado oswa dosye dweet.ts ke devra gen kòmandman referans a konexão com o Dweet e realização das funções de GET e POST. O code necessário é egzibido ak swiv:
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 13
enpòte { Http } soti nan '@angilè/http'; enpòte { Injectable } soti nan '@angilè/nwayo'; enpòte 'rxjs/add/operator/map'; /*
Klas pwodwi pou founisè DweetProvider la. Gade https://angular.io/guide/dependency-injection pou plis enfòmasyon sou founisè ak Angular DI. */ @Injectable () klas ekspòtasyon DweetProvider { baz priveUrl = "https://dweet.io:443/" konstrukteur (http piblik: Http) {
console.log('Bonjou Founisè DweetProvider'); } //Metodo responsável por buscar as information no Dweet. getLastestDweet (bagay: fisèl) {
konst url_get = sa a.bazUrl + "jwenn/dènye/dweet/pou/" + bagay; console.log(url_jwenn); retounen sa a.http.get(url_jwenn); } //Metodo resposnsável pou modifye os dados no Dweet. setDweet(bagay, kò) { return this.http.post(this.baseUrl + “dweet/for/”+ bagay, kò); } }
Pou m, se nesesè yo fè yon modifikasyon pa gen dosye app.module.ts pou ke w ap chèche byen konpozan HTTP pou fonksyone Dweet Provider:
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 14
enpòte { BrowserModule } soti nan '@angular/platform-browser'; enpòte { ErrorHandler, NgModule } soti nan '@angilè/nwayo'; enpòte { IonicApp, IonicErrorHandler, IonicModule } soti nan 'ionic-angilè'; enpòte { SplashScreen } soti nan '@ionic-native/Splash-screen'; enpòte { StatusBar } soti nan '@ionic-native/status-bar'; enpòte { HttpModule } soti nan '@angilè/http'; enpòte { MyApp } soti nan './app.component'; enpòte { HomePage } soti nan '../pages/home/home'; enpòte { DweetProvider } soti nan '../providers/dweet/dweet'; @NgModule({
deklarasyon: [ MyApp, HomePage
], enpòtasyon: [
BrowserModule, IonicModule.forRoot(MyApp), //Enpòte ou modil HTTP itilize pou Dweet. HttpModule ], bootstrap: [IonicApp], entryComponents: [ MyApp, HomePage ], founisè: [ StatusBar, SplashScreen, {provide: ErrorHandler, useClass: IonicErrorHandler}, DweetProvider ] }) klas ekspòtasyon AppModule {}
Ufa!
Salve tudo e teste a application através do command:
iyonik sèvi
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 15
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 16
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 17
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 18
https://www.instructables.com/ORIG/FUH/W6SK/JAMTWKY9/FUHW6SKJAMTWKY9.zip
Telechaje
Etap 7: Colocando Tudo Para Funcionar!!
1.Iniciando o Dweet: No site Dweet.io, crie o object conform descrito no passo 3
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 19
2.Iniciasyon aplikasyon an nan DragonBoard: Abra o Terminal no Linaro, aksè a pasta kote w ap aplike a smart_home.py ak dijite kòmandman:
sudo python smarthome.py
3.Iniziando a aplicação no Ionic: Abra o prompt de komand, acesse a pasta onde is o aplicativo criado no Ionic e digite ou command
iyonik sèvi
https://youtu.be/O27f93xE0bk https://youtu.be/HaSeRf3wkSI https://youtu.be/vx16cLQKOeU
Etap 8:
Smart Piscina Com IoT – Ionic, Dweet E DragonBoard: Paj 20
Dokiman / Resous
![]() |
enstriksyon Smart Piscina Com IoT Ionic Dweet E DragonBoard [pdfEnstriksyon yo Smart Piscina Com IoT Ionic Dweet E DragonBoard, Smart Piscina, Com IoT Ionic Dweet E DragonBoard, Dweet E DragonBoard |