此外,它可以通过MQTT发送所有这些数据。
3D设计
该设计基本上是一个带漂亮外壳的无尽螺丝机构。
我们附上了装配体的网格文件。但是,我们不建议从头开始打印,因为有些零件确实很大。相反,使用STEP文件修剪适合您的3D打印机的零件。然后您可以使用Loctite粘合零件。
此外,如果你不想打印那么多,你总是可以打印机制并制作一个木箱。
阅读水平
通过使用超声波传感器并测量到罐底的距离来读取液位。稍后,通过简单的数学运算,我们可以估计食物的水平。然而,当我们将传感器放置在一个角度时,我们需要在计算水平之前做一些三角函数。
1/2杠杆传感器图片和微积分解释
如图所示,通过知道α和斜边长度,我们可以很容易地计算出x。用x获得百分比水平是简单的数学:
floatx=distance*0.97236992039;//cos(13.5deg)=0.97236992039intlevel=100-((x*100)/(tank_heigth));
在neopixel棒上显示级别
Neopixel棒有8个LED,因此为了根据级别打开/关闭它们,我们决定将percentaje分成8个整数:
intnLeds=(level*7/100);//Remeberthatdecimalvaluesaretruncated,sotheoutputofthisfunctionisalways//anintegerbetween0and7.8diferentvalues.
根据nLeds值触发案例。每个案例都以正确的颜色和亮度打开/关闭LED。
switch(nLeds){case7:pixels.setBrightness(100);setColor(7,0,255,0);setColor(6,0,255,0);setColor(5,0,255,0);setColor(4,0,255,0);setColor(3,0,255,0);setColor(2,0,255,0);setColor(1,0,255,0);setColor(0,0,255,0);break;/*Andsoon....*/case1:setColor(1,255,100,0);setColor(0,255,100,0);break;case0:setColor(0,255,0,0);break;default:break;}
注意是最漂亮的方式,但它就像一个魅力。
PD:为了控制LED,使用了adafruit库。
读取重量
分配器具有一个称重传感器,用于测量和控制分配的食物量。在我们的案例中,是从旧厨房秤上取下的10公斤称重传感器。
称重传感器将杆的变形转化为阻力的变化。
可以使用HX711读取该电阻变化并将其转换为数字值。
校准系统所需的唯一步骤是引入您自己的称重传感器的校准系数。
doublecal_factor=-416.12;//Line11onWeight_Stuff.cpp
有关称重传感器以及如何在此处校准它们的更多信息:
网络服务器
配置所有参数,esp8266负责连接WiFi并注册信息。
esp8266在没有连接wifi时充当接入点(AP模式),托管网络服务器。用户通过esp8266的ip(192.168.4.1)连接,注册WiFi的SSID和密码。现在设备已连接到互联网(进入STA模式)。参数使用SPIFFS(SPI闪存文件系统)保存。
定义的静态ip用于家庭WiFi,而不是另一种网络配置。其他网络可能会导致esp8266网络服务器无法定义静态ip,并创建一个新的未知ip。要找到该ip,用户必须输入路由器的配置并手动搜索它。