domingo, 25 de agosto de 2024

L610 - PROGRAMANDO OpenCPU LUA - LUATOS

 

LuatOS é um sistema operacional leve e eficiente projetado para dispositivos IoT (Internet das Coisas). Ele utiliza a linguagem de programação Lua, que é conhecida por sua simplicidade e flexibilidade. LuatOS facilita o desenvolvimento de aplicações para dispositivos IoT, permitindo a execução de scripts Lua diretamente no hardware (OPENCPU).

BETA
Em teste, precisamos de alguém que participe desta opção OPENCPU com LUA
BETA

Construção de ambiente de desenvolvimento 

Como o LuatOS é usado para desenvolvimento, deve haver um bom ambiente EDITOR ?

Sim, existe. Aqui, recomendo usar o editor de código Visual Studio Code (vscode) da Microsoft para escrever código

Instale o vscode 

Abra o site oficial do vscode: https://code.visualstudio.com/

Clique no grande Download for xxxxxx para baixar o software

Depois de abrir o pacote de instalação, você precisa prestar atenção ao verificar duas das opções (a imagem também está em inglês):

  • Adicione a ação Abrir via código ao menu de contexto de arquivo do Windows Explorer

  • Adicione a ação Abrir via Código ao menu de contexto do catálogo do Windows Explorer

instalação do vscode

Basta abri-lo após o carregamento. 

Expansão da instalação recomendada 

Clique no botão de Extensions à esquerda, pesquise LuatOS-SOC recommend expansion, identifique o autor e clique Install para instalar.

complemento vscode

Após o carregamento, clique em “Don't Change Language and Restart” no canto inferior direito para se tornar inglês.

redefinição de vscode

Altere a configuração padrão 

Na página normal, pressione a tecla de atalho para abrir a página de configuraçõesCtrl ,(comma)

Clique no ícone no canto superior direitoOpen Settings (json)

configuração vscode json

Substitua o conteúdo do arquivo pelos seguintes dados e salve-o (se você já tiver algo, adicione você mesmo o item que falta no final)

{
    "editor.fontFamily": "Consolas, 'Microsoft Yahei UI Light','Courier New', monospace",
    "editor.renderLineHighlight": "all",
    "editor.emptySelectionClipboard": false,
    "files.autoGuessEncoding": true,
    "files.insertFinalNewline": true,
    "files.trimTrailingWhitespace": true,
    "editor.bracketPairColorization.enabled": true,
    "editor.guides.bracketPairs":"active",
    "luahelper.base.showOnline": false
}

Novo/editar item existente 

Quando recomendado escrever o código , cada projeto cria uma nova pasta.

Ao abrir o projeto, recomenda-se clicar com o botão direito e selecionar para que o plug-in rode perfeitamente. Open by Using Code

pasta aberta vscode

Lembrete especial: se você encontrar as dicas a seguir, siga a descrição da imagem para operar, caso contrário a instalação da expansão não será executada

Analisando gramática
Gravação em série
Preparativos:
  • Um cabo USB para uma porta tipo C
  • Um computador com sistema Windows (recomendamos Win10 ou superior)
Configuração da ferramenta 

Primeiro baixe a versão mais recente do Luatools: 
https://cdn.openluat-luatcommunity.openluat.com/attachment/20220322155937049_Luatools_v2.7z
Recomenda-se criar uma nova pasta Luatools, colocar o arquivo exe nela e, em seguida, abrir o arquivo.


O mesmo já vai atualizar a versão do LUATOOLS e PAC existentes, não autorize ainda


Grave o LUA abaixo no L610 (PAC)

luatos_rda8910_v0005.7z


BOOT_CFG + RESET  no STARTER KIT

Execute o LUATOOLS


Gravar script 

Clique no botão e clique no canto inferior esquerdo para criar um novo projetoProject Management TestCreate Project

Selecione o firmware utilizado pelo chip e selecione o script para baixá-lo.

SCRIPT

Script de classe demo, pode ir para o repositório oficial do LuatOS , pode ser encontrado na pasta demo. Se a versão do firmware atualmente gravada pelo chip for a mesma do firmware selecionado aqui, você pode clicar em “Download Script” para baixar apenas o script. Pelo contrário, é recomendado clicar em “Download the core and the Scripts” para realizar a "escovação" completa.

Vá em "Manage and Debug" no LUATOOLS



Em "Select the CORE file", selecione temporariamente para o arquivo PAC (se encontra aqui), para que habilite a entrada dos Scripts

Abra o Script da pasta Hi (Demo), main.lua e adicione sys.lua

-- LuaTools需要PROJECT和VERSION这两个信息 PROJECT = "helloworld" VERSION = "1.0.0" -- 引入必要的库文件(lua编写), 内部库不需要require sys = require("sys") log.info("main", "hello world") print(_VERSION) sys.timerLoopStart(function() print("hi, LuatOS") print("mem.lua", rtos.meminfo()) print("mem.sys", rtos.meminfo("sys")) end, 3000) -- 用户代码已结束--------------------------------------------- -- 结尾总是这一句 sys.run() -- sys.run()之后后面不要加任何语句!!!!!








Click em Grammar Check e então Generate Product Files


Aponte agora em "Select the CORE file" para último arquivo gerado na pasta "4G production files" (dentro da pasta onde se encontra LUATOOLS).

Seleciona a opção (a primeira vez) "Download the core and scripts"

                                                                            
BOOT_CFG + RESET  no STARTER KIT

Na próxima vez, apenas podes clicar em "Download only script"

Apenas envio do SCRIPT :)

Debug

Baixe aqui vários Scripts para o L610


├───adc
├───alarm
├───aLiYun
│   ├───MQTT-TCP直连
│   │   ├───企业版实例
│   │   │   ├───一型一密预注册
│   │   │   └───一机一密
│   │   └───公共实例
│   │       ├───一型一密
│   │       └───一机一密
│   ├───比较老的连接方式,仅用于华东2节点,其他地域不能使用;已经不推荐使用,建议使用MQTT-TCP直连
│   └───阿里云微消息队列MQTT
│       └───MICRO_MESSAGE_MQTT
├───audio
├───audioParam
│   └───使用说明
├───bluetooth
├───call
├───camera
├───console
├───CPU温度
├───crypto
├───ctwing
├───formatString
├───fs
├───ftp
├───gpio
│   ├───gpioSingle
│   └───uartGpioSwitch
├───gps
│   ├───Air820
│   │   ├───中科微
│   │   ├───和芯星通
│   │   └───自适应
│   └───Air模块外接GPS模块
│       ├───510U
│       ├───530H
│       ├───530Z
│       ├───551G
│       ├───Air530_Air512G
│       ├───other
│       └───自适应
├───headset
├───http
├───huaWeiYun
├───i2c
├───json
├───keypad
├───lbsLoc
├───lvgl
│   ├───6.0
│   └───7.0
├───modbus
├───MODBUS_SLAVE
├───mqtt
│   └───sync
│       └───sendWaitRecv
├───mqtt全双工对讲
├───msc
├───ntp
├───nvm
├───onenet_studio
├───pb
├───peripheral
│   ├───ADC模数转换
│   │   ├───ADS1115
│   │   └───HX711
│   ├───DAC数模转换
│   │   └───MCP4725
│   ├───ESP8266
│   │   └───longConnection
│   ├───GPIO扩展模块
│   │   ├───MCP23008
│   │   └───MCP23017
│   ├───SPI转CAN MCP2515_SIT2515
│   │   └───spi
│   ├───SPI转以太网
│   │   └───CH395
│   │       ├───http
│   │       ├───mqtt
│   │       │   └───sync
│   │       │       └───sendWaitRecv
│   │       ├───server
│   │       ├───socket
│   │       │   ├───async
│   │       │   │   └───asyncSocket
│   │       │   └───sync
│   │       │       └───longConnection
│   │       ├───update
│   │       └───以太网模式切换4G模式
│   │           └───socket
│   ├───二氧化碳传感器CO2
│   │   └───CCS811
│   ├───光照传感器
│   │   ├───BH1750
│   │   ├───CJMCU3001
│   │   ├───TCS34725
│   │   ├───TSL2561
│   │   └───光敏电阻
│   │       └───GM5528
│   ├───数码管驱动
│   │   ├───lcd_1621
│   │   ├───TM1637
│   │   ├───TM1638
│   │   ├───TM1650
│   │   └───ws2801
│   ├───气压传感器
│   │   ├───BME280
│   │   ├───BME680
│   │   ├───BMP180
│   │   └───BMP280
│   ├───温湿度传感器
│   │   ├───AHT10
│   │   ├───AM2320
│   │   ├───DHT11
│   │   ├───DS18B20
│   │   ├───HDC1000
│   │   ├───HDC1080
│   │   ├───HDC2080
│   │   ├───LM75B
│   │   ├───LM92
│   │   ├───SHT20
│   │   ├───SHT30
│   │   └───SI7021
│   ├───电子罗盘
│   │   └───HMC5883L
│   ├───触摸屏
│   │   └───GT911
│   ├───重力加速度
│   │   ├───ADXL345
│   │   ├───ADXL346
│   │   ├───BMA250
│   │   ├───DA213B
│   │   ├───GY271
│   │   ├───KXTJ2-1009
│   │   ├───KXTJ3-1057
│   │   ├───L3G4200D
│   │   ├───LIS2DH12TR
│   │   ├───MC3416
│   │   ├───MPU6XXX
│   │   └───SC7A20
│   └───高精度时钟模块
│       ├───DS3231
│       └───PCF8563T
├───pm
├───protoBuffer2
│   ├───complex
│   └───simple
├───protoBuffer3
│   ├───extra_file
│   ├───proto_exe
│   └───scripts
├───pwm呼吸灯
├───qrcode
├───qspi
├───record
├───rtk
│   ├───qxrtk
│   └───xyrtk
├───rtmp
├───sdCard
├───simId
├───sms
├───socket
│   ├───async
│   │   ├───asyncSocket
│   │   └───asyncSocketCallback
│   └───sync
│       └───sendWaitRecv
│           ├───longConnection
│           ├───longConnectionTransparent
│           ├───shortConnection
│           └───shortConnectionFlymode
├───socketSsl
│   ├───longConnection
│   ├───shortConnection
│   └───shortConnectionFlymode
├───softdog
├───spi
├───spiFlash
├───timeSync
├───txiot
├───uart
├───ui
├───update
│   └───LuatIotServer
├───usbdata
├───websocket
├───wifi
├───zip
└───全双工对讲

Referências (Sites Chineses)

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br