一、准备工作:
树莓派4B
继电器
杜邦线、导线若干
二、继电器连接图:
继电器有常开端和常闭端两种模式,有的继电器还具有高低电平触发选择的功能,这里我们使用常开端高电平触发的工作模式,接线如下所示:

三、编写程序:
此项目使用JSP+Servlet开发模式,需要树莓派安装Pi4J和Apache Tomcat(环境如何搭建请参见其他博客,这里不再赘述)。

JSP页面代码实现:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>开关</title>
</head>
<body><%String flag = (String) request.getAttribute("state");String turn = "On";String view;if ("On".equals(flag)) {turn = "Off";view = "已开启";} else {turn = "On";view = "已关闭";}%><a href="RaspSwitch?turn=<%=turn%>"><input type="button" value="<%=turn%>"></a><br><%=view%>
</body>
</html>

Servlet代码如下:

import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;@WebServlet("/RaspSwitch")
public class RaspSwitch extends HttpServlet {final GpioController gpio = GpioFactory.getInstance();final GpioPinDigitalOutput turn = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_07,"",PinState.LOW);//GPIO_07用于连接继电器的IN接口protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String str = request.getParameter("turn");if(str.equals("On")){turn.high();}else if(str.equals("Off")){turn.low();}request.setAttribute("state", str);request.getRequestDispatcher("SimpleSwitch.jsp").forward(request, response);}
}

四、部署、运行程序
将该JavaWeb项目导出war包,放到树莓派的Tomcat目录下webapps文件夹中,启动Tomcat,在PC端打开该页面,点击按钮进行开关的开启关闭控制。
运行结果:

树莓派远程开关控制家用电器(JavaWeb实现)相关推荐

  1. 【毕业设计】 基于单片机的wifi智能远程开关控制

    文章目录 1 简介 2 主要器件 3 实现效果 5 部分实现代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目demo 智能远程开关控制 大家可用结合到自己的 ...

  2. win10 tightvnc 连接(多个)树莓派远程桌面控制

    Step1:WIN10上安装tightvnc 下载地址:http://www.tightvnc.com/ 下载完成后,默认设置安装即可. 在这一步也可以选择仅安装viewer. Step2:raspb ...

  3. Air780E小程序远程开关-LuatOS版本

    目前,Air780E的CSDK已经开源了,LuatOS也作为其中的一个部分开源了出来,今天学习一下如何通过小程序远程控制开发板上灯的开关,学会以后可以制作远程开关控制各种设备. 本教程无需拥有服务器和 ...

  4. Jetson Nano - 实现VNC远程桌面控制

    Jetson Nano如何实现VNC远程桌面控制 本文教你如何实现VNC到你的Jetson Nano,这样就不需要连接屏幕来实现远程桌面控制啦. 树莓派官方系统默认是安装了RealVNC的服务,只需在 ...

  5. stm32-FreeRTOS-ESP8266-OneNET物联网远程开关,心知天气网络时间,开源代码电路原理图altium-pcb

    分享下自己基于OneNet物联网云平台的远程开关,可电脑 / 手机APP远程控制,亦可获取当前时间和近3日天气. 还有好多坑待填,开源仅作学习. 资源下载链接在文章末尾.stm32-FreeRTOS源 ...

  6. 物联网毕业设计 单片机wifi智能远程开关控制系统

    文章目录 1 简介 2 主要器件 3 实现效果 5 部分实现代码 1 简介 Hi,大家好,今天向大家介绍一个学长做的单片机项目demo 智能远程开关控制 大家可用结合到自己的 课程设计 或 毕业设计, ...

  7. 毕业设计 wifi智能远程开关控制系统 - 单片机 嵌入式

    文章目录 1 简介 2 主要器件 3 实现效果 5 部分实现代码 6 最后 1 简介 Hi,大家好,学长今天向大家介绍一个学长做的单片机项目demo 智能远程开关控制 大家可用结合到自己的 课程设计 ...

  8. esp8266 esp12 AT指令连接wifi热点联网,HTTP获取OneNET物联网平台消息,控制四路远程开关

    esp8266 esp12 使用AT指令联网非常方便,很适合应对已经开发好的成品需要增加联网功能的需求. 使用AT指令进行开发,大多数是产品已经开发好,只需要增加小数据量的联网功能,而且不想对既有成品 ...

  9. 树莓派系统烧录,连接电脑,电脑远程桌面控制树莓派(树莓派无屏幕,校园网)

    1.系统烧录 本人初学树莓派,没买屏幕,在学校里,用的是校园网,没有路由器,所以没办法直接通过网线连接树莓派和路由器,好让电脑能远程桌面控制树莓派,所以只能用迂回的方法,先让电脑通过ssh连接树莓派, ...

最新文章

  1. selenium之作用和工作原理
  2. 人和人之间是需要沟通的
  3. php内核总结_深入理解PHP内核(一)
  4. pin controller driver代码分析
  5. 【转】UDP协议格式以及在java中的使用
  6. Spark整合Ray思路漫谈
  7. java为什么不能输入钢筋符号_input.nextDouble();找不到符号
  8. linux内核的外部接口函数,linux内核中GPIO的使用(二)--标准接口函数
  9. 从Windows到鸿蒙——操作系统的前世今生
  10. iis应用池解决方案
  11. Python入门-traceback
  12. SketchUp: Rendering Using Twilight SketchUp:使用暮光之城进行渲染 Lynda课程中文字幕
  13. leetcode 927. 三等分
  14. Windows10无法启动windows安全中心服务怎么办?
  15. 计算机内存容量影响游戏的吗,内存容量对整机游戏性能影响有多大?看完秒懂...
  16. 房贷利率“换锚”今日落地!升还是降?对楼市有何影响?
  17. 【NAS】群晖使用自带DDNS实现外网访问
  18. IDEA文档注释(教程+模板)
  19. 计算机网络读书笔记(二)
  20. f(t)=tu(t)matlab,设f(t)=ε(t)-ε(t-1),f1(t)=f(t)cos(10πt),试用MATLAB...

热门文章

  1. php统计 柱状图,PHP动态柱状图
  2. 三星S6电信版7.0解锁获取root教程
  3. 实验十、差分放大电路参数对静态和动态的影响
  4. 本地yum - 下载阿里云cloud - 阿里云 挂在云盘 aliyun挂云盘
  5. Apk 极限压缩(说点不一样的)
  6. 详解声纹识别:如何正确评价小度在最强大脑中战平人类?|独家解析
  7. Python Numpy 求均值,方差,标准差
  8. Gym 100851F Froggy Ford(dijkstra)
  9. 第一个python程序(2)
  10. 求助大神:valgrind 出现 address 0x0 is not stack'd or (recently)freee'd怎么解决?linuxclionvalgrind## 标题