收藏官网首页
查看: 2822|回复: 1

[求助] Shineblink开发板怎么创建main.lua

69

主题

69

帖子

1478

积分

金牌会员

Rank: 6Rank: 6

积分
1478
跳转到指定楼层
楼主
 楼主| 发表于 2022-12-8 08:43:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
Shineblink开发板怎么创建main.lua


沙发
发表于 2022-12-8 08:43:45 | 只看该作者
本帖最后由 Cherry007 于 2022-12-8 09:03 编辑

可以用notepad创建文本文档,重命名为main.lua


  1. --LIB_WatchDogConfig("10S")--看门狗
  2. LIB_SystemLogEnable()        --日志

  3. --机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS
  4. PK = "bf4e8824edbb4ada934c6ca4c8d30eb1"
  5. PS = "f32f10d34fcd4a4784a8de13dc2ee01b"
  6. --初始化4G模块
  7. LIB_Giz4GConfig(PK,PS,6000,0,"UART0","D5","HIGH","D6","HIGH")

  8. --初始化继电器GPIO
  9. LIB_GpioOutputConfig("D4","STANDARD")
  10. --默认继电器为关闭状态
  11. LIB_GpioWrite("D4",0)

  12. --人体感应初始化
  13. LIB_GpioInputConfig("D7","NOPULL")

  14. --设置sht3x传感器占用SCL0和SDA0引脚,并启动传感器以每秒出10个数据的频率工作,repeatability="HIGH"时精度最高
  15. LIB_Sht3xConfig("IIC0","10","HIGH")
  16. --设置0.96寸oled模块占用SCL1和SDA1引脚
  17. LIB_0_96_OledConfig("IIC1")

  18. --初始化D8引脚,黄灯
  19. LIB_GpioOutputConfig("D8","STANDARD")
  20. --初始化D9引脚,绿灯
  21. LIB_GpioOutputConfig("D9","STANDARD")
  22. --设置按键"BTN1"(占用D10口)以低电平有效的方式检测按键动作
  23. LIB_ButtonConfig("BTN1","D10","L")
  24. --设置按键"BTN1"(占用D11口)以低电平有效的方式检测按键动作
  25. LIB_ButtonConfig("BTN2","D11","L")

  26. --配置A0-A3这四个通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10ms
  27. LIB_ADConfig(50,10000)
  28. AD0=0.0
  29. AD1=0.0

  30. --配置D0口为PWM功能,参数370表示PWM的周期为370us,参数1表示高电平有效
  31. LIB_PwmConfig1(370,1)
  32. --更新D0口的PWM输出占空比为0
  33. LIB_PwmUpdate1(0)
  34. cnt = 0

  35. --继电器
  36. function Relay()
  37.         --查询机智云是否下发了写"Sw3"开关量数据点的动作
  38.         flag,recv_data = LIB_RecvFromGizCloud("Sw3")
  39.         if flag == 1 then
  40.                 if recv_data == 1 then -- 云下发了1
  41.                         LIB_GpioWrite("D4",1)--继电器打开
  42.                 else -- 云下发了0
  43.                         LIB_GpioWrite("D4",0)--继电器关闭
  44.                 end
  45.         end
  46. end

  47. --人体感应
  48. function Human_Body_Induction()
  49.         --读取人体感应输入引脚的电平值
  50.     Alarm = LIB_GpioRead("D7")
  51.     --根据传感器状态上报云端
  52.     if Alarm == 1 then
  53.         --上传云端感应到人体
  54.         LIB_SendToGizCloud("In1", Alarm)
  55.     elseif Alarm == 0 then
  56.         --上传云端未感应到人体
  57.         LIB_SendToGizCloud("In1", Alarm)
  58.     end
  59. end

  60. --温湿度采集
  61. function Read_TempAndHumi()
  62.         --查询sht3x传感器是否出数
  63.     sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult()
  64.     --如果传感器有新的温湿度数据产生
  65.     if sht3x_flag == 1 then
  66.         --在oled的第一行和第二行分别显示温度(摄氏度)和湿度(百分比)
  67.         LIB_0_96_OledPuts("1","1",string.format("temprature: %.2f", sht3x_temp))
  68.         LIB_0_96_OledPuts("2","1",string.format("humidity: %.2f", sht3x_humi))
  69.                 --向机智云发送温度和湿度数据
  70.         LIB_SendToGizCloud("Rf3", sht3x_temp)
  71.         LIB_SendToGizCloud("Rf4", sht3x_humi)
  72.     end
  73. end

  74. --按键,LED
  75. function LED_KEY()
  76.         --查询机智云是否下发了写"Sw1"开关量数据点的动作
  77.         flag,recv_data = LIB_RecvFromGizCloud("Sw1")
  78.                 if recv_data == 1 then -- 云下发了1       
  79.                         LIB_GpioWrite("D8",0)--黄灯打开
  80.                 else -- 云下发了0
  81.                         LIB_GpioWrite("D8",1)--黄灯关闭
  82.                 end
  83.         --查询机智云是否下发了写"Sw2"开关量数据点的动作
  84.         flag,recv_data = LIB_RecvFromGizCloud("Sw2")
  85.                 if recv_data == 1 then -- 云下发了1
  86.                         LIB_GpioWrite("D9",0)--绿灯打开
  87.                 else -- 云下发了0
  88.                         LIB_GpioWrite("D9",1)--绿灯关闭
  89.                 end       
  90.         --轮询按键事件
  91.     key_value = LIB_ButtonQuery("BTN1")
  92.     --如果按键1短按过,切换LED1状态
  93.     if key_value == 1 then
  94.                 LIB_GpioToggle("D8")
  95.     end
  96.     key_value = LIB_ButtonQuery("BTN2")
  97.     --如果按键2短按过,切换LED2状态
  98.     if key_value == 1 then
  99.         LIB_GpioToggle("D9")
  100.     end       
  101. end

  102. --光照,电位器电压采集
  103. function read_ResAndIll_Adc()
  104.     A0_full_flag, A0_tab = LIB_ADCheckBufFull("A0")
  105.     --每当A0通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
  106.     if A0_full_flag == 1 then
  107.         SUM = 0
  108.         for i = 1, #A0_tab do --此处#A0_tab的值是50,表示A0_tab表内的元素个数
  109.             SUM = SUM + A0_tab[i]
  110.         end
  111.         AVER = SUM / #A0_tab
  112.         AD0=AVER*3.6/4096.0
  113.         --将A0通道的AD值转换成实际电压显示出来,注意这里是保留小数点后一位
  114.         LIB_0_96_OledPuts("3","1",string.format("AD0:%.1f", AD0))
  115.                 LIB_SendToGizCloud("Rf1", AD0)
  116.     end
  117.         --每当A1通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
  118.     A1_full_flag, A1_tab = LIB_ADCheckBufFull("A1")
  119.     if A1_full_flag == 1 then
  120.         SUM = 0
  121.         for i = 1, #A1_tab do --此处#A1_tab的值是50,表示A0_tab表内的元素个数
  122.             SUM = SUM + A1_tab[i]
  123.         end
  124.         AVER = SUM / #A1_tab
  125.         AD1=AVER*3.6/4096.0
  126.         --将A1通道的AD值转换成实际电压显示出来,注意这里是保留小数点后一位
  127.         LIB_0_96_OledPuts("4","1",string.format("AD1:%.1f", AD1))
  128.                 LIB_SendToGizCloud("Rf2", AD1)
  129.     end
  130. end

  131. --蜂鸣器开关
  132. function BUZ_run()
  133.         --查询机智云是否下发了写"Sw4"开关量数据点的动作
  134.         flag,recv_data = LIB_RecvFromGizCloud("Sw4")
  135.         if flag == 1 then
  136.                 if recv_data == 1 then -- 云下发了1
  137.                         cnt = 185
  138.                         --蜂鸣器打开
  139.                 else -- 云下发了0
  140.                         cnt = 0
  141.                         --蜂鸣器关闭
  142.                 end
  143.                 LIB_PwmUpdate1(cnt)
  144.         end
  145. end

  146. --红灯亮度调节
  147. function PWM_LED()
  148.         --查询机智云是否下发了写"Ws2"开关量数据点的动作
  149.         flag,recv_data = LIB_RecvFromGizCloud("Ws2")
  150.         if flag == 1 then
  151.                 if Ws2==0 then
  152.                         cnt=370
  153.                 else
  154.                         cnt =300 - Ws2 *3
  155.                 end
  156.                 --红灯亮度调节
  157.                 LIB_PwmUpdate1(cnt)
  158.         end
  159. end

  160. --电机调速
  161. function PWM_MOT()
  162.         --查询机智云是否下发了写"Ws2"开关量数据点的动作
  163.         flag,recv_data = LIB_RecvFromGizCloud("Ws3")
  164.         if flag == 1 then
  165.                 if Ws3==0 then
  166.                         cnt=0
  167.                 else
  168.                         cnt = Ws3 *3
  169.                 end
  170.                 --红灯亮度调节
  171.                 LIB_PwmUpdate1(cnt)
  172.         end       
  173. end


  174. --开始大循环
  175. while(GC(1) == true)
  176. do
  177. --        Relay()

  178. --        Human_Body_Induction()
  179.        
  180. --        Read_TempAndHumi()
  181.        
  182. --        LED_KEY()

  183. --        Read_ResAndIll_Adc()
  184.        
  185. --        BUZ_run()
  186. --        PWM_LED()
  187. --        PWM_MOT()
  188. --        LIB_WatchDogFeed()        --喂狗
  189.        
  190. end
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表