这是我的页面的HTML代码。我在这里使用了JQuery。 ESP8266 LED控制 如何通过ESP8266模块将数据从网页发送到Arduino UNO?
<!-- in the <button> tags below the ID attribute is the value sent to the arduino -->
<button id="11" class="led">Toggle Pin 11</button> <!-- button for pin 11 -->
<button id="12" class="led">Toggle Pin 12</button> <!-- button for pin 12 -->
<button id="13" class="led">Toggle Pin 13</button> <!-- button for pin 13 -->
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".led").click(function(){
var p = $(this).attr('id'); // get id value (i.e. pin13, pin12, or pin11)
// send HTTP GET request to the IP address with the parameter "pin" and value "p", then execute the function
alert("Sending Get Request");
$.get("http://192.168.4.1:80/", {pin:p}); // execute get request
});
});
</script>
</body>
</html>
当我将PC连接到ESP8266的无线网络,我能够控制连接在其上的LED。但我想通过互联网来控制它。 ESP8266模块已连接到我的调制解调器的wifi上,但我不知道如何在HTML页面中编写$.get()
方法,以便通过网络将请求发送到arduino。我试图把我的调制解调器的公共IP地址,而不是192.168.4.1(这是默认的ESP8266),它没有工作。
您需要配置您的调制解调器/路由器将端口80(或更好地使用不同的端口)的外部流量传递给'192.168.4.1:80' - 您将如何执行此操作取决于调制解调器/路由器,并且对于堆栈溢出来说是非常关键的。但在调制解调器/路由器的管理Web界面中查找“端口转发”或类似内容。 – CupawnTae
谢谢!有效。 – user3035457
欢迎。我想也许它可能对别人有用,并可以考虑在话题上,所以我已经发布了它作为答案。我会让其他人决定是否想脱离问题来解决问题,但至少它对你有用:) – CupawnTae