0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用javascript函数通过adafruit Huzzah的ajax回调来控制arduino

454398 来源:网络整理 作者:网络整理 2019-11-12 08:47 次阅读

步骤1:您需要什么

我为要使用ESP8266上的html页面控制arduino的用户构建了这个项目。该项目的目标是创建一个简单的方法,使用javascript函数设置arduino上的pin值。对于样板onclick =“ SetPin(12,1,0)”会将您的arduino上的Pin 12设置为High。

对于本教程,您将需要以下各项才能准确进行。但是,我认为它应该适用于大多数arduino和ESP8266组合。但是,要完全按照我在这里的内容进行操作,您将需要以下组件。

Arduino Uno-应与具有串行Rx Tx的任何arduino兼容产品一起使用

Adafruit Huzzah接线板

USB至串行电缆

4个低功耗LED

模拟浊度测试仪-任何提供模拟输出的模拟传感器都可以使用

Wire

Wifi路由器

带有移动浏览器的手机

Arduino库。

第2步:准备Arduino ID

该项目需要一个新的arduino库和一些配置,以节省时间。我不会在每个屏幕上都放一个镜头,而只是要遍历您需要配置并使其运行的所有内容。我试图使它对用户来说尽可能容易。

代码使用许多库来工作。首先,我们将专注于为ESP8266设置arduino,在本示例中,我将使用Adafruit Huzzah,因为我发现adafruit产品是最可靠的,并获得最佳支持。只要您不尝试从Adafruit Discord服务器获得支持即可。在支持论坛上获得帮助会更好。

无论如何,我在ESP8266上使用以下库

ESP8266WiFi

WiFiClient

ESP8266WebServer

ArduinoJSON

这不是有关如何下载的教程然后安装库,这些是HUZZAH上使用的库。因此,请找到并安装它们。

您还需要安装HUZZAH的板定义,因此,如果转到FILE》首选项

在显示“其他板管理器URL”的框中,请添加以下

http://arduino.esp8266。 com/stable/package_esp8266c 。..

如果您已经在此字段中添加了某些内容,则请确保在其中添加逗号以添加其他面板URL。单击确定,然后单击确定。

工具》开发板》开发板管理器

比通过ESP8266社区安装ESP8266来搜索ESP8266。

现在很棒,请确保我们具有使arduino代码正常工作所需的一切。一个arduino端arduino本身在本教程中仅使用2个库。

SoftwareSerial

ArduinoJSON

您应该已经具备。

步骤3:准备ESP8266

现在,我们将代码放到ESP8266(Adafruit HUZZAH)上并进行准备它用于连接到Arduino。解压缩HUZZAH的代码,然后打开草图。在第11和12行上,将ssid和密码更改为本地网络上的WIFI连接的密码。您会注意到,草图文件和index.h文件有2个文件。 index.h文件是html的存储位置,它将在您的手机中显示。

为wifi设置正确的SSID和密码后,您可以编译代码并将其加载到ESP8266上。在HUZZAH上,您必须按住标有GPIO0的按钮,然后单击“ rest”按钮,然后放开GPIO0按钮以使芯片进入引导加载程序模式。如果芯片已成功进入引导加载程序模式,则红灯会亮起,指示芯片处于引导加载程序模式。

要连接到ESP8266,您需要使用串行电缆或USB到串行适配器,或者FDTI芯片。在这种情况下,我将按照说明中的说明使用adafruit的电缆。但是,您可以通过Tx和Rx引脚上的TTL通过几种方式连接到芯片。我希望查看此内容的人知道如何连接到芯片以将代码加载到芯片上。无论如何,继续执行此步骤,并使用zip文件中的代码刷新芯片。

步骤4:准备Arduino

要将代码加载到arduino,请将板定义更改为Arduino/Genuino Uno。比解压缩附加到此步骤的文件。然后将其上传到ardunio。确实很简单,所有的辛苦工作已经为您完成。我已经经历了一个错误处理的试验,因此您所要做的就是上传代码。

步骤5:一起布线

好,所以对于布线,我上面有一张上面的图片。

将Huzzah上的Tx连接到arduino的Pin2。

将Huzzah上的Rx连接到arduino的Pin 3。

我在arduino的引脚2和3上创建了另一个串行插座,以释放默认的串行控制台。

将arduino的引脚V +和En连接到5v。 -adafruit Huzzah内置有一个3.3v稳压器,因此像这样插入这些引脚可能不适用于所有ESP8266模块。您可能需要连接自己的稳压器。如果您只是想让事情轻松进行,我建议您使用Huzzah。

将GND连接到arduino的GND

在您的LED的arduino线上的引脚12,11,9,8上,我在这里使用了低功耗LED,因为它们消耗的电流可能过多为了使此实验简单起见,会消耗太多功率。

比起arduino上的A0模拟引脚0,我已经插入了Turpitity测试仪的输出线。但是,您可以插入几乎任何会提供模拟读数的传感器的输出。

这就是您要做的所有事情。

第6步:访问网页

现在,您已经连接了arduino,并将所有内容加载到板上,您需要能够查看手机上的html。现在,我希望您连接到在Huzzah的代码中设置了SSID和密码的同一WiFi路由器。不需要确定路由器已分配给设备的IP地址。通常,如果您登录路由器配置,则应该有一个客户端列表。这显示了连接到Wifi连接的所有设备的IP地址。

但是,如果找不到此IP地址,则可以从arduino拔下插头,然后再次使用串行电缆运行它。如果您在设备上打开串行控制台,它将在串行控制台中将IP地址打印到该设备,以防您无法找到其他方式。

无论如何,一旦您用手机连接到同一Wifi网络。而不是将您的移动Web浏览器指向Huzzah的IP地址。看起来可能与此类似。 http://192.168.0.107或类似的东西。

我在其中放置了一个基本页面,该页面允许您打开和关闭4个LED以及读取模拟传感器的值。

步骤7:使用Javascipt

在ESP8266Code草图中名为index.h的文件中,它应作为arduino编辑器中的单独选项卡出现。您可以在这里看到我做的基本示例。基本上它的工作方式是这样的。

SetPin(12,1,0); SetPin({Pin Number},{Value 1 High 0 Low},{IsAnalog 1 Yes 0 No})

这会将数字引脚12的值设置为高

SetPin( 4,0,0);

这会将数字引脚4的值设置为低

SetPin(A2,439,1)

这会将模拟引脚2的值设置为439

同样,函数GetJSON将从引脚返回请求的值,并将其放入以指定div ID表示的html中。

GetJSON(‘A0’,1,‘resp_i’)GetJSON({Pin Number},{IsAnalog 1是0否},{要返回结果的HTML元素的ID})

这将向arduino发送请求,要求其提供模拟引脚0的值,并将结果返回给ID为resp_i的Div

GetJSON(12,0,‘mydiv’);

这将询问arduino获取数字引脚0的值并将结果返回到具有mydiv和id的html元素

步骤8:支持

我希望我的脚本帮助想要使用它的人。我在这里使用了一个非常基本的html示例,希望其他人可以探索它无法实现的所有功能。但是,这应该演示如何在没有html页面加载和类似性质的情况下使用ajax控制arduino。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • javascript
    +关注

    关注

    0

    文章

    511

    浏览量

    53396
  • Arduino
    +关注

    关注

    184

    文章

    6425

    浏览量

    184769
收藏 人收藏

    评论

    相关推荐

    如何让Adafruit 320x240 IPS TFT显示屏在PSoC上运行?

    我有一台 Adafruit 320x240 IPS TFT 显示屏,希望它能够使用我的 PSoC 4200 主板绘制图像。 来自 Adafruit 的代码库是为 Arduino 设计的,我不确定如何让它在 PSoC 上运行。
    发表于 01-22 06:33

    javascript深入浅出

    、数据类型、运算符、控制结构、函数等。变量是用来存储数据的标识符,数据类型包括数字、字符串、布尔值、对象、数组等。运算
    的头像 发表于 11-16 10:34 323次阅读

    如何通过wifi传输传感器数据到mac?

    这是我所拥有的: Adafruit Huzzah Feather (esp8266) Hr-sc04 范围传感器 Arduino Uno 我或多或少没有使用 arduino 和编程的
    发表于 06-12 06:55

    适用于ArduinoAdafruit NeoPixel Shield

    电子发烧友网站提供《适用于ArduinoAdafruit NeoPixel Shield.zip》资料免费下载
    发表于 06-09 10:27 0次下载
    适用于<b class='flag-5'>Arduino</b>的<b class='flag-5'>Adafruit</b> NeoPixel Shield

    在适用ArduinoAdafruit NeoPixel Shield上显示文本

    电子发烧友网站提供《在适用ArduinoAdafruit NeoPixel Shield上显示文本.zip》资料免费下载
    发表于 06-09 10:24 0次下载
    在适用<b class='flag-5'>Arduino</b>的<b class='flag-5'>Adafruit</b> NeoPixel Shield上显示文本

    使用Platform.io和Adafruit Feather Huzzah上传时遇到的问题求解

    我正在使用 Platform.io 和 Adafruit Feather Huzzah。我能够上传到这个板大约一天。 现在我在上传时遇到问题。 它是这样的: 构建良好,上传良好......蓝灯闪烁了
    发表于 06-09 07:53

    如何将.bin文件加载到Huzzah

    我一直致力于基于 Adafruit Huzzah 的项目,并希望将代码作为 .bin 文件分发。我可以在 Arduino IDE 中使用 Ctl-Alt-S 导出编译后的代码(在 sketch
    发表于 06-09 06:01

    max31855连接到wemos时,无法使用adafruit的示例代码serialtermocouple获得任何信号怎么解决?

    given CS pin. //#define MAXCS10 //Adafruit_MAX31855 thermocouple(MAXCS); #if defined(ARDUINO
    发表于 05-30 09:39

    ESP8266 (ESP-12) Huzzah不响应AT命令的原因?

    我最近使用 esp flasher 工具刷新了我的 esp8266 huzzah 以响应 AT 命令。我用NONOS SDK V2.0.0刷机,提示刷机成功。当试图通过 Arduino 串行监视器
    发表于 05-30 09:23

    Adafruit HUZZAH ESP8266在串口监视器(74880 波特)模块显示总是无限循环怎么解决?

    Adafruit HUZZAH ESP8266 在串口监视器(74880 波特)模块显示总是无限循环 代码:全选Fatal exception (0): epc1=0x40211668, epc2
    发表于 05-30 08:10

    Huzzah Feather ESP8266 WiFi与Arduino ESP8266相同吗?

    我有一块 Huzzah Feather ESP8266 WiFi 板。 1 - 这与 Arduino ESP8266 相同吗? 2 - 处理器指令集是否相同? 我猜不同的版本在处理器 3 上有
    发表于 05-15 08:13

    MQTT反复重连/函数是怎么回事?

    关于我用来通过 WiFi 和 MQTT 打开和关闭设备的代码,我实际上有三个问题。根据我在 Arduino IDE 中看到的情况,MQTT 正在反复连接和重新连接。在我看来,这应该只发生一次。 另外
    发表于 05-12 07:03

    ESP8266 Adafruit HUZZAH和macOS 12.1和IDE 1.8.16上试用3.0.2的疑问求解

    你好。我一直在使用 2.7.4,但今天决定在我的 ESP8266 Adafruit HUZZAH 和 macOS 12.1 和 IDE 1.8.16 上试用 3.0.2。 很抱歉,它甚至无法使用我
    发表于 05-08 08:56

    Huzzah ESP8622连接到Arduino Uno,Wifi未连接的原因?

    了一块 ESP8266 Huzzah 开发板,认为它适合 wifi 连接,并且可以连接到家里的 Arduino Uno(如果需要,我也有 FTDI 电缆)。Adafruit HUZZAH
    发表于 05-04 08:36

    Adafruit Feather HUZZAH ESP8266编译时出错怎么解决?

    Mac Catalina 10.15.1、Arduino 1.8.10、Adafruit Huzzah 刚刚对操作系统和 IDE 进行了全新安装(即在格式化的驱动器上),ndex.json
    发表于 05-04 07:14