侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计收到 2 条评论

易语言对接本地大模型控制物联网设备的实操笔记

2026-10-16 / 0 评论 / 19 阅读

易语言对接本地大模型控制物联网设备的实操笔记

昨晚蹲客厅给刷了固件的智能插座调试的时候突然反应过来,我用了十来年的易语言,为啥要凑各个厂商智能家居APP的热闹,自己整个本地控制的小工具不行?

先把两边的本地服务通了

没那么多复杂配置,两步就能把基础链路打通:

  1. 本地找台常年开机的小设备跑轻量开源大模型,我这边用ollama部署的qwen2 1.5b的4bit量化版,拉模型直接敲命令就行:
    ollama run qwen2:1.5b-instruct-q4_0
    具体资源占用我没细测,反正我那台吃灰的3代i5小主机跑着完全不卡,响应速度看设备配置,日常用够了,不用连外网也能跑。
  2. 物联网端我用的是刷了ESPHome的ESP8266模块,接了两路继电器分别控客厅灯和排插,记得在路由器里给模块绑固定局域网IP,开本地HTTP控制接口,云同步啥的都关了,数据全在自家局域网转,踏实。

易语言里写逻辑真的快

不用装一堆奇奇怪怪的第三方支持库,自带的互联网支持库、JSON解析类就够用:

  • 新建个空白Windows窗口,拖个编辑框当指令输入区,放个按钮当触发键,嫌丑可以自己调样式,我是懒得弄,功能优先。
  • 按钮被点击的时候,先往本地ollama接口发请求,把用户的自然语言转成结构化的控制指令,核心代码就几行:
    .局部变量 提交Json, 文本型
    .局部变量 模型返回, 文本型
    提交Json = “{\"model\":\"qwen2:1.5b-instruct-q4_0\",\"prompt\":\"你是智能家居助手,用户指令是'” + 编辑框1.内容 + “',仅返回JSON格式:{\\\"device\\\":\\\"light/socket\\\",\\\"action\\\":\\\"on/off\\\"},不要额外解释\",\"stream\":false}”
    模型返回 = 到文本 (HTTP读文件 (“http://127.0.0.1:11434/api/generate”, 1, 提交Json))
  • 解析模型返回的JSON,拿到设备和操作参数之后,直接给ESP8266发对应的HTTP请求就行,比如开灯就请求http://你绑的固定IP/light/on,关就对应off路径。
有个小提醒:给大模型的prompt一定要写死“仅返回JSON,不要额外解释”,我之前试过没加这句话,模型会扯一堆“好的我现在帮你控制灯哦”,根本解析不了,容易崩。另外别用正则硬抠返回内容,自带的JSON类加个容错判断,碰到模型抽风返回乱码的时候直接弹个提示就行。

几个我暂时没细调的小坑也顺便记一下:ollama默认只监听本地127.0.0.1,要是你想把易语言程序跑在别的局域网电脑上,记得加个系统环境变量OLLAMA_HOST=0.0.0.0,重启ollama服务才能生效,我之前卡这小问题愣了十多分钟。语音控制我还没接,后面打算搭个离线语音识别模块,现在还是打字输指令,坐电脑前用也挺顺手。

刚测试输了句“把客厅灯关了”,果然执行成功,现在屏幕亮着周围一片黑,摸黑收尾,去找开关了。

评论一下?

OωO
取消