使用ESP8266通过Blinker平台接入天猫精灵控制电视/空调

目录

      • `演示视频`
  • 1.准备工作
    • 1.1 `原理`
    • 1.2 `使用的硬件以及硬件连接图`
    • 1.3 `开发环境准备`
  • 2.解码空调红外键值
    • 2.1 `把ESP8266红外接收的实例,上传到NodeMCU中`
    • 2.2 `读取红外键值`
  • 3. 配置Blinker App的UI界面
  • 4.Arduino程序的编写
      • `4.1 控制逻辑`
      • `4.2 新建一个Arduino程序,编写控制逻辑`
      • 4.3 `上传程序到ESP8266`
  • 5.App控制
  • 6.天猫精灵控制
      • `总结`

前言:在前面做了一个简易的远程空调控制器(点我查看),刚好现在家里有一个闲置的天猫精灵,于是乎就想让电视机也接入语音控制。在Blinker官网详细介绍了天猫精灵是如何接入的,有了前面简易远程空调控制器的制作基础,这个例程就很好做了。只需要就上几行简单的代码
备注:

  • Blinker官网:点我跳转
  • 天猫精灵接入流程:点我跳转

演示视频

ESP8266接入天猫精灵控制电视机

1.准备工作

1.1 原理

----本实验的原理比较简单,使用Arduino开发软件的第三方库(IRremoteESP8266)的示例,读取空调/电视,红外遥控的原始数据,把需要控制的按键红外键值的原始数据保存到数组中(红外协议不同,原始数据的长度有差异)。

---- 把ESP8266接入Blinker(点灯科技),使用Blinker的app去配置UI界面,然后在Arduino开发软件编写简单的控制逻辑,通过app的按钮发送指定的红外指令或接受天猫精灵的指令,间接达到控制的目的。

1.2 使用的硬件以及硬件连接图

  • 天猫精灵(方糖)
  • ESP8266 NodeMCU
  • 红外发射模块、红外接收模块(HX1838)
  • 接收红外控制的电视机
  • 电视机顶盒
    备注:在这里说明一下,因为家里的电视是连接天猫魔盒的,因此如果想开启或关闭电视,必须同时打开/关闭电视和天猫魔盒(所以需要发送两个红外指令,在这里使用了两个红外发射管(非必须)。一个对准电视红外接收管,一个对准天猫精灵红外接收管)。
    在这里使用的硬件很简单(红外接收头未给出)。如下所示:
    在这里插入图片描述

1.3 开发环境准备

  • Arduino开发环境
    安装地址:Arduino IDE

备注:安装1.8.7或更新版本,这个软件是免费使用的,直接在官网下载安装最新版本即可。

  • 安装ESP8266的扩展
    方法一:如果你的电脑能够科学上网的话,使用这个方法很简便,在首选项中输入一个网址,然后添加库即可。否则参考方法二。
  1. 启动Arduino并打开“首选项”窗口。
  2. 输入https://arduino.esp8266.com/stable/package_esp8266com_index.json
    在这里插入图片描述
  3. 从工具>主板菜单打开Boards Manager并安装esp8266平台(安装后不要忘记从工具>主板菜单中选择ESP8266主板)。
    在这里插入图片描述
    方法二:下载打包的esp8266安装包,直接运行并解压即可。

链接:https://pan.baidu.com/s/1Eu0qhlP5xu6GgQMdwflfAw 提取码:3x1f

备注:如果安装过其他版本的esp8266sdk,请先删除,再使用本安装包,解压完成后,再打开Arduino IDE,即可在 菜单栏>工具>开发板 中找到你使用的esp8266开发板

  • 安装 IRremoteESP8266 库
    这个库中有关于ESP8266 接收红外解码,以及发送红外数据的函数。是这个例程的一个核心函数
    安装方法:如果直接在Anduino IDE中安装,也是需要科学上网的,否则速度会很慢。
    方法一:直接在IDE中安装
    在这里插入图片描述
    方法二:离线安装
    下载IRremoteESP8266安装包

链接:https://pan.baidu.com/s/1RlHPts_dNj6MVR9pARxLuA 提取码:0n6t

下载完成之后,把它解压缩在项目文件夹的library文件夹中
项目文件夹在这里插入图片描述

  • 安装blinker Arduino库
    安装方法,同IRmoteESP8266库安装的方法二相同。

链接:https://pan.baidu.com/s/1k5tED9HxgiRaqNtKrTJcRg 提取码:87lw

安装后如下图所示:
在这里插入图片描述
安装成功之后重启Arduino软件,可以在示例的第三方库库中找到。
在这里插入图片描述

  • 安装blinker APP
  • Android下载:点我进入
    或 在android应用商店搜索“blinker”下载安装
  • IOS下载:在app store中搜索“blinker”下载

小结:完成了准备工作之后,就可以进入下一步。可以使用 IRremoteESP8266的示例,对电视机的开关红外红外进行解码。

2.解码空调红外键值

2.1 把ESP8266红外接收的实例,上传到NodeMCU中

  • 打开红外接收的示例
    在这里插入图片描述
  • 选择所使用的开发版和连接的COM口(根据实际情况选择)
    在这里插入图片描述
  • 把红外接收模块的数据段连接到GPIO14(Node MCU 对应D5引脚)

在这里插入图片描述

  • 上传程序到 Node MCU 上
    在这里插入图片描述

2.2 读取红外键值

  • 打开Arduino 调试 串口监视器
    在这里插入图片描述
  • 电视遥控器对准红外接收管(这里以TCL电视和天猫精灵为准)
    在这里插入图片描述
  • 捕获红外键值
    读取两个开关键(通过串口打印发现,无论是打开或者是关闭电视机/天猫魔盒,其发送的红外指令都是同样的)。
    在串口中打印获取的rowData数据如下:
/*电视电源*/
uint16_t tv_power[207] = {3976, 4024,  500, 2008,  498, 2006,  476, 2032,  476, 2030,  474, 1030,  476, 1030,  500, 2010,  476, 1030,  474, 2032,  478, 1030,  474, 2034,  498, 1006,  474, 1032,  474, 1032,  474, 1032,  474, 1030,  476, 2030,  476, 2032,  474, 1030,  500, 2010,  474, 1032,  474, 2032,  474, 1032,  476, 2028,  476, 8494,  3976, 4026,  500, 2006,  476, 2032,  476, 2030,  476, 2030,  476, 1032,  474, 1032,  476, 2032,  498, 1030,  450, 2034,  474, 1028,  476, 2034,  498, 1008,  498, 1008,  476, 1032,  472, 1032,  474, 1032,  474, 2032,  502, 2008,  474, 1030,  476, 2032,  500, 1030,  452, 2032,  474, 1030,  476, 2026,  498, 8476,  3972, 4024,  476, 2032,  476, 2032,  474, 2034,  472, 2056,  452, 1032,  474, 1056,  450, 2034,  500, 1030,  452, 2056,  450, 1032,  474, 2034,  472, 1056,  450, 1032,  474, 1056,  450, 1034,  472, 1034,  472, 2034,  500, 2006,  474, 1032,  496, 2012,  474, 1056,  448, 2058,  476, 1006,  474, 2028,  476, 8494,  3998, 4000,  474, 2036,  472, 2032,  474, 2056,  474, 2008,  474, 1056,  450, 1056,  448, 2036,  474, 1034,  472, 2036,  472, 1056,  450, 2036,  470, 1034,  472, 1058,  450, 1032,  474, 1032,  498, 1030,  450, 2032,  474, 2034,  498, 1032,  448, 2036,  472, 1058,  450, 2034,  478, 1054,  472, 2008,  472};  // NIKAI D5F2A/*天猫精灵电源*/
uint16_t timo_power[67] = {9010, 4476,  580, 552,  580, 554,  578, 550,  578, 552,  582, 552,  578, 554,  572, 558,  578, 552,  582, 1656,  582, 1656,  582, 1654,  580, 1658,  580, 1658,  580, 554,  578, 552,  578, 1660,  580, 1658,  580, 1656,  580, 1658,  584, 552,  578, 1658,  582, 552,  578, 1656,  582, 554,  576, 554,  580, 552,  578, 554,  580, 1658,  580, 552,  554, 1682,  582, 552,  580, 1658,  560};  // NEC F9EA15

备注:保存下来,待会程序中需要用到。

3. 配置Blinker App的UI界面

  • 注册账号
    使用手机号码即可注册账号。
  • 添加设备->wifi接入–>得到产品密钥(Secret Key)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 修改设备名字和图标
    在这里插入图片描述
  • 编辑UI界面
    在这里添加两个按钮即可,一个打开/关闭电视、一个打开/关闭空调。
    在这里插入图片描述
    设置按键属性
    在这里插入图片描述
    效果如下:
    在这里插入图片描述
    这样一来,简单的控制界面就设置好了。

4.Arduino程序的编写

具体如何编写Arduino程序,可以在Blinker官网中有介绍:点我查看

4.1 控制逻辑

控制的逻辑很简单,当Node MCU 连接上WiFi并显示在线状态时,通过按手机app上的按键。程序发送指令的红外指定达到控制电视的目的。还有就是天猫精灵的控制,当天猫精灵接受到指令,并在程序中解析之后,发送指定的红外指令达到控制电视的目的,后面详细介绍如何操作。
备注:在进行操作之前,先连接好红外发射模块所连接的IO口,在这里使用的是GPIO4(即Node MCU的 D2引脚)

4.2 新建一个Arduino程序,编写控制逻辑

新建一个文件->另存为mIRremote_control(程序名随意)
在这里插入图片描述
根据Blinker官网给出的接入天猫精灵的教程
在这里插入图片描述
直接贴上程序,程序比较简单且有注解:

//串口打印相关
#define BLINKER_PRINT Serial
//Blinker使用wifi接入
#define BLINKER_WIFI
//天猫精灵控制的为插座(单个)
#define BLINKER_ALIGENIE_OUTLET
//红外接收解析头文件
#include <IRremoteESP8266.h>
//红外发送头文件
#include <IRsend.h>
//Blinker相关程序头文件
#include <Blinker.h>//这里输入自己的密钥,wifi账号密码(注意大小写)。
char auth[] = "*****";
char ssid[] = "*****";
char pswd[] = "*****";
//定义红外发射的管脚
const uint16_t kIrLed = 4;  // ESP8266 GPIO pin to use. Recommended: 4 (D2).
//定义GPIO4的管脚为红外发射管脚
IRsend irsend(kIrLed);  // Set the GPIO to be used to sending the message./*电视电源红外原始数据*/
uint16_t tv_power[207] = {3976, 4024,  500, 2008,  498, 2006,  476, 2032,  476, 2030,  474, 1030,  476, 1030,  500, 2010,  476, 1030,  474, 2032,  478, 1030,  474, 2034,  498, 1006,  474, 1032,  474, 1032,  474, 1032,  474, 1030,  476, 2030,  476, 2032,  474, 1030,  500, 2010,  474, 1032,  474, 2032,  474, 1032,  476, 2028,  476, 8494,  3976, 4026,  500, 2006,  476, 2032,  476, 2030,  476, 2030,  476, 1032,  474, 1032,  476, 2032,  498, 1030,  450, 2034,  474, 1028,  476, 2034,  498, 1008,  498, 1008,  476, 1032,  472, 1032,  474, 1032,  474, 2032,  502, 2008,  474, 1030,  476, 2032,  500, 1030,  452, 2032,  474, 1030,  476, 2026,  498, 8476,  3972, 4024,  476, 2032,  476, 2032,  474, 2034,  472, 2056,  452, 1032,  474, 1056,  450, 2034,  500, 1030,  452, 2056,  450, 1032,  474, 2034,  472, 1056,  450, 1032,  474, 1056,  450, 1034,  472, 1034,  472, 2034,  500, 2006,  474, 1032,  496, 2012,  474, 1056,  448, 2058,  476, 1006,  474, 2028,  476, 8494,  3998, 4000,  474, 2036,  472, 2032,  474, 2056,  474, 2008,  474, 1056,  450, 1056,  448, 2036,  474, 1034,  472, 2036,  472, 1056,  450, 2036,  470, 1034,  472, 1058,  450, 1032,  474, 1032,  498, 1030,  450, 2032,  474, 2034,  498, 1032,  448, 2036,  472, 1058,  450, 2034,  478, 1054,  472, 2008,  472};  // NIKAI D5F2A/*天猫精灵电源原始数据*/
uint16_t timo_power[67] = {9010, 4476,  580, 552,  580, 554,  578, 550,  578, 552,  582, 552,  578, 554,  572, 558,  578, 552,  582, 1656,  582, 1656,  582, 1654,  580, 1658,  580, 1658,  580, 554,  578, 552,  578, 1660,  580, 1658,  580, 1656,  580, 1658,  584, 552,  578, 1658,  582, 552,  578, 1656,  582, 554,  576, 554,  580, 552,  578, 554,  580, 1658,  580, 552,  554, 1682,  582, 552,  580, 1658,  560};  // NEC F9EA15// 新建Blinker组件对象(app上的按键)
BlinkerButton Button3("btn-pwr2");
BlinkerButton Button4("btn-pwr3");
//天猫精灵插座的状态
bool oState = false;//天猫精灵电源的状态
void aligeniePowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(LED_BUILTIN, HIGH);BlinkerAliGenie.powerState("off");BlinkerAliGenie.print();//打开电视和天猫魔盒irsend.sendRaw(tv_power, 207, 38);  // Send a raw data capture at 38kHz.Button3.print("电视机打开");irsend.sendRaw(timo_power, 67, 38);  // Send a raw data capture at 38kHz.Button4.print("天猫魔盒打开");oState = true;}else if (state == BLINKER_CMD_OFF) {digitalWrite(LED_BUILTIN, LOW);BlinkerAliGenie.powerState("on");BlinkerAliGenie.print();//关闭电视和天猫魔盒irsend.sendRaw(tv_power, 207, 38);  // Send a raw data capture at 38kHz.Button3.print("电视机关闭");irsend.sendRaw(timo_power, 67, 38);  // Send a raw data capture at 38kHz.Button4.print("天猫魔盒关闭");oState = false;}
}
//天猫精灵状态查询
void aligenieQuery(int32_t queryCode)
{BLINKER_LOG("AliGenie Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("AliGenie Query All");BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("AliGenie Query Power State");BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;default :BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;}
}void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);Blinker.vibrate();uint32_t BlinkerTime = millis();Blinker.print(BlinkerTime);Blinker.print("millis", BlinkerTime);
}void setup()
{Serial.begin(115200);#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endifpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);Blinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);//注册回调函数/Button3.attach(Button3_callback);Button4.attach(Button4_callback);//红外初始化irsend.begin();BlinkerAliGenie.attachPowerState(aligeniePowerState);BlinkerAliGenie.attachQuery(aligenieQuery);//注册心跳包Blinker.attachHeartbeat(heartbeat);
}void loop()
{Blinker.run();
}//心跳包回调函数
void heartbeat()
{if (oState){Button3.print("on");} else {BUILTIN_SWITCH.print("off");}
}//回调函数
void Button3_callback(const String &state)
{BLINKER_LOG("get button state: ", state);//检测到btn-pwroff按钮按下if (state == BLINKER_CMD_BUTTON_TAP){Button2.print("电视机电源按下");//串口打印BLINKER_LOG("电视机电源", "按下");//打开irsend.sendRaw(tv_power, 207, 38);  // Send a raw data capture at 38kHz.}}
//回调函数
void Button4_callback(const String &state)
{BLINKER_LOG("get button state: ", state);//检测到btn-pwroff按钮按下if (state == BLINKER_CMD_BUTTON_TAP){Button2.print("天猫魔盒按下");//串口打印BLINKER_LOG("天猫魔盒电源", "按下");//打开irsend.sendRaw(timo_power, 67, 38);  // Send a raw data capture at 38kHz.}}

注意事项

1.设备密钥和wifi账号密码换成自己的
在这里插入图片描述
2.把读取的红外键值的rowDate数组换成自己需要控制的红外键值数组(数组名称可以随意,注意发送时的数据长度,这里是199)。
3.使用函数 irsend.sendRaw(power_off, 199, 38); 进行红外命令的发送,表示以38kHz的频率,发送power_off数组。数组长度为199.

4.3 上传程序到ESP8266

在这里插入图片描述
程序上传成功之后,复位Node MCU之后就可以开始使用Blinker App进行操作啦。(注意连接好红外发射的模块,引脚为GPIO4(D2))。

5.App控制

这个例程主要还是验证天猫精灵的控制方式,这里也简单说一个app的控制方式

  • 打开 Blinker App
    如果程序中设备密钥,以及Wifi账户密码无误的话,此时可以在app中看到设备的状态是在线的。
    在这里插入图片描述
    在这里插入图片描述
  • 操作设备
    点击电视开关按钮:如果有回调信息,说明红外命令成功发出,可以看到电视开启/关闭。
    在这里插入图片描述
    通过这个app即可实现电视的控制,当时这个不是最终的目的,还需要把它接入天猫精灵呢。

6.天猫精灵控制

在这里插入图片描述
步骤详情
在这里插入图片描述
返回设备界面之后,就可以看到已经绑定的Blinker设备啦。
在这里插入图片描述
此时,如果你的天猫精灵正常联网,对着天猫精灵说:

我: 天猫精灵,打开客厅的插座。 天猫精灵: 插座已打开,注意操作哦
我:天猫精灵,关闭客厅的插座。天猫精灵:已为您关闭客厅的插座。

咦,但是我们控制的电视机啊,叫插座好像有点low吧。好吧,在天猫精灵app中可以对设备进行别名操作,当我们呼叫天猫精灵的别名时也可以对设备进行操作。
我把这个设备重命名为 电视机(我也想命名为“电视”,但是提示这个别名已经存在,应该是官方的限制吧或者是一个bug)

  • 别名修改
    在这里插入图片描述
    修改别名了之后,就可以对天猫精灵说:天猫精灵,打开电视机,此时,天猫精灵就会帮你打开电视机啦。

总结

到这里这个例程就结束了,其实这个只是做一个抛砖引玉的作用,通过小小的例子,就可以扩展出很多东西,比如空调的控制,或任何需要红外控制的地方。因为IRremoteESP8266红外解码的示例可以支持解析很多种红外协议,有了这个实例,我们并不需要去关心不同红外信号的协议,只需要读取红外键值的原生数据,然后把相同的红外数据发出即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝牙mesh设备接入天猫精灵或者百度音响

天猫与百度双网关方案 验证双vendor 支持天猫精灵&百度 一、mesh配网协议&#xff08;mesh provisioning&#xff09; 1.1、Provisioning协议栈 1.2、PB-ADV (通过百度或天猫精灵音响直接配网) The PB-ADV bear用来传输Generic Provisioning PDUs类型&#xff0c;PB-AD…

国内就能用的Chat-GPT分享

人工智能在语音理解与交互的新里程碑 AI聊天平台 在人工智能&#xff08;AI&#xff09;领域&#xff0c;语言模型的发展日新月异。这其中&#xff0c;OpenAI所推出的GPT系列语言模型尤为显眼&#xff0c;尤其是其中的一员——ChatGPT&#xff0c;已经在人工智能的语言理解与…

速看!又一个 Redis 高危漏洞,可植入隐秘后门允许命令执行

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 被研究人员称之为Redigo的一种基于Go的新的恶意软件&#xff0c;它一直针对有CVE-2022-0543漏洞的Redis服务器并植入一个隐秘的后门允许命令执行。 CVE-2022-0543是Redis&#xff0…

嗖的一下!3分钟用ChatGPT生成海南旅游思维导图!

大家好&#xff0c;我是菜鸟哥&#xff01; 五一长假即将来临&#xff0c;很多小伙伴都要准备出去玩了&#xff01;旅游肯定要做攻略啊&#xff0c;比如热门的景点海南三亚&#xff0c;北京&#xff0c;上海&#xff0c;成都这些都是打卡的网红景点&#xff01;小编比较喜欢去海…

【成为架构师课程系列】怎样进行概念架构(Conceptual Architecture)?

目录 前言 什么是概念架构 概念架构阶段的3个步骤 初步设计 高层分割 分层式概念服

【成为架构师课程系列】使用 Cache-Aside 模式将数据存储在缓存中( Using the Cache-Aside pattern to store data in the cache)

目录 前言 背景和问题 解决方案 问题和注意事项 何时使用此模式 例子 前言 按需将数据从数据存储加载到缓存中(Cache-Aside )。这种模式可以提高性能,还有助于保持缓存中保存的数据与底层数据存储中的数据之间的一致性。

ChatGPT Plus会员如何充值的问题

在这个高度信息化的时代&#xff0c;人工智能已经成为我们生活的一部分。 而ChatGPT更是凭借其高度驯化的对话式语言模型迅速收获了上亿的庞大客群。 今年3月&#xff0c;更先进更强大的GPT4.0官宣发布&#xff0c;强大功能更新的同时&#xff0c;客户需要支付一定订阅费用才…

基于hexo和aws云搭建个人博客,0基础0费用,有点豪横(2W字超详细图文教程)

这是篇概述文章&#xff0c;详细参考Hexo建站专栏 最近几个月一直在整理之前的技术笔记&#xff0c;目前虽在体系上还尚有欠缺&#xff0c;但内容方面整理的七七八八了&#xff0c;这些内容一部分记录在了云笔记中另一部分记录在了博客上。于是决定搭建一个个人的技术…

Linux 内核观测技术 eBPF 中文入门指南

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 很早前就想写一篇关于 eBPF 的文章&#xff0c;但是迟迟没有动手&#xff0c;这两天有点时间&#xff0c;所以就来写一篇。这文章主要还是简单的介绍 eBPF 是用来干什么的&#xff…

【AIGC使用教程】AutoGPT 安装使用完全教程

欢迎关注【AIGC使用教程】 专栏 【AIGC使用教程】SciSpace 论文阅读神器 【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用 【AIGC使用教程】GitHub Copilot 免费注册及在 PyCharm 中的安装使用 …

上海亚商投顾:沪指放量大涨 券商等权重板块全线飙升

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日集体反弹&#xff0c;沪指、深成指单边拉升&#xff0c;午后均涨超2%&#xff0c;上证50大涨超2.7%&a…

上海亚商投顾:创业板指大涨近2% 电商概念再爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 沪指今日震荡反弹&#xff0c;创业板指高开高走&#xff0c;午后涨近2%&#xff0c;宁德时代盘中涨近4%。军工板块…

上海亚商投顾:沪指尾盘快速反弹微幅收跌 6G概念大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日震荡调整&#xff0c;临近尾盘集体回升&#xff0c;石油、保险等权重蓝筹走低&#xff0c;上证50盘中…

ChatGPT网站源码V4.8.0+支持Ai绘画+支持用户套餐+好友邀请功能+管理后台+在线安装+一键在线更新+永久更新!

ChatGPT网站源码V4.8.0支持Ai绘画支持用户套餐好友邀请功能管理后台在线安装一键在线更新永久更新&#xff01; 安装教程: 一台VPS服务器 服务器安装宝塔 解析域名&#xff0c;绑定服务器 上传系统程序至根目录 创建数据库 访问首页在线安装配置数据库 PHP版本选择:7.3 安装完成…

关于语言模型私有化部署的讨论 | AIGC实践

上周在与TC同行关于AIGC实践的线上交流中&#xff0c;大家普遍比较关心的一个实践切入点是&#xff1a;语言模型的私有化部署——简单来说&#xff0c;就是在企业内部&#xff0c;部署一个属于自己的“ChatGPT”&#xff0c;对于本行业/专业知识&#xff0c;以及企业独有的产品…

VsCode的常用插件安装与插件介绍

VsCode的常用插件安装与插件介绍 0. 导读1. Chinese (Simplified) (简体中文)2. ChatGPT中文版 0. 导读 该插件安装使用的方式&#xff0c;皆为在扩展方式的安装&#xff1b; 如图所示&#xff0c;在联网的情况下搜索对应的插件 1. Chinese (Simplified) (简体中文) 插件介…

EI投稿经验和流程

最近需要投一篇&#xff0c;记录下来过程。 文章目录 参考知乎查了下基本要求去B站看看 写作工具来找一个样本看看参考chatGPT写作开始画重点&#xff01;&#xff01;&#xff01;写作格式详细要求 投稿 参考 知乎查了下基本要求 1、EI稿件控制7页以上&#xff0c;3000单词字…

用 ChatGPT 9 个月“写”了 97 本书,他赚了 2000 美元!

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChatGPT、GPT-4 等 AIGC 工具&#xff0c;引发的创业创富正在成为一股潮流&#xff1a; 就在两个月前&#xff0c;我们曾报道过&#xff0c;一位品牌设计师兼作家 Jackson Greathouse Fall 因突发奇想&…

chatgpt赋能python:Python怎么降低查重的SEO

Python怎么降低查重的SEO 在互联网上&#xff0c;一篇优质的文章可以吸引更多的用户和流量&#xff0c;提高网站的排名&#xff0c;从而获得更好的收益。然而&#xff0c;随着互联网规模的不断扩大&#xff0c;大量的内容在同一领域重复出现&#xff0c;这使得搜索引擎的优化变…

【ChatGPT实战】使用ChatGPT搞定SEO流量

在日常生活中&#xff0c;我们经常会使用搜索引擎来查找我们所需要的信息。在查找过程中大家有没有想过同样的信息&#xff0c;为什么有的网站总是能排在前面呢&#xff1f;这就涉及文章标题中的“SEO”。 如果你拥有自己的网站&#xff0c;你想要让自己的网站在搜索引擎中排名…