完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我发表上一篇教程如何使用网页控制Led后,有人问我如何控制一个以上的Led,今天我来告诉你如何控制两个Led,并用更为时尚的网页元素—图像。
图像 首先你要明白当一个网页引用了一些外部资源(如图像,javascript...)后的处理流程:
当服务器应答,它在响应的头文件中告诉浏览器他发送的文件MIME类型。下面这个例子(用Fiddler嗅探)是关于PNG图像。 Arduino代码应该能够:
二进制资源 图片是一个二进制文件,在这个例子中我们应该能够把它以字节数组(byte arrays)的形式存放在我们的代码中。我发现 bin2h这个工具可以帮助我们进行转换。 转换结果是一个文本文件: 为了节省Arduino内存,我们用PROGMEM指令存储在flash中: Arduino 同往常一样,完整的代码共享在GitHub。 下面是我的代码将显示在浏览器的网页。 当用户点击其中一个图标,浏览器将请求该页面并添加?LEDx后缀:Arduino将改变相应的Led状态和图标的颜色。 让我们先来了解一些代码片段。
[color=rgb(51, 102, 153) !important]复制代码 我们的代码解析浏览器的请求,如果请求两个图片中的一个图片,调用send_png_image()方法,把它发送给浏览器。
[color=rgb(51, 102, 153) !important]复制代码 这个方法准备正确头文件及用emit_raw_p方法添加图形文件的二进制数据到响应,最后用httpServerReply()发送响应给浏览器。
[color=rgb(51, 102, 153) !important]复制代码 如果浏览器的请求中包含?LEDx,Led的状态发生改变,HTML页面重新创建,根据Led的状态设定正确的图标。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10371 浏览 0 评论
60659 浏览 77 评论
5964 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36099 浏览 219 评论
10026 浏览 0 评论
489浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1250浏览 1评论
1392浏览 1评论
602浏览 0评论
722浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 21:16 , Processed in 0.606483 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号