Orodha ya maudhui:

Comunicação IoT Com Jokoni 410C: 5 Hatua
Comunicação IoT Com Jokoni 410C: 5 Hatua

Video: Comunicação IoT Com Jokoni 410C: 5 Hatua

Video: Comunicação IoT Com Jokoni 410C: 5 Hatua
Video: Protocolos em Comunicação IoT - Conceitos básicos 2024, Julai
Anonim
Comunicação IoT Com Joka la 410C
Comunicação IoT Com Joka la 410C

Ast bastante comum desenvolver ou, até mesmo, comprar um produto IOT for a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um ambiente, monitoramento de segurança, entre outros benefícios de equipamentos IoT.

Agora, seria interessante transformar esses alert as das "coisas" da sua casa, em solicitações de serviço, e ainda melhor, em serviços que você conhece e que já está acostumado. O comerciante "zé da água" ina maana ya soko kuu la soko kuu kwa kutoa pesa kwa sababu ya mkutano kwa njia ya kupigia kura kwa njia ya msingi.

Para que você use serviços como o do seu 'Zé da água', que você semper confiou, será mostrado como montar a base de uma plataforma IOT com a dragonboard, para resolutionver essa comunicação.

Hatua ya 1: Andaa Sua Joni 410C

Andaa Sua Dragonboard 410C
Andaa Sua Dragonboard 410C

Neste passo vamos prepara a nossa Drabonboard 410C for se tornar o gateway of nossa estrutura IoT dentro da sua casa.

Primeiramente, mamos instalar um sistema operacional na placa. Caso você opte for utilizar localização GPS, que on a inco not do not time of de registro, sugerimos que insta o sistema operacional Linaro 17.04.1, caso contrário, veja as opções de na página da Dragonboard 410C da 96boards, kiunga cha kiungo.

Após a instalação do seu sistema operacional, instale a biblioteca libmraa para a utilização das GPIOs, da Dragonboard 410C. Para isso, você deve seguir os passos abaixo (abra o console do seu sistema operacional para executar os comandos):

Pré requisitos libmraa

  • Sudo apt-pata sasisho
  • sudo apt-cache tafuta pcre
  • Sudo apt-get kufunga libpcre3-dev
  • Sudo apt-get kufunga git
  • sudo apt-kupata kufunga cmake
  • Sudo apt-get kufunga python-dev
  • Sudo apt-get kufunga swig

Instalação mraa

  • kipenzi cha git git
  • sudo mkdir mraa / jenga && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = IMEZIMWA
  • Sudo kufanya
  • Sudo kufanya kufunga

Para utumiaji wa biblioteca com Chatu, ikiwa ni pamoja na sababu inayofaa kufundishwa, unaweza kutumia kusafirisha nje kwa nambari yako kwa Python kwa biblioteca. Kwa hivyo, tumia mhariri wa maandishi yanayopendelea kwa sababu ya kusoma na kupitiliza, kutumia VIM:

  • Sudo vim ~ /.bashrc
  • waandishi wa habari teclar i, para iniciar a edição do arquivo
  • ongeza jina la mwisho bila mwisho: toa PYTHONPATH = $ PYTHONPATH: $ (jina la jina $ (tafuta / usr / jina-la ndani mraa.py))
  • waandishi wa habari ESC para sair da edição do arquivo e digite ': x!' e ingiza para salvar e sair do arquivo.

Com isso já conseguimos utilizar a biblioteca mraa com Pyhton.

Agora, mamos instalar os softwares for facilitit a leitura do GPS (lembrnado que para a utilização dessa parte, recomendamos o uso do sistema operacional Linaro 17.04.1). Hakuna kiunganishi chochote, fanya kazi yako kama hii:

Sudo apt-get install gnss-gpsd gpsd gpsd-wateja

Para testar, execute o código abaixo, também no seu console:

gpsmon -n

OBS: Antena interna da Drabonboard é para ser utilizada fora deases in em locais mais abertos. Até mesmo em locais abertos, a leitura pode demorar de 5 a 10 minut, então não fique preocupado se não exibir as informações prontamente.

Pensando no projeto, com certeza iremos encapsular o (s) hardware (s) num kesi, na hakuna orodha ya kesi, kesi hii itatolewa kwa uma casa ou apartamento. Utatuzi wa aya, podemos utumiaji wa antena nje, unaweza kutumia wi-fi, kwa njia ya GPS.

OBS: Taasisi ya kufanya kazi nje ya mfumo huu inafanya kazi kwa urahisi kwa sababu ya maelezo ya kawaida ya SMD, portanto, na kupata huduma maalum.

Kwa kufanya hivyo, ubadilishe anwani za ndani kwa njia ya nje, ili kuhakikisha kwamba mfumo wa Qualcomm hautumiwi kiunga cha hati.

OBS: ito muito inaweza kuwa sehemu ya vifaa vya (capacitores, resistores na indutores) na mtandao unaweza kufanya hivyo. Onda kwa antenna, ikiwa ni pamoja na orodha ya tovuti hakuna SmartCore.

Bado mlango wa mlango kwa njia inayofaa kutegemea uma usanidi wa wifi, wavuti, matumizi ya vifaa vya GSM. Os módulos GSM externos, geralmente needitam de uma tensão estável e específica, então mamos criar uma saída de alimentação diretamente da entrada de alimentação da Dragonboard 410C.

Kwa picha ya hatua inayofaa, hatua kwa hatua ni pamoja na matumizi ya huduma kwa wafanyikazi wa biashara kwa kampuni ya GSM (ATENÇÃO COM A POLARIDADE).

Kwa kufanya hivyo, unaweza kutumia mfumo wa MQTT, na ufafanuzi wa Joka la 410C. Vamos kufunga programu ya Mbu kwa ajili ya kuchomoa nafasi yako kwa broker mqtt, com to execução da linha abaixo no seu console:

Sudo apt-get kufunga mbu

Programu mpya ni programu ya kufunga na kusanikisha.

Para definir a sua Dragonboard 410C como um hotspot, siga os passos:

  • Clique no icone de redes no canto duni diito
  • Clique em 'Hariri miunganisho'
  • Apros arir a tela 'Mtandao uhusiano', bonyeza 'Ongeza'
  • Chagua mtandao wa Wi-fi, na ujumuishe 'Unda'
  • Tunataka kuweka mipangilio ya kusanidi upya, ili utumie SSID
  • Na mesma tela mude kwa 'Hotspot' no campo 'Mode'
  • Caso queira inaleta uma senha kwa kufanya upya, sanidi na 'Usalama wa Wi-fi'
  • Para finalizar clique em 'Okoa'

Agora qualquer dispositivo pode se conectar à rede exclusiva da Dragonboard 410C, na utatumia broker yako kwa umma na subscrever.

Com estes Prepos acima, estamos prontos para seguir com o desenvolvimento.

Hatua ya 2: Andaa Sua Cloud API

Este passo é algo que depende muito de projeto para projeto. Njia maalum ya kufanya hivyo si sawa, au wingu itapatikana kwa mahitaji ya API, na unaweza kupata API ya matumizi.

Vamos descrever um passo a passo for iniciar uma API básica, menos pelo kwa o teste deste deste inayoweza kufundishwa. Caso queira seguir um tutorial if you may completo, sugiro ver o artigo deste link. Em todo caso, sugiro desenvolver algo mais estruturado, caso a finalidade do projeto seja comercial.

Primeiramente, precisamos de um lugar para colocarmos a nossa API, na para termos gastos com estes testes, ni programu ya matumizi ya Heroku. Siga os passos para iniciar a sua aplicação:

  • Acesse tovuti ya Heroku, kwa kiungo hiki
  • Clique em 'Sign Up', no canto superior dieito, para iniciar o seu registro
  • Apros registro, em sua dashibodi, bonyeza 'Mpya' na upewe nafasi ya 'Unda Programu Mpya'
  • Insira um nome para a sua aplicação
  • Em seguida, bonyeza 'Unda App'
  • Programu hii ni ya kwanza, inaongoza kwa kujifurahisha kwenye 'Open App', hakuna njia bora zaidi
  • Instant o Heroku Cli, para fazer os deploys for a sua aplicação, seguindo a instrução para seu sistema operacional, de acordo com a documentação deste link
  • Agora você deverá seguir as instruções de deploy for começar o desenvolvimento da sua API, kutolewa kwa

Kwa mfano, unaweza kupitisha barua, na uundaji wa tambi na barua pepe, kwa desenvolver ya API ya Sua. Agora vamos instalar o NodeJS na mfumo wa Express, unaweza kuona kama unajua:

  • curl -sL https://deb.nodesource.com/setup_11.x | Sudo -E bash -
  • Sudo apt-get install -y nodejs
  • Sudo apt-get kufunga npm
  • Kutumia mfumo huu wa utumiaji wa Linux kwa kutumia zana ya Ufungaji wa hali ya juu (APT), au huduma kubwa ya mawasiliano, wasiliana na kiungo
  • Agora kutekeleza npm install express-generator -g
  • Acesse o diretório que foi realizado os procedimentos da aplicação da Heroku com 'cd _PASTA_SEU_APP_'
  • Inicie nodi ya aplicação com 'npm init', na os outros comandos abaixo
  • cd../
  • eleza _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm kufunga

Para destrong dois endpoints maandalizi, ambayo yatatolewa kwa POST, kwa sababu hii:

  • Acesse njia za tambi
  • abra o arquivo 'index.js'
  • Inclua o trecho de código abaixo, ikiwa ni pamoja na kutambuliwa kama sehemu moja kwa moja inayoweza kutumika kwa ajili ya kazi (GET na POST):

router.get ('/', function (req, res, next) {res.setHeader ('Content-Type', 'application / json'); res.send (JSON.stringify ({msg: 'Hello API'), null, 3));}); router.post ('/', kazi (req, res, ijayo) {var msg = 'tupu'; req.body.msg; res.setHeader ('Content-Type', 'application / json'); res.send (JSON.stringify ({msg: msg}, null, 3));});

Agora utambue kuwa unapeleka programu kwa Heroku:

  • kuingia kwa heroku
  • kuongeza.
  • git commit -am "ahadi ya kwanza"
  • git kushinikiza bwana wa heroku

Com ni neno la mwisho la mwisho wa majaribio ya prontos. Para testar os endpoints sugerimos instalar or software Postman, kiungo cha kiungo. Ingiza programu ya url ya seu (Ex: https://_SEU_APP_.herokuapp.com/) na uchague njia ya kupata POST, na ujumuishe 'TUMA'. Para o método POST, siga os passos:

  • Clique na aba 'Mwili'
  • Chagua opção 'x-www-form-urlencoded
  • Insira o ufunguo 'msg'
  • Em Thamani, pode inserir qualquer mensagem

Com essas instruções temos a nossa API of testes pronta para o uso.

Hatua ya 3: Instalando E Manipulando O Modulo GSM

Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM

Ili kutegemea hali ya Wifi, utumie huduma kwa kutumia GSM kwa kutumia abrir caminho de dados kwa matumizi ya API ya nossa, usanidi bila hatua mbele.

On aconselhável a utilização de modulos GSM homologados, mas para os testes do nosso protótipo iremos utilizar um módulo simples na que atende a nossa demanda do momento, o modulo SIM800L. Mfumo huu hufanya kazi kwa njia ya upigaji kura na kusambaza maandishi, ili uweze kuhitimu masomo yako, ili tuweze kutoa tovuti hii bila kufanya kazi.

Vamos às conexões físicas, entre o modulo GSM na nossa Dragonboard 410C.

Como mencionado hakuna hatua 'Andaa sua Dragonboard', teremos que mara kwa mara tensão para utilizar o modulo. Para isso utilizaremos um regulador de tensão down down, para diminuir a tensão de entada. Utilizamos o Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, para este teste

Siga os passos abaixo para realizar as conexões físicas:

  • Conecte a saída positiva da Dragonboard, como ilustrado no hatua 'Andaa sua Jukwaa', na kuungana na kuingia 'IN +' kufanya udhibiti wa tensão
  • Conecte a saída negativa da Dragonboard, como ilustrado no step 'Tayarisha sua Jukwaa', na kuungana na kuingia 'IN -' do regulador de tensão
  • UMUHIMU: Ligue ya Jukwaa la Mto, na udhibiti wa hali ya juu ya utaftaji, udhibiti wa trimpot kwa kila kitu (OUT + e OUT -) tenha 4.2V. Siga adiante apenas se a saída estiver com esse ushujaa. Caso seja utilizado outro modulo GSM, ithibitishe idadi ya watu. Haya ni mara ya pili ya kurudia kurudia, kuuliza ikiwa ni pamoja na vifaa vya umati, kwa sababu hiyo inajumuisha.
  • Conecte a saída do regulador de tensão 'OUT +' no pino VCC, ishara ya picha ya capa deste step
  • Conecte a saída do regulador de tensão 'OUT -' no pino GND, ishara ya picha ya capa deste step
  • Conecte o pino RXD do modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas picha picha capa deste step
  • Conecte o pino TXD do modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas picha de capa deste step
  • Conecte o pino GND do modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas picha de capa deste step. Isto ni kifedha kwa kuanzisha taasisi ya RX TX

OBS: Não se esqueça de conectar uma antena no modulo GSM, pelos pinos NET ou IPX ANT, ishara na picha za capa deste hatua.

Programu ya Agora vamos ao. Vamos hutumia biblioteca mraa que instalamos anteriormente, para realizar a comunicação serial entre o modulo GSM na Dragonboard 410C.

Siga os passos for importar a biblioteca na testar a comunicação com o módulo:

  • Crie um arquivo com a extensão.py, como sugestão 'gsm.py'
  • Hakuna arquivo, inicie importando a biblioteca mrra, e também a biblioteca time for definir delay

kuagiza mraa

Defina uma variável para o caminho da UART que conectamos o modulo GSM

bandari = '/ dev / tty96B0'

Instancie UART com ajuda da biblioteca mraa

uart = mraa. Uart (bandari)

Crie uma função kwa enviar kwa os comando AT kwa moduli ya GSM

andika maandishi (msg):

andika (bytearray (str (msg) + '\ n', 'utf-8'))

Crie um loop for fazer a leitura do modulo GSM

wakati Kweli: r = uart. soma (128) ikiwa r!

  • Salve o arquivo na volte para o console
  • Tekeleza o arquivo

chatu gsm.py

Digite 'AT', na hivyo tudo conectado corretamente, ili kupata mpokeaji na kusema mensgem 'OK'

Tutaweza kusoma habari hizi kwa kutumia idadi ya vifaa vya simu kwenye - viunga vya kiungo - huduma za huduma, ikiwa utatambua hali ya APN na itatumia API ya NSA.

Primeira função será de conexão:

def unganisha ():

muda. lala (0.5) andika ("AT") saa. lala (0.5) andika ('AT + CREG = 1') saa. lala (0.5) andika (saa 'AT + COPS = 2'). lala (0.5) andika ('AT + SAPBR = 3, 1, "Contype", "GPRS"') muda. lala (0.5) andika ('AT + SAPBR = 3, 1, "APN", "*****"') lala (0.5) andika ('AT + SAPBR = 3, 1, "USER", "*****"') muda.lala (0.5) andika ('AT + SAPBR = 3, 1, "PWD", "" 6)

Wakati huo huo tunapanda safari hii kwa kutumia vifaa vya utumiaji. Segue algumas observações sobre estes comandos:

  • Kama ufafanuzi wa hali ya juu ya kufanya kazi kwenye COPS, itatumika kwa kuchagua moja ya sua, kwanza utekeleze AT + COPS =?, Kwa sababu hiyo itafanywa upya kama sehemu ya redio, kwa sababu ya uweza na uunganisho wa (… apoos comando AT_COPS =?
  • Ofisi ya ufafanuzi ya APN ni pamoja na kadi ya SIM ya kufanya kazi kwa kadi ya SIM, kupata huduma kwa wahusika kwa sababu ya mpango wa APN, na kufanya hivyo.
  • Tengeneza kada

Agora vamos kutekeleza a função que irá enviar hutumia API ya nossa:

tuma kutuma (p, m, d = ):

andika ('AT + HTTPINIT') wakati. lala (0.5) andika ('AT + HTTPSSL = 1') saa. lala (0.5) andika ('AT + HTTPPARA = "CID", 1') muda. lala (0.5) andika ('AT + HTTPPARA = "URL", "_URL_APP_HEROKU _ /' + p + '" "time. lala (0.5) andika (' AT + HTTPPARA =" USERDATA "," Authorization: mbebaji ******** ********* " = "YALIYOMO", "application / x-www-form-urlencoded" ') wakati.lala (0.5) andika (' AT + HTTPDATA = '+ str (len (d)) +', 10000 ') time. 0.5) andika (str (t)) muda. Lala (10) andika ('AT + HTTPACTION = 1') saa. Lala (6) andika ('AT +

Segue algumas observações para estes comandos:

  • Furahisha ya kupokea 3 parameter. 'p' para o path que será executado da sua API, 'm' para of the método que você to do the sua api (GET / POST /…), e 'd' para os dados enviados em caso do método não for GET for GET
  • O comando 'AT + HTTPS' ni ya hiari, hakuna njia yoyote ya kutumia SSL
  • O argumento 'm' deverá ser enviado no formato querystring (Ex: msg = ola + dragonboard & arg2 = teste &…)
  • O comando 'AT + HTTPPARA = "USERDATA…' ni chaguo, apenas zinaweza kutekelezwa kwa kichwa cha habari bila ombi

Mais uma vez sugiro rodar cada comando, individualitye in em ordem, antes da utilização.

Antes de adquirir seu SIM Card, wasiliana na operesheni ya kufanya kazi kwa njia ya simu kwa njia ya simu ya GSM kwa kutumia vifaa vya kutolea huduma, kutumia vifaa vya SIM kadi ya huduma kwa vifaa maalum kwa ajili ya IoT, kwa ajili ya kufanya hivyo, kutiliana mkazo.

Kuja kama usanidi na kutekeleza acima, estamos prontos para nos comunicarmos com a nuvem através da nossa Dragonboard 410C.

Hatua ya 4: Preparando Dispositivos Para Se Comunicar Com Dragonboard

Preparando Dispositivos Para Se Comunicar Com Joka
Preparando Dispositivos Para Se Comunicar Com Joka

Neste passo, iremos hutumia nafasi ya prototipagem NODEMCU ESP8266 ESP-12, como exemplo. Esta e qualification outra placa de prototipagem, como o nome já diz, étima para protótipos, mas no momento em que o vifaa kwa ajili ya ufafanuzi wa bidhaa, kufanya kazi ya utaftaji habari. Ni rahisi kutumia WiFi, kwa kutumia njia rahisi ya kufanya kazi.

Para nos comunicarmos com a nossa Dragonboard 410C, precisamos de 2 bibliotecas:

  • ESP8266WiFi> biblioteca para ativar a conexão da placa
  • PubSubClient> biblioteca para realizar a comunicação com o broker MQTT

Defina como variáveis globais, kama inavyofafanuliwa kwa red-Wi-fi na broker, ambos da nossa Dragonboard 410C:

  • const char * SSID = "_REDE_DRAGONBOARD_"; // Nome da rede definida como Hotspot na Joka
  • const char * PASSWORD = ""; // Insira ya ushujaa wa hali ya juu ya kufanya ufafanuzi wa usanidi wa Hotspot
  • const char * BROKER = "_IP_DRAGONBOARD_"; // Tekeleza 'ip a' na sua Dragonboard kwa descobrir o ip da rede interna

Crie o obeto de rede Wi-fi da placa na instancie ya mteja MQTT ni hii:

  • Wateja wa WiFi espWIFI;
  • PubSubClient MQTT (espWIFI);

Kuweka mipangilio ya kuanzisha, kuweka WIFI ya kiini na mfumo wa MQTT:

  • Anza WiFi (SSID, HABARI);
  • MQTT.setServer (BROKER, 1883);
  • MQTT.setCallback (kupiga simu_mqtt); // Caso você faça jiunge na algum tópico

Hakuna habari ya kitanzi, inayotumiwa kwa kutumia MQTT ndani ya kitanzi:

MQTT. Kitanzi ();

Você pode criar uma função de verificação de conexão de WIFI na kufanya broker, kwa sababu ya shida za kuingiliana. Para isso crie um função com as linhas abaixo, na chame-a na função de kitanzi:

miunganisho batili ya kuangalia () {

ikiwa (! MQTT. imeunganishwa ()) wakati (! MQTT. imeunganishwa ());

ikiwa (WiFi.status ()! = WL_CONNECTED) {WiFi.begin (SSID, PASSWORD); wakati (WiFi.status ()! = WL_CONNECTED);}

}

Mwisho wa mwisho, tunapeana alama kwa njia ya Drabonboard 410C, na wewe utumie maoni yako:

MQTT.chapisha ('_ NOME_DO_TOPICO_', "Ola Dragonboard");

Tunaweza kupata maoni yako kwa mfano wa mfano wa maandishi na kadhalika, ni njia tofauti za kufanya kazi kwa vifaa vya vifaa. Basta incluir ni moja ya mahitaji ya lazima, ikiwa ni pamoja na madaraka ya huduma kwa broker mmoja.

Voltando para a Dragonboard410C, mamos criar um arquivo teste em python, para checarmos os dados recebidos pelo broker, ant ant, vamos instalar uma biblioteca que nos auxiliará na conexão do broker. Para isso execute as linhas abaixo no console da Dragonboard 410C:

  • Sudo apt-get kufunga python pip
  • bomba funga paho-mqtt

Agora vamos analia um arquivo chatu com o nome, mfano wa como, mqtt.py. Nele vamos definir algumas funções que serão explicadas a seguir:

kuagiza paho.mqtt.client kama mqttimport sys

Dalali = "_IP_DRAGONBOARD_" bandari = muda wa 1883 = Mada 60Subscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

def onConnect (mteja, userdata, bendera, rc): mteja.jisajili (TopicSubscribe)

def onMessage (mteja, userdata, msg): message = str (msg.payload) chapisha (message)

jaribu: mteja = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () isipokuwa: sys.exit (0)

Neste arquivo vamos definimos duas funções, a 'onConnect' que será chamada no momento on the quices to conexão com o broker, and a função 'onMessage' que hout hout mensagem recebida nos subscribes definidos na função 'onConnect'.

Fanya kazi yako kwa njia ya 'chatu mqtt.py', na kama njia inayofahamika kama sehemu ya habari inayotokana na mafanikio, utapata habari kwa njia hiyo ikiwa nje ya uwanja, hakuna mfano wa mfano, sio NODEMCU.

Kumbuka kuwa tunafurahi juu ya Ujumbe, ikiwa ni pamoja na kupokea taarifa kwa maelezo na daftari. Então é neste ponto que você tratará os dados recebidos e no momento certo, enviará via GSM for a sua API, pela função 'send' to seu arquivo de teste gsm.py, que criamos no passo 'Instalando e manipulando o modulo GSM'.

Kuangalia muhimu: Para realizar a alimentação da placa NODEMCU ESP8266 ESP-12, em especifico, sugiro que consultem o documento deste link. Muito cuidado ni muda mfupi tu, hii ni rahisi kufanya kazi kwa njia inayofaa kwa mahali, kwa sababu hiyo ni muhimu kupata taarifa kwa sababu hii inahusu troca haraka.

Hatua ya 5: Considerações Finais

Se estiver tudo configurado como dissitos nos hatua anteriores, você já está comunicando o seu dispositivo Io com com mundo, com auxilio da sua Dragonboard 410C.. Huduma zote za tovuti zinatekelezwa kwa kutumia huduma za nje, ambazo zinaweza kutekelezwa kwa kutumia Cloud Cloud, vifaa vya vifaa kwenye Jukwaa, na kufanya mkutano wa kwanza kwa wahusika wote, kwa sababu wataalam wanastahili kutekeleza mpango huo.. Para definir como produto final, sugerimos apĺicar as tecnologias e procedimentos adequados para tal

Onda programu na maombi kwa wahusika, kwa sababu ya kufanya mazungumzo kwa njia inayofaa, kufanya kazi kwa urahisi, kufanya mipango ya API ya SUMU, na kutumia mipango ya matumizi.

Ilipendekeza: