微信接入arduino
https://blog.csdn.net/liudongdong19/article/details/81072857
一、准备工作。
1.微信公众号,个人的就可以了,不用企业号什么的。
2.服务器(WINDOWS的。本帖不涉及Linux的),简单的直接在阿里云、腾讯云、XX云一个月30+元买的就好(或者是XX空间也行,要能支持PHP)。
(本文写于2017.06这几个月阿里云活动比较好,送服务器免费用6个月,个人的淘宝账号就可以登录,但是要抢,也可以花18块买个域名也会送免费的6个月服务器,这就不用抢了,等于18块买了6个月的服务器)
3.ESP8266,推荐使用NodeMcu的,可以不用管供电,esp8266-01要注意供电足够。
二、开始整。
1.1微信公众号申请很容易的。
微信-1
微信-2
像图上的那样,一步步来,订阅号是不用交钱的,就目前我们控制LED订阅号是足够了的。
1.2公众号设置。
公众号申请好之后登陆,然后进行开发者设置。
微信2-2
看上图填写完成之后就点击提交,不出意外就显示提交成功。成功后如图
微信2-3
2.1服务器搭建。
再重申一遍呐~~本帖基于Windows的,不适用于Linux。本帖的实验环境是Windows2016。其他版本的也可以。 上面提到阿里云最近搞活动给送6个月的服务器。具体领取办法自己看官网哈~~仅限新注册用户啊。这里就不讲怎么领了。
你有了服务器之后(不管是领的免费的,还是买的付费的,或者淘宝买的服务器。)最后肯定会有个ip地址。然后用你自己电脑的远程桌面连接,远程连接到服务器。
输入用户名啊,密码啥的,连接成功后进入到远程桌面,然后打开浏览器,百度phpstudy .(本帖的服务器环境是基于phpstudy的)下载安装。
这里要强调一下,安装完成后默认的php版本比较低,推荐使用较新的,(不要问旧的行不行啊,自己试试去)。如图所示。
图2-4.phpstudy
推荐使用图上画框框的那连个组合,首次安装成功后默认是php5.3还是几。然后你点切换版本,选择图上框框里的两个中的一个,我使用的是nginx那个。你点了之后会提示要下载个插件,按提示下载安装就可以了,
记得下载X86的,不管你是64为操作系统还是32位操作系统
记得下载X86的,不管你是64为操作系统还是32位操作系统
记得下载X86的,不管你是64为操作系统还是32位操作系统
下载安装完插件再回来点一下切换就可以了,这时候你在你自己电脑的浏览器里输入你服务的ip地址,例如:11.11.11.11这时候应该会有一个php探针的页面出来(具体不用知道是啥,反正输入你的服务器ip之后有东西出来就可以了),这时候你的php环境就搭建完成了。
2.2PHP代码部署 经过前面几步你的公众号已经申请到了,你的服务器PHP环境也搭建好了。那下来就开始部署PHP代码了,对PHP不熟悉的同学不要着急,我这里给出个WeChat库,教你怎么用。
WeChat.zip (10.14 KB, 下载次数: 68)
把这个库下载下来,解压到你服务器中nginx服务器的根目录。如图所示。
图2-5 2-6 2-7
这里注意看这个路径。要和微信公众号开发者里面填的路径匹配,即图2-2上的URL要指向这个index.php文件
2.3核心代码解析
这里推荐使用PHPStorm,可以有智能提示,可以追踪函数实现等。当然你用其他工具也可以。
<?php
require('wechat/Wechat.php');
class TestWechat extends Wechat {
/**
* 收到文本消息时触发,回复收到的文本消息内容
*
* @return void
*/
protected function onText()
{
$this->responseText('收到了文字消息:' . $this->getRequest('content'));
}
} $wechat = new TestWechat(array(
'token' => 'weixin',
'aeskey' => 'xxx',
'appid' => 'xxx',
'debug' => true
));
$wechat->run();
这个是库里面自带的例子,功能就是你给你的公众号发个内容,他在前面加上 收到了文字消息:
我们重点看看onText函数。这个函数里面有两个函数。
$this->responseText(参数是字符串)这个就是给你回复。
$this->getRequest('content'))这个就是解析你发送来的文字消息返回值是字符串。
到这核心代码就讲完了,下一节我们来写控制LED的代码 2.4微信控制LED PHP代码
上一节讲到了用微信给服务器发东西,服务器给微信返回字符串。那我们可以这样来做。
用微新给服务器发送字符串"ON"服务器检测收到字符串"ON"之后就生成一个txt文件,并将“ON”写入到txt文件。然后ESP8266不断请求这个文件内容检测到是ON就开灯。OFF就关灯。
思路就是这样。那下来开始动手做。方式PHP代码。
<?php
require('wechat/Wechat.php');
class TestWechat extends Wechat {
/**
* 收到文本消息时触发,回复收到的文本消息内容
*
* @return void
*/
protected function onText()
{
//$this->responseText('收到了文字消息:' . $this->getRequest('content'));
$state=$this->getRequest('content');
if($state=="ON" ||$state=="OFF")
{
$file=fopen("1.txt","w")or die("failed!");
//这一行就是将ON或者OFF以覆盖方式写入1.txt
fwrite($file,$state);
fclose($file);
}
$this->responseText("$state");
}
} $wechat = new TestWechat(array(
'token' => 'weixin',
'aeskey' => 'xxx',
'appid' => 'xxx',
'debug' => true
));
$wechat->run();
图2-8 php控制txt结果
如图。我们成功实现了微信来控制txt内容。那么下面只需要用ESP8266来不断请求这个txt的内容就好。
3.1 EPS8266控制部分
我们采用arduino IDE方式来编写ESP82662的代码。具体的IDE设置请参照 大佬的教程。
这块只放上代码。你直接烧写到ESP8266里面就好了
#include <ESP8266WiFi.h> const char *ssid = "AAAA";//SSID
const char *password = "AAAA1111";//WIFI密码
const char *host = "47.94.3.48";//服务器地址
const int tcpPort = 80;//服务器端口号 WiFiClient sclient;
int pinled = D4; void setup()
{
Serial.begin(115200);
Serial.setTimeout(100);
WiFi.begin(ssid, password);
pinMode(pinled, OUTPUT);
while (WiFi.status() != WL_CONNECTED)//查看WIFI链接状态
{
Serial.println("try connect");
delay(500);
} } void loop()
{
connecttoserver();
sendtoserver();
if (sclient.available())
{
String str = sclient.readStringUntil('\r');
Serial.println(str);
if (str.indexOf("ON") >= 0)
{
digitalWrite(pinled, 1);
}
else if (str.indexOf("OFF") >= 0)
{
digitalWrite(pinled, 1);
}
}
delay(500) ;
}
void sendtoserver()
{
String str = "GET /weixin/1.txt\r\n\r\n\r\n";
sclient.print(str); }
void connecttoserver()
{
if (!sclient.connected())//几个非连接的异常处理
{
//Serial.println("1" );
if (!sclient.connect(host, tcpPort))
{
sclient.stop();
delay(500);
}
}
}
图3-1最终结果
微信接入arduino的更多相关文章
- JAVA实现 springMVC方式的微信接入、实现消息自动回复
前段时间小忙了一阵,微信公众号的开发,从零开始看文档,踩了不少坑,也算是熬过来了,最近考虑做一些总结,方便以后再开发的时候回顾,也给正在做相关项目的同学做个参考. 思路 微信接入:用户消息和开发者需要 ...
- 微信公众平台开发教程(一)_微信接入校验以及token获取
微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础. 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 ...
- asp.net mvc 5 微信接入VB版 - 获取AccessToken
获取AccessToken是微信接入的又一个基础操作.很多微信接口需要这个2小时一刷新的AccessToken作为参数. 转载请说明作者Nukepayload2 首先根据开发文档把获取AccessTo ...
- asp.net mvc 5 微信接入VB版 - 接入认证
微信接入官方文档是php的,网上被抄好几遍的代码是c#的,就是没vb的.今天我把这个坑填了,做vb版的接入认证. 首先是照着开发文档把微信接入的模型写好.在Models文件夹新建一个Model Pub ...
- Python使用微信接入图灵机器人
1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址:https://wxpy.readthedocs.io 从 PYPI 官 ...
- 微信平台ASPX高级定制开发(一):如何使用C#建立响应微信接入和自动回复的代码
微信平台不解释了,如果不了解的百度一下下,如果不会用微信,请自宫,光盘重启电脑,打开CMD输入Format C:.网上有很多针对企业级的高级定制ASPX开发,写得草草了事,很多男人干事都草草了事,这可 ...
- 【chrome插件】web版微信接入图灵机器人API实现自动回复
小贱鸡自动回复API已经不可以用了,现在改良接入图灵机器人API 360chrome浏览器团队翻译了部分谷歌插件开发文档 地址:http://open.chrome.360.cn/extension_ ...
- ASP.NET MVC 微信公共平台开发之 微信接入
ASP.NET MVC 接入微信公共平台 申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注 ...
- ASP.NET实现企业微信接入应用实现身份认证
目录 #需求场景 #参考 #具体步骤 1.获取access_token 2.构造网页授权链接 3.获取访问用户身份 #.Net具体代码 1.Web首页服务端代码 2.帮助类代码 #需求场景 一个.ne ...
随机推荐
- SQL 读取XML到Datatable
DECLARE @hdoc INT --XML 数据格式 --------------------------------------------------------- ) SET @doc = ...
- jQuery 练习:tab 切换
实现内容随菜单切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- js的map遍历和array遍历
1. array遍历: [1].forEach() forEach是ES5中操作数组的一种方法,主要功能是遍历数组.forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第 ...
- window.requestAnimationFrame与Tween.js配合使用实现动画缓动效果
window.requestAnimationFrame 概述 window.requestAnimationFrame()这个方法是用来在页面重绘之前,通知浏览器调用一个指定的函数,以满足开发者操作 ...
- Android为TV端助力 MediaPlayer的一些使用方法简历
这里提供一些MediaPlayer的简单方法,方便以后熟练的使用它! 1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlay ...
- IDEA基于Maven Struts2搭建配置及示例
1.web.xml加载struts框架即过滤器,要注意struts版本不同过滤器配置也不同. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems ...
- 关于WPF中TextBox使用SelectAll无效的问题的解决办法
1.首先保证你设置的SelectionBrush不是透明的颜色或者和背景色相同 2.在使用SelectAll之前要保证Textox以及获取到焦点. this.textbox.SelectionBrus ...
- python语言学习---4
第五天 1.任意个参数函数怎么敲? 只需定义一个可变参数即可:可变参数名字前要加 * ,可以传入0个或多个参数. #内部解释器原理:Python解释器会把传入的一组参数组装成一个tuple(不可变)传 ...
- Spring Data Redis 让 NoSQL 快如闪电(2)
[编者按]本文作者为 Xinyu Liu,文章的第一部分重点概述了 Redis 方方面面的特性.在第二部分,将介绍详细的用例.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 把 Redis ...
- Add correct host key in /root/.ssh/known_hosts to get rid of this message
bug: Add correct host key in /root/.ssh/known_hosts to get rid of this message 解决办法: rm ~/.ssh/known ...