资讯详情

程序员该如何释放压力

,不要错过精彩的内容

ea6299d9e44291f5eedd026b7be57c88.gif

来源|DF创客社区

有时候工程师压力很大,心情不好,需要一个释放压力的地方。今天分享一个开源项目:情绪记录仪——

一、项目简介

程序员有时会遇到各种各样的代码Bug,有时是因为一个Bug连续加班几天。同时工作安排比较满,所以每天心情波动很大。为了缓解压力,提醒自己保持愉快的心情,我专门做了这个可以缓解压力的。,“非常好用~”

二、功能介绍

  1. 远程无线信号传输

  2. 实时显示云数据

三、材料清单

  • Gravity: 数字无线开关(433)MHz)

  • FireBeetle 萤火虫 ESP32微控制器

  • Gravity: FireBeetle Gravity 传感器扩展板

  • Gravity: 大数字按钮模块 黄色

  • 3.7V锂电池

  • 排线若干

四、产品介绍

Gravity: 使用433Mhz射频通信技术的无线开关模块与电动汽车遥控器相同,但该模块更容易扩展,可以访问您想要连接的传感器,并可以在室内30个M数字信号在左右距离内无线传输。具有以下优点:

  • 操作非常简单,发射器只需接入电池和数字传感器即可进行信号传输,无需接入控制器,大大节省了工程成本;

  • 3PIN传感器可直接插入排针接口,易于扩展;

  • 即使在室内隔了几堵墙,信号也能穿透信号传输;

  • 待机时待机电流<10uA,延长电池寿命。

五、设计过程

六、生产工艺

为了减压,足够漂亮,我特意在某宝买了一个解压按钮,你也可以选择换成你讨厌的娃娃。每当他惹你生气,你就打他一拳。

1.使用一个垫板和两个海绵垫来增加按钮的接触面积

2.正确接线

3.将按钮模块插入玩偶的两个海绵垫之间

4.完成

具体接线图如下图所示:

七、样例代码

库文件链接可以到原文论坛获取。

#include<WiFi.h> #include<PubSubClient.h> #include<ArduinoJson.h> #include"DFRobot_Aliyun.h"   /*配置WIFI名和密码*/ constchar*WIFI_SSID="DFRobot-guest"; constchar*WIFI_PASSWORD="dfrobot@2017";  /*配置设备证书信息*/ ///根据您的设备设置更换这些参数 StringProductKey="yourProductKey"; StringClientId="yourClientId"; StringDeviceName="yourDeviceName"; StringDeviceSecret="yourDeviceSecret";  /*配置域名和端口号*/ StringALIYUN_SERVER="iot-as-mqtt.cn-shanghai.aliyuncs.com"; uint16_tPORT=1883;  /*需要操作的产品标识符(自产和代理)*/ StringIdentifierA="CountA"; StringIdentifierB="CountB";  /*两者需要报告和订阅TOPIC*/ constchar*subTopic="/sys/a16yECCLMxp/Counter/thing/service/property/set";//****复制你的set到此处 constchar*pubTopic="/sys/a16yECCLMxp/Counter/thing/event/property/post";//******复制你的post到此处  DFRobot_AliyunmyAliyun; WiFiClientespClient; PubSubClientclient(espClient);   #defineBUTTON_PIN1D4 #defineBUTTON_PIN2D5   intcountA=0; intcountB=0;   voidconnectWiFi(){ Serial.print("Connectingto"); Serial.println(WIFI_SSID); WiFi.begin(WIFI_SSID,WIFI_PASSWORD); while(WiFi.status()!=WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFiconnected"); Serial.print("IPAdderss:"); Serial.println(WiFi.localIP()); }  voidcallback(char*topic,byte*payload,unsignedintlen){ Serial.print("Recevice["); Serial.print(topic); Serial.print("]"); for(inti=0;i<len;i  ){ Serial.print((char)payload[i]); } Serial.println(); }  voidConnectAliyun(){ while(!client.connected()){ Serial.print("AttemptingMQTTconnection..."); /*连接到自动计算的用户名和密码Alinyun的设备,不需要更改*/ if(client.connect(myAliyun.client_id,myAliyun.username,myAliyun.password)){ Serial.println("connected"); client.subscribe(subTopic); }else{ Serial.print("failed,rc="); Serial.print(client.state()); Serial.println("tryagainin5seconds"); delay(5000); } } } voidsetup(){  pinMode(BUTTON_PIN1,INPUT); pinMode(BUTTON_PIN2,INPUT); Serial.begin(115200);  /*连接WIFI*/ connectWiFi();  /*初始化Alinyun的配置,用户名和密码可以自动计算*/ myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);  client.setServer(myAliyun.mqtt_server,PORT);  /*设置回调函数,回调函数在收到订阅信息时执行*/ client.setCallback(callback);  /*连接到Aliyun*/ ConnectAliyun(); }  intold_valA=LOW; intold_valB=LOW;  voidloop(){ if(!client.connected()){ ConnectAliyun();  }   intvalA=digitalRead(BUTTON_PIN1);/读取输入数值并且存储
  int valB=digitalRead(BUTTON_PIN2);//读取输入数值并且存储
  if(valA==HIGH)   //检查按钮的变化情况
  {
   countA++;
   Serial.print("事件A次数:");
   Serial.println(countA);
   client.publish(pubTopic,("{"id":"+ClientId+","params":{""+IdentifierA+"":"+countA+",""+IdentifierB+"":"+countB+"},"method":"thing.event.property.post"}").c_str());
   delay(300);//防抖
   }
   

  
  if(valB ==HIGH)   //检查按钮的变化情况
  {
   countB++;
   Serial.print("事件B次数:");
   Serial.println(countB);
   client.publish(pubTopic,("{"id":"+ClientId+","params":{""+IdentifierA+"":"+countA+",""+IdentifierB+"":"+countB+"},"method":"thing.event.property.post"}").c_str()); 
   delay(300);//防抖
   }
   
  
    //在下方更改你的上传的数据内容,如countA和countB
  
  client.loop();
}

八、云端显示

操作详情可参考Esp32阿里云教程[1]

最后做出的Web数据界面是这样的:

你也可以自己设计其他形式计数:

九、项目小结

除了以上应用场景,我们的生活中也有很多其他场景需要计数统计,比如人流量统计、流水线工件计数、仓库点货等等。“大风起兮云飞扬,安得猛士兮走四方。数据,任何时候都要采集,不采集不行!你想想,你跟着老板,吃着火锅唱着歌,突然数据就来了!这不是妥妥升职加薪的节奏吗?”

参考资料

Esp32阿里云教程: https://www.dfrobot.com.cn/images/upload/File/20200326102954tmbfbr.pdf

原文链接:https://mc.dfrobot.com.cn/thread-311485-1-1.html

本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------  ------------

回复“”按规则加入技术交流群,回复“”查看更多内容。

点击“”查看更多分享,欢迎

标签: 电动压力开关传感器无线传感器模块sys

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台