久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3177|回復: 1
打印 上一主題 下一主題
收起左側

E4A APP和ARDUINO mini D1之間的相互控制 附源程序

[復制鏈接]
跳轉到指定樓層
樓主
本實驗用E4A編寫了一個簡單的APP,手機端作為服務端,mini D1模塊作為客戶端,上電連接后,APP能夠控制模塊上的燈,也可以控制模塊上的紅外、射頻模塊發送相應的鍵值。反過來,用模塊上的一個按鍵的不同按鍵動作,包括單擊,雙擊,長按按下,長按彈起,分別控制手機撥打指定的號碼,發送短信,以及拍照等。實驗中,如果沒有模塊,手機安裝好APP后,可以用網絡調試助手進行簡單的測試。

制作出來的實物圖如下:


Arduino源程序如下:
  1. //MINI-D1板,D4/2腳是板載燈,D5/12腳紅,D6/13腳藍,D7/14腳綠,按鈕是D1/5腳,射頻D2/4腳,紅外D3/0腳
  2. #include <RCSwitch.h>
  3. RCSwitch mySwitch = RCSwitch();
  4. #include <IRremote.h>
  5. IRsend irsend;
  6. #include "OneButton.h"
  7. #include <ESP8266WiFi.h>
  8. #include <WiFiClient.h>
  9. //const char* STAssid = "TP-LINK_***";
  10. //const char* STApassword = "********";
  11. //const char* host = "192.168.0.105";
  12. const char* STAssid = "Redmi_***";
  13. const char* STApassword = "********";
  14. const char* host = "192.168.31.25";
  15. const uint16_t httpPort = 8090;
  16. WiFiClient client;
  17. bool is = 0;
  18. int red = 12;
  19. int blue = 14;
  20. int green = 13;
  21. int key1 = 5;
  22. int ledpin = 2;
  23. OneButton button1(key1, true);
  24. void setup() {
  25.   Serial.begin(115200);
  26.   while (!Serial) {
  27.   }
  28.   pinMode(0, OUTPUT);
  29.   mySwitch.enableTransmit(4);
  30.   Serial.println("Starting TwoButtons...");
  31.   button1.attachClick(click1);
  32.   button1.attachDoubleClick(doubleclick1);
  33.   button1.attachLongPressStart(longPressStart1);
  34.   //  button1.attachDuringLongPress(longPress1);
  35.   button1.attachLongPressStop(longPressStop1);
  36.   pinMode(red, OUTPUT);
  37.   pinMode(blue, OUTPUT);
  38.   pinMode(green, OUTPUT);
  39.   pinMode(ledpin, OUTPUT);
  40.   digitalWrite(red, 1);
  41.   digitalWrite(blue, 1);
  42.   digitalWrite(green, 1);
  43.   WiFi.mode(WIFI_STA);
  44. }
  45. void loop() {

  46.   if (WiFi.status() != WL_CONNECTED) {    //連接WIFI
  47.     WiFi.disconnect();
  48.     WiFi.begin(STAssid, STApassword);
  49.     gotoWifi();
  50.   }
  51.   else {
  52.     if (!client.connected()) {
  53.       lianjie();
  54.       return;
  55.     }
  56.     else {
  57.       if (is == 0) {
  58.         client.print("OK");
  59.         digitalWrite(ledpin, 0);
  60.         is = 1;
  61.         Serial.println("連接服務器成功");
  62.       }
  63.     }
  64.   }
  65.   Tcp_Handler(Read_Tcp());
  66.   button1.tick();
  67. }
  68. String Read_Tcp() {  //帶有返回值的函數,讀服務器發過來的數據
  69.   String data = "";
  70.   while (client.available() > 0) {
  71.     data += char(client.read());
  72.     delay(2);
  73.   }
  74.   return data;
  75. }
  76. void Tcp_Handler(String data) {  //解析收到的數據
  77.   if (data != "") {
  78.     Serial.println("收到服務器信息:");
  79.     Serial.println(data);
  80.     if (data == "1") {
  81.       digitalWrite(12, 0);
  82.       digitalWrite(13, 1);
  83.       digitalWrite(14, 1);
  84.       client.print("open led");
  85.     }
  86.     if (data == "2") {
  87.       digitalWrite(12, 1);
  88.       digitalWrite(13, 1);
  89.       digitalWrite(14, 1);
  90.       client.print("close led");
  91.     }
  92.     if (data == "3") {
  93.       digitalWrite(13, 0);
  94.       digitalWrite(12, 1);
  95.       digitalWrite(14, 1);
  96.       irsend.sendNEC(0xFFE01F, 32);
  97.       client.print("irfrared");
  98.     }
  99.     if (data == "4") {
  100.       digitalWrite(14, 0);
  101.       digitalWrite(13, 1);
  102.       digitalWrite(12, 1);
  103.       mySwitch.send(1786689, 24);
  104.       client.print("433");
  105.       delay(1000);
  106.       irsend.sendNEC(0xFF609F, 32);
  107.     }  
  108.   }
  109. }
  110. void gotoWifi() {
  111.   while (WiFi.status() != WL_CONNECTED) {    //連接WIFI的過程中讓綠燈閃
  112.     digitalWrite(ledpin, 1);
  113.     delay(500);
  114.     Serial.print(".");
  115.     digitalWrite(ledpin, 0);
  116.     delay(500);
  117.   }
  118. }
  119. void lianjie() {
  120.   Serial.println("開始連接服務器");
  121.   client.connect(host, httpPort);
  122.   digitalWrite(ledpin, 1);
  123.   delay(200);
  124.   digitalWrite(ledpin, 0);
  125.   delay(200);
  126. ……………………

  127. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

全部資料51hei下載地址:
e4a和Arduino程序 E4A-mini-D1.7z (1.03 MB, 下載次數: 26)

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:697622 發表于 2021-10-5 11:02 | 只看該作者
謝謝管理員的辛勤工作,給我們提供一個學習交流的舞臺。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩第一页 | 久久国产成人午夜av影院武则天 | 久久精品小视频 | 国内av在线| 91黄色片免费看 | 久久久91| av免费网站在线观看 | 欧美视频在线观看 | 91在线看 | 中文字幕日韩欧美一区二区三区 | 久久99精品国产99久久6男男 | 欧美日韩一| 欧美综合一区 | 91精品国模一区二区三区 | 精品久久久久久久久久久久久久 | 精品久久久久久久人人人人传媒 | 亚洲国产黄 | 色欧美片视频在线观看 | 日本精品视频 | 91精品国产色综合久久 | 天堂久久网| 中文字幕在线免费 | 永久免费在线观看 | 国产一区二区在线视频 | 亚洲综合一区二区三区 | 999免费网站 | 嫩呦国产一区二区三区av | 国产一区二区自拍 | 久久精品国产一区二区三区 | 欧美视频1区 | 在线一区二区国产 | 黄色a三级| 男女羞羞视频大全 | 国产精品入口麻豆www | 欧美乱码精品一区二区三区 | 成人福利电影 | 亚洲天堂中文字幕 | 一级h片| 四虎影视免费在线 | 麻豆精品国产91久久久久久 | 亚洲久草|