鱼C论坛

 找回密码
 立即注册
查看: 1286|回复: 0

[技术交流] 智能垃圾桶实现(1.超声波测距感应 2.使用手机appTCP连接WiFi远程控制垃圾桶 3 语音)

[复制链接]
发表于 2020-11-12 22:56:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用
板:WeMos
语音模块:YS-LDV7

使用相关插件
串口调试小助手:ComAssistant
stc-isp
TCP(手机app)

使用相关代码软件
arduino
Keil uVision4
Source Insight 4.0

实现:
1.超声波测距感应
2.使用手机app(TCP)实现手机和垃圾桶联网实现控制垃圾桶
3.通过语音控制垃圾桶开盖和关盖

  1. #include<ESP8266WiFi.h>
  2. #include<Servo.h>
  3. #define Echo D2
  4. #define Trig D8
  5. #define DuoPIN D5

  6. Servo myDuoJi;
  7. long getTime()
  8. {
  9.   digitalWrite(Trig, HIGH);
  10.   delayMicroseconds(10);
  11.   digitalWrite(Trig, LOW);

  12.   return pulseIn(Echo, HIGH);
  13. }

  14. void initChaoShengBo()
  15. {
  16.   pinMode(Echo, INPUT);
  17.   pinMode(Trig, OUTPUT);
  18. }

  19. char* ssid = "huawei ry";
  20. char* passwd = "66666666";

  21. int port = 8888;
  22. WiFiServer server(port);

  23. void initWifiSta()
  24. {
  25.   WiFi.mode(WIFI_STA);
  26.   WiFi.begin(ssid, passwd);
  27.   while(WiFi.status() != WL_CONNECTED){
  28.     Serial.print(".");
  29.     delay(500);
  30.   }
  31.   Serial.println(WiFi.localIP());
  32. }
  33. void setup() {
  34.   // put your setup code here, to run once:
  35.   initChaoShengBo();
  36.   myDuoJi.attach(DuoPIN);
  37.   Serial.begin(115200);
  38.   initWifiSta();
  39.   server.begin();
  40.   
  41. }

  42. void loop() {
  43.   char cmd;
  44.   int temp = 0;
  45.   int sb = 1;
  46.   int sp = 1;
  47.   char mark;
  48.   // put your main code here, to run repeatedly:
  49.   WiFiClient client = server.available();
  50. while(client.connected()){
  51.   if(temp == 1) {
  52.     break;
  53.   }
  54.   while(client.available() > 0){
  55.       cmd = client.read();
  56.       if((cmd == '1') && (sb == 1)){
  57.         myDuoJi.write(90);
  58.         sb = 0;
  59.       }if(cmd == '2'){
  60.         temp = 1;
  61.          break;
  62.       }
  63.       if(sb == 0){
  64.         if(cmd != '1' && cmd != '2' )
  65.         {
  66.         myDuoJi.write(180);
  67.         sb = 1;
  68.         }
  69.       }
  70.   }
  71. }
  72.    while(Serial.available() > 0){
  73.   mark = Serial.read();
  74.   if(mark == '1' && sp == 1 ){
  75.     myDuoJi.write(90);
  76.     sp = 0;
  77.     delay(1500);
  78.   }if(mark == '2'){
  79.     break;
  80.   }
  81.   if(sp == 0){
  82.     if(mark != '1' && mark != '2')
  83.     {
  84.     myDuoJi.write(180);
  85.     sp = 1;
  86.     delay(1000);
  87.     }
  88.   }
  89. }
  90.   long dis;
  91.   dis = getTime()/58;
  92.   Serial.print(dis);
  93.   Serial.println("cm");
  94.   if(dis<10){
  95.     myDuoJi.write(90);
  96.     delay(500);
  97.   }else{
  98.     myDuoJi.write(180);
  99.     delay(500);
  100.   }
  101. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-9 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表