【实战】物联网安防监控项目【4】———从网页上控制A9的LED灯

2023-05-16

  

前言

        学习了一个新知识,当然要记录一下啦。这两天学习了boa服务器、cgic标准库和html标签语言,又双叕解锁一个嵌入式的新玩法。cgic库是沟通C语言和html网页编程语言的一座桥梁,通过在linux设备上运行boa服务器程序,分别在boa文件夹的cgi-bin、www文件夹中添加.cgi和.html文件则可实现C语言和html语言的交互。cgic也可以看成一个接口。

演示视频:

从web网页上点亮linux开发板LED灯

注:在做下面的事情之前前确保你的linux已经移植好了boa、cgic和html;

开发板的linux根文件系统必须挂载在Ubuntu下;

关于boa、cgic和html服务器的移植在【实战】物联网安防监控项目【3】———CGI的移植及与html的通信

实现过程

下载armledtest.zip(已免费开源在我的资源中) ,解压后复制到Ubuntu任意目录,

其中的x86ledtest.zip可用于Ubuntu下测试网页发送数据模拟控制Ubuntu的LED灯。

1、打开Makefile 

并把:

KERNELDIR :=/home/fengjunhui/kernel/linux-3.14

修改成你的linux内核的目录

 

NFS_BOA_WWWDIR=~/source/rootfs/boa/www/

修改成你的开发板挂载在Ubuntu上根文件系统上的/boa/www/内


NFS_BOA_CGIDIR=~/source/rootfs/boa/cgi-bin/

修改成你的开发板挂载在Ubuntu上根文件系统上的/boa/cgi-bin/内

或者你可以自己编写一个简单一点的Makefile

可参考:

2、编译

make

我把生成以下文件放在了子目录demo中

make install

 读Makefile中的语句可得知Makefile帮我们做了两件事

①把meiyanfang.mp、 所有的.jpg文件、led.html被复制到了开发板挂载在Ubuntu上根文件系统的/boa/www/内

②把cgi_led.cgi复制到了开发板挂载在Ubuntu上根文件系统的/boa/cig-bin/内

3、sudo cp demo.ko /你的开发板的根文件系统的绝对路径

4、启动开发板

5、插入内核模块

insmod dem.ko

6、启动boa程序

./boa

如果启动失败可能是因为是x86架构的,去Ubuntu下面用file命令进行查看,如果是,请移步我上一篇文章中,可找到解决方法。

加 & 的意思是在后台运行

 7.打开网页,输入网址192.168.0.220/login.html

192.168.0.220根据你的开发板IP号修改

 

账号密码在cgic205/login.c中可以看到并且修改

记得把这里修改成你开发板的ip地址,不然就跳转不到你的下一个页面 

选择第一个终端 My room

在login.html中编程的时候一开始写中文还好好的,后来就不知道为什么会发生乱码,于是翻译成了英语。

点击硬件控制

进入web点亮led灯 

这个就根据你的开发板上的LED灯来控制了 

网页源码 

登录界面:login.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



<title>智能管理系统 - 登陆</title>

<style type="text/css">

<!--

body,td,th {

	font-family: "宋体";

	font-size: 14px;

	color: #fff;

	line-height: 20px;

	font-weight: bold;

	

}

body {

	margin-left: 0px;

	margin-top: 0px;

	margin-right: 0px;

	margin-bottom: 0px;

	background-color: #73A3D3;

	background-attachment: fixed;

	background-repeat: repeat-x;

}

input {

	height: 20px;

	width: 120px;

	background-color: #FFFFFF;

	color: #333333;

	border: 1px solid #5B7290;

}

a:link {

	text-decoration: underline;

	color: #003366;

}

a:visited { 

    text-decoration: underline;

	color: #003366;

}

a:hover{

	color:#003366;

	text-decoration:none;

}

.txt {

	font-size: 12px;

	font-weight: normal;

	color: #003366;

}

-->

</style>

</head>

<body>

<table width="1003" border="0" align="center" cellpadding="0" cellspacing="0">

<tbody><tr>

<td width="1003" height="216" background="images/login/login_05.jpg"></td>

</tr>

<tr>

<td height="215" background="images/login/login_04.jpg"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tbody><tr>

<td width="43%"></td>

<td width="57%"><table width="300" border="0" cellspacing="10" cellpadding="0">

<tbody><tr>

<td> &nbsp;请输入您的用户名及密码</td>

</tr>

<tr>

<td><form name="form1" method="post"  action="cgi-bin/login.cgi">

<table width="100%" border="0" cellspacing="9" cellpadding="0">

<tbody><tr>

<td width="92">用户帐号:</td>

<td width="130"><label>

<input name="username" type="text" id="username" value="imysy_22"></label></td>

</tr>

<tr>

<td>登录密码:</td>

<td><label>

<input name="password" type="password" id="password" value="123"></label></td>

</tr>



<tr><td height="25"></td>

<td><input type="image" name="submit" style="width:97px;height:25px;" src="images/login/go.gif"></td>

</tr>

</tbody></table>

</form></td>

</tr>

</tbody></table></td>

</tr>

</tbody></table></td>

</tr>

<tr>

<td height="211" align="center" background="images/login/login_03.jpg" class="txt">

开发人:imysy_22 技术支持QQ: 371285540<br>

xxx提供技术支持<a href="https://blog.csdn.net/imysy_22_" target="_blank"><b>imysy_22的博客</b></a></td>

</tr>

</tbody></table>

</body></html>

主页界面:index.html

  <html>

  	<body background="./images/background4.jpg">

		<table width="454" height="540" border="0" align="center"  background="">

    		<tr>

				<h1 align="center"> Welcome to the intelligent security monitoring system!</h3> <br/>

				

				<div align="center">

          			<img src="./1.jpeg">

				<tr>

					<td height="59"></td>
				</tr>

				<tr>
					<td height="70"><h1 align="center"><a href="home1.html"><font  face="华文隶书"  color="red"  size="+3">My room</font></a></h1></td>
				</tr>

				<tr>
					<td height="60"><h1 align="center"><a href="home2.html"><font  face="华文隶书"  color="red"  size="+3">school basketball court</font></a></h1></td>

				</tr>

				<tr>

          			<td headers=""><h5 align="left"> With the rapid development of modern power electronics technology and microelectronics technology, and the continuous improvement of automation and intelligence, the home security technology is constantly developing. The traditional home security system has become increasingly unable to meet the needs of modern people. Consumers hope that they can "see" the situation on the spot in real time, and can remotely control some automation equipment on the spot to deal with emergencies. The scheme of this project mainly uses internet, GPRS, 3G, WIFI and other technologies to realize remote monitoring and communication. This system not only has the basic embedded features such as easy maintenance, scalability and security, but also fully integrates embedded and communication technologies. This makes the system's functional expansibility very good, and the scheme has a certain leading edge, and it can be applied to many other occasions with a little customization. It should be helpful for us to master the traditional embedded LINUX technology and the relatively new 3G technology and to find jobs after graduation.

				</tr>

	 	</table>
				

				</tr>

				<tr>

          		<h2 align="center">  click the scene you want to enter</h3> <br/>

				</tr>

				<tr>

          		<h3 align="center"> Designed by imysy_22</h3> <br/> 

				</tr>

				<tr>

					<td height="61">&nbsp;

				</td>

				<tr>

					<td>

				</tr>

          		<a href="/cgi-bin/test.cgi">poke me to cgi page</a>

     </body>

  </html>

  

硬件配置界面:a9_zigbee1.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



	<head>

		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

		<title>硬件控制 Control</title>

		<style type="text/css">

			.main {

				float: none;

				height: 424px;

				width: 424px;

				background-image: url();

				background-repeat: no-repeat;

			}

			

			.strip {

				height: 28px;

				width: 200px;

				margin-top: 55px;

				margin-bottom: 30px;

				margin-left: 100px;

			}

			

			.strip1 {

				height: 28px;

				width: auto;

				float: inherit;

			}

			

			.strip2 {

				height: 30px;

				width: 275px;

				margin-top: 30px;

				margin-bottom: 30px;

				margin-left: 100px;

			}

			

			.strip3 {

				height: 60px;

				width: 250px;

				margin-top: 30px;

				margin-bottom: 30px;

				margin-left: 100px;

			}

			

			.clear {

				clear: both;

				height: 0;

				font-size: 1px;

				line-height: 0px;

			}

			

			.demo {

    position: relative;

    left: 360px;

    top: 10px;

			}

		</style>

	</head>



	<body background="./images/background4.jpg">



		<table width="600" border="2" height="317" align="center" background="./images/fs4412.jpg">

			<tr>

				<td>&nbsp;</td>

			</tr>

		</table>



		<table width="600" height="50" border="2" align="center">

			<tr>

				<td width="294">

					<div align="center">硬件控制</div>

				</td>

				<td width="296">

					<div align="center">

						<a href="home1.html">回主页</a>

					</div>

				</td>

			</tr>

		</table>


		<table width="400" height="270" align="center" border="3" bordercolor="red">

			<td height="60">

				<div align="center">

					<form id="form1" name="form1" method="post" action="cgi-bin/a9_led.cgi">

						<div class="strip1">

							<a href="led.html">wed点亮led</a>

						</div>

					</form>

				</div>

			</td>

			</tr>

			<tr>

				<td height="60">

					<div align="center">

						<form id="form4" name="form4" method="post" action="cgi-bin/a9_beep.cgi"> <input type="hidden" name="store" id="hiddenField" value="1" />



							<label>Beep:

              <input type="radio" name="beep" value="1" id="beep_0" />

              开</label>



							<label>

              <input type="radio" name="beep" value="0" id="beep_1" />

              关</label>



							<input type="submit" name="button4" id="button4" value="提交" />

						</form>

					</div>

				</td>

			</tr>

			<tr>

				<td height="60">

					<div align="center">

						<form id="form3" name="form3" method="post" action="cgi-bin/a9_seg.cgi">

							<div class="strip1"> <input type="hidden" name="store" id="hiddenField" value="1" />



								<label>Seg:

                <input type="radio" name="seg" value="1" id="seg_0" />

              on</label>



								<label>

                <input type="radio" name="seg" value="0" id="seg_1" />

                off</label>



								<input type="text" name="segvalue" id="textfield" size="2" />

								<input type="submit" name="button3" id="button3" value="提交" />

							</div>

						</form>

					</div>

				</td>

			</tr>

			<tr>

				<td height="60">

					<div align="center">

						<form id="form2" name="form2" method="post" action="cgi-bin/zigbee_fan.cgi">

							<div class="strip1"> <input type="hidden" name="store" id="hiddenField" value="1" /> Fan:



								<label>

                <input type="radio" name="fan" value="0" id="fan_0" />

                off</label>



								<label>

                <input type="radio" name="fan" value="1" id="fan_1" />

                1</label>



								<label>

                <input type="radio" name="fan" value="2" id="fan_2" />

                2</label>



								<label>

                <input type="radio" name="fan" value="3" id="fan_3" />

                3</label>



								<input type="submit" name="button2" id="button2" value="确定" />

							</div>

						</form>

					</div>

				</td>

			</tr>

		</table>

		

		<tr>

				<td>

					<form>

					<div class="demo" align="left">我国安防行业在经过了近30年的发展后,已经形成了长三角、珠三角、环渤海三大产业聚集区,<br/>

						并且诞生了以海康威视、大华股份、宇视科技为首的第一阵营,前三强市场份额加起来占比达到50%以上,<br/>

						产业集成度较高。每个月光是从杭州生产出来的安防摄像机都高达百万台,市场竞争激烈。

						<br/>

						<br/> 

						</form>

					</div>

				</td>

			</tr>



	</body>



</html>

led点灯界面:led.html

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    

	<title>web控制A9开发板led</title>

	</head>

	

	<body background="./473252.jpg">

	<br />

	<embed src="./meiyanfang.mp3" autostart="true" loop="true" hidden="true"> 

	<h1 align="center">基于Cortex-A9的web控制LED灯</h1>

		<!--新建一个表单,动作链接到开发板的/cgi-bin/cgi_led.cgi,采用的方法为GET-->	

		<form action="/cgi-bin/cgi_led.cgi" method="get">  

			<p align="center">Web端的led的控制测试</p>

			<p align="center">请输入需要控制的led <input type="text" name="led_control"/></p>

			<p align="center">请输入控制led的动作 <input type="text" name="led_state"/></p>

			<p align="center"><input type="submit" value="sure"/>        

							  <input type="reset" value="back"/>

			</p>

		</form>

	</body>

</html>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【实战】物联网安防监控项目【4】———从网页上控制A9的LED灯 的相关文章

  • 在线教程 | 用「网红项目」DeepSOCIAL 进行社交距离监测

    首发自 xff1a 公众号 HyperAI超神经 内容一览 xff1a YOLO v4 是一个实时的 高精度的目标检测模型 xff0c 本教程将详细讲解如何基于 YOLO v4 和 SORT 算法 xff0c 实现在多目标条件下的人群距离检
  • C#实现服务端/客户端的tcp异步通信完整示例

    demo 通过一个简单的demo xff0c 实现服务器和客户端之间的tcp异步通信 消息进行了Des加密和解密 运行动图如下 xff1a 图中有三个程序在运行 xff0c 最左边是服务端 xff0c 另外两个是客户端 xff0c 客户端可
  • C++封装HTTP

    C 43 43 封装HTTP Client 简介HTTP请求头封装HTTP请求头基本格式post请求头封装post请求头 HTTP Client 以及HTTP Server交互HTTP消息解析TCP封装HTTP Client的坑 Trans
  • android 自定义多功能进度条

    自定义进度条 xff0c 直接在布局文件里传入颜色值 xff0c 不用自己再去写样式 xff0c 还可以 效果图 xff1a git地址
  • 树莓派L298N电机驱动程序连接图文教程

    手里有一块树莓派3闲置很久 xff0c 不知干点啥好呢 看到不少网友用树莓派做智能小车 xff0c 好像很好玩的酱紫 xff0c 就到淘宝买了一些配件 对于硬件小白的我来说安装过程并不轻松 xff0c 网上看了很多资料但有的地方介绍的并不很
  • 一个比较好用的socket 类封装(封装http 请求)

    name myhttp h function http 请求 copyright author mark date 2008 05 13 ifndef MY HTTP INCLUDE define MY HTTP INCLUDE inclu
  • Odroid U3 烧写镜像文件

    在Ubuntu下往Odroid U3板子的eMMC卡里烧写xubuntu镜像文件 xff0c 主要步骤如下 xff1a 1 下载要烧写的镜像文件 xff0c 按照需要 xff0c 我下载的是桌面版的xubuntu 13 04 desktop
  • 解决odroid-XU3的HDMI输出问题

    odroid XU3的板子直接通过microHDMI口连接显示器 xff0c 并没有显示 解决方法是修改 media boot boot ini文件 xff0c 取消屏蔽与HDMI设置相关语句 重启之后 xff0c 解决问题 由于不同的显示
  • 现有的 TypeRef 应有对应的 TypeDef(Impl),但它没有

    现有的 TypeRef 应有对应的 TypeDef Impl xff0c 但它没有 本人需要在C 中调用C 43 43 代码 xff0c 故而建立了一个CLR项目 xff0c 建立了四个文件 xff0c 分别是两个纯C 43 43 文件 C
  • [zed2i] 相机内参数获取

    内置对应的程序 xff1a 双目SDK校正方法 关灯避免反射 xff0c 使得房间的灯光尽可能的黑 xff0c 拿着相机对准屏幕的标定板 xff08 可以不关灯 xff09 开始校正 xff0c 红圈是目标 xff0c 需要移动蓝圈 xff
  • Unity 2D独立开发手记(八):基于A*算法的简易寻路

    被生活 43 43 了一个多月 xff0c 都没时间上来吹比了 因为破游戏准备设计敌人了 xff0c 苦于Unity自带的导航系统迟迟不适配2D项目 xff0c 即便用最新的NavMeshSurface把3D当成2D来用 xff0c 也和我
  • 新建keil工程每一个文件夹的作用

    问 xff1a 头文件stm32f10x sdio c的作用 xff1f 有时候在添加路径的时候为什么不添加src xff1f 有些工程里就添加了 新建工程的每一个文件夹的作用 core xff0c obj xff0c STM32 FWLI
  • VScode使用时常见问题

    写在篇首 xff0c vscode各种蜜汁bug xff0c 记录一下解决方案供大家参考 1 无法使用C 43 43 万能头文件 include xff1c bits stdc 43 43 h xff1e 解决方案 在刷题的时候 xff0c
  • Socket网络编程总结

    网络中进程之间如何通信 Java最初是作为网络编程语言出现的 xff0c 其对网络提供了高度的支持 xff0c 使得客户端和服务器的沟通变成了现实 xff0c 而在网络编程中 xff0c 使用最多的就是Socket 像大家熟悉的QQ MSN
  • linux tcp并发式服务器应用SELECT函数编写实例源代码(转载)

    include lt stdio h gt include lt stdlib h gt include lt unistd h gt include lt errno h gt include lt string h gt include
  • Activity启动模式与任务栈(Task)、TaskAffinity应用场景【转】

    转载请注明出处 xff08 谢谢 xff09 xff1a Activity启动模式与任务栈 Task 全面深入记录 xff08 下 xff09 activities waiting to finish 任务栈 zejian 的博客 CSDN
  • VsCode技巧快捷键

    按住Alt 43 鼠标点击可以有多处光标同时编辑 快速显示大纲 相当于eclipse的打开当前类方法列表弹框 gt 设置为Alt 43 D 搜索go to symbol in File 设置即可 vscode设置匹配花括号跳转 Ctrl 4
  • jmeter察看结果树的响应数据时显示乱码

    找到jmeter的安装路径 xff08 即解压路径 xff09 打开apache jmeter 4 0 bin jmeter properties文件 搜索 encoding 关键字 xff0c 找到如下配置 xff1a The encod
  • class 和 struct的区别

    class 和 struct 最本质的区别 class 是引用类型 xff0c 它在堆中分配空间 xff0c 栈中保存的只是引用 xff1b 而 struct 是值类型 xff0c 它在栈中分配空间 什么是class class xff08
  • 第一周——总体了解STM32以及开发环境搭建

    什么是STM32 意法半导体 xff08 ST xff09 集团于1988年6月成立 xff0c 是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成 STM32系列基于专为要求高性能 低成本 低功耗的嵌入式应用专门设计的AR

随机推荐

  • 【ros下激光雷达的简单使用】(1)

    雷达简单使用方法 xff1a 思蓝科技S2的激光雷达 查看硬件是否连接成功 xff1a 使用lsusb wpf 64 wpfpc lsusb Bus 002 Device 001 ID 1d6b 0003 Linux Foundation
  • AMD CPU 电脑突然画面声音突然卡顿,卡碟声,画面撕裂

    有时候会突然卡顿个一两秒 xff0c 然后自己好 xff0c 如果主板买的早 xff0c 没更新过BIOS版本 xff0c 可能是因为AMD的fTPM设置有个BUG xff0c 开启之后有概率会随机卡顿 xff0c 各大厂商最新的主板驱动应
  • STL —— vector,list,deque,使用与优缺点比较

    关于vector list deque 已经做过介绍 xff0c 本文是对三种容器的优劣做出比较 下面是vector list deque的博客链接 vector list deque vector list对比 底层结构 动态顺序表 xf
  • android手机版tcp或者udp通讯测试工具,可以用于工业设备或者系统开发时间测试tcp或是udp连接通讯是否正常工作

    TUtool 介绍 由于工作需要一款安卓的tcp udp测试工具 xff0c 而市场里没有或者不好用 xff0c 或者都是广告 xff0c 现在个人开发者又不让发布应用了 xff0c 小巧好用不收集用户信息的不收费没有广告的小工具只能自己用
  • microhard p900数传配置方法

    配置好的两个 xff08 多个 xff09 数传电台可以通过串口直接相互通讯 xff0c 两个 xff08 多个 xff09 数传之间无线连接 数传电台可以配置多种通讯方式 xff1a 点对点 点对多 mesh组网 xff08 电台数量 2
  • boost.asio异步调用使用智能指针

    boost asio中的异步async 函数需要传入回调函数参数 xff0c 如果回调函数使用lamda表达式 xff0c 在 capture 列表中传入智能指针 xff0c 智能指针会生效吗 xff1f 在async connect调用之
  • sscanf 格式化输入 的关键 VS2010\VC\crt\src\input.c

    VS2010 VC crt src ctype h define ischartype l Char Flag Locale Locale 61 NULL amp amp locale t Locale gt locinfo gt mb c
  • VS万能头文件添加方法(整理版)

    本文所使用的技术来自B站up主 昕辰丶 首先按照图中箭头找到VS在磁盘中的位置 按照箭头操作 先在搜索中输入msvc 然后点击Tools结尾的MSVC文件夹 点击这唯一的文件夹 打开include文件夹 新建一个文件夹并且命名为 bits
  • 集美大学-浙大版《C语言程序设计实验与习题指导(第3版)》

    这是我2020年大一入学前写的代码 xff0c 当时的测试点是全过的 xff0c 现在可能有些测试点过不去了 xff0c 如果有发现测试点过不去的 xff0c 可以联系我修改一下 xff0c 希望大家共同进步 xff08 工作量有点大 xf
  • 集美大学 - 2840 - 实验7-1 - 编程题

    实验7 1 1 一维数组 简化的插入排序 本题要求编写程序 xff0c 将一个给定的整数插到原本有序的整数序列中 xff0c 使结果序列仍然有序 输入格式 xff1a 输入在第一行先给出非负整数N xff08 lt 10 xff09 xff
  • 听劝,不要试图以编程为基础去学习网络安全

    目录 一 网络安全学习的误区1 不要试图以编程为基础去学习网络安全2 不要刚开始就深度学习网络安全3 收集适当的学习资料4 适当的报班学习 二 学习网络安全的些许准备1 硬件选择2 软件选择3 外语能力 三 网络安全学习路线第一阶段 xff
  • 集美大学 - 2840 - 实验8 - 编程题

    实验8 1 9 指针 输出学生成绩 本题要求编写程序 xff0c 根据输入学生的成绩 xff0c 统计并输出学生的平均成绩 最高成绩和最低成绩 建议使用动态内存分配来实现 输入格式 xff1a 输入第一行首先给出一个正整数N xff0c 表
  • vscode中文乱码问题及几种常见的解决方案

    问题及原因 问题原因 xff1a 代码文件的字符编码格式为UTF 8 xff0c 但是terminal的字符编码格式为GBK 解决思路 xff1a 统一代码文件和terminal的字符编码格式 解决办法 说明 xff1a 以下的解决方案是针
  • 集美大学 - 2840 - 实验11-2 - 函数题

    实验11 2 1 链表 建立学生信息链表 本题要求实现一个将输入的学生成绩组织成单向链表的简单函数 函数接口定义 xff1a span class token keyword void span span class token funct
  • python正则表达式

    python正则表达式 match函数 re match尝试从字符串的起始位置匹配一个模式 xff0c 如果不是起始位置匹配成功的话 xff0c match 就返回none 函数语法 xff1a re span class token pu
  • 轻松解决VS配置OpenCV环境及导出OpenCV的VS项目模板

    一 OpenCV配置 1 下载OpenCV 点击进入下载OpenCV的官网界面 这里以Windows为例 xff0c 其他同理 xff08 可直接下载最新 xff09 2 提取OpenCV 在这里浅说一句 xff0c 为了方便环境配置文件管
  • 最大子段和问题

    以下给出具体代码 xff1a span class token macro property span class token directive hash span span class token directive keyword i
  • 如何简单又好看地美化你的Ubuntu界面

    起因 最近使用Ubuntu界面实属是审美疲劳了 xff0c 使用老版本的一大问题就是 界面太难看了 秉持新手学习最好是用老一点的稳定版本的观念 Ubuntu旧版本使用或使用过的人非常非常多 xff0c 学习的过程中你一旦出现什么问题互联网上
  • 【实战】物联网安防监控项目【2】———boa服务器的移植

    一 boa服务器的移植 1 源码下载 1 1 boa简介 xff1a 其可执行代码只有大约60KB左右 xff0c Boa是一个单任务的HTTP服务器 xff0c Boa只能依次完成用户的请求 xff0c 而不会fork出新的进程来处理并发
  • 【实战】物联网安防监控项目【4】———从网页上控制A9的LED灯

    前言 学习了一个新知识 xff0c 当然要记录一下啦 这两天学习了boa服务器 cgic标准库和html标签语言 xff0c 又双叕解锁一个嵌入式的新玩法 cgic库是沟通C语言和html网页编程语言的一座桥梁 xff0c 通过在linux