你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32 L432 工厂监测系统

[复制链接]
点点&木木 发布时间:2019-4-1 17:09
本帖最后由 点点&木木 于 2019-4-12 09:38 编辑

一个学校的工程项目。


1.jpg





这个项目中使用的东西
硬件组件
STM32 Nucleo Nucleo L432KC   ×   1      
DHT22温度传感器        ×       1      
模温探头     ×     1      
SparkFun土壤湿度传感器(带螺丝端子)     ×     1      
TSL2561
亮度传感器   ×       1      
SOL2W
太阳能板  ×     1      
Lipo Rider Pro
供应适配器   ×       1      
ADA326
液晶显示屏  ×         1      
Accu Li-Ion 3,7 V 1050 mAh
3,7V电池    ×         1      


手动工具和制造机器
3D打印机(通用)        



介绍
我们是Polytech Sorbonne(前巴黎UPMC)的3名工程专业学生,专攻电子和计算机科学。我们的项目包括进行植物监测,随后将由我们大学的食品科学专业学生使用。目标是在植物生长的同时,实现在现场和远程控制植物的生长环境。


2.jpg




微控制器在LCD显示屏幕上实时显示传感器发送的信息。同时,它通过NodeRed将数据发送到名为“Bluemix”的在线服务器。
该系统由3,7V电池供电,由太阳能电池板充电。该系统可实现独立工作。

以下是我们项目的不同步骤。

1)代码
为了开发我们的项目,我们使用了Mbed,一个帮助我们完成项目的协作在线编程软件。

3.jpg

MBED


MBED的另一个优点是可以找到大量的微控制器库。起初,我们在使用面包板的同时开始了这个项目。然后我们编写了将从sigfox接收数据的服务器。我们使用Bluemix的NodeRed,它是一个图形化的编程接口。

4.jpg
Bluemix的NodeRed


如您所见,该项目分为3个部分:
第一部分是“获取”,这是最重要的部分。它接收Actobord发送的数据
第二部分是“分离”,它将“Get”接收的每个值分开。
第三部分是“图形”,它在图形上显示每个值。


2)板
最后,我们选择了EASYEDA来创建我们的PCB,而不是使用面包板。EASYEDA也是一个在线共享工具,每个成员都可以编辑项目,也可以将其设为私有或公共。


5.jpg
EASYEDA



3)盒子
最后一部分是关于如何打包我们的系统。为了保持原创性,我们使用FreeCad绘制了我们自己的3D盒子,FreeCad是一个开源软件,可以让我们轻松详细地绘制我们的盒子。

6.jpg
FreeCad上的3D Box


我们还设计了一个电池盒和太阳能电池板。

7.jpg
供应箱



4)结果
如下所示,这就是我们项目的样子:

8.1.jpg
工厂检测



8.2.jpg
Diplay


8.3.jpg


8.4.jpg
地面传感器


8.5.jpg
测试


8.6.jpg
检测结果


8.7.jpg
在供应箱内



8.8.jpg
在供应箱内



8.9.jpg
供应箱


8.10.jpg
bluemix上的仪表板




定制零件和外壳
CAD
9.png



原理图


10.png




代码

// LIBRARY
#include "mbed.h"
#include "DS18B20.h"
#include "OneWireDefs.h"
#include "TSL2561.h"
#include "DHT22.h"
#include "bold_font.h"
#include "standard_font.h"
#include "ssd1306.h"
#define THERMOMETER DS18B20
// INITIALIZATION OF SENSORS AND NUCLEO'SPINS
Serial serie(SERIAL_TX, SERIAL_RX);
TSL2561 LUM(PB_7, PB_6); // Luminosité (I2C:SDA,SCL)
DHT22 Tem_Hum_A(PA_11); // Température & Humidité air
AnalogIn Humidite(PA_0);
SSD1306 ecran(D3 /* cs */, D6/* reset */, A5 /* dc */, A4 /* clock */, D2 /* data */);
//Serial PC(PA_2, PA_3);
Serial sigfox(PA_9, PA_10);
DigitalOut myled(LED1);
int i, Hum_sol, Temp_sol, Lum, Temp_air,Hum_air;
int main()
{   
   ecran.initialise();
   ecran.clear();
   ecran.set_contrast(255);
   ecran.set_font(bold_font, 8);
   
   serie.printf("New Program \r\n");
     // device( crcOn, useAddress, parasitic, mbed pin )
   THERMOMETER device(true, true, false, PA_8);
   
    while(!device.initialize());    // keep calling until it works
   
    while (true)
   {   
       myled = !myled;
       Tem_Hum_A.sample();
      
       // READING VALUES FROM SENSORS
       device.readTemperature();
       Temp_air = (int)(Tem_Hum_A.getTemperature()/10);
       Hum_air = (int) (Tem_Hum_A.getHumidity()/10);
       Hum_sol = (int)(Humidite.read()* 100) ;
       Temp_sol = (int)device.readTemperature();
       Lum = (int) LUM.lux();
       printf("Temperature air: %d\n\r", Tem_Hum_A.getTemperature()/10);
       printf("Hum air: %d\n\r", Tem_Hum_A.getHumidity()/10);
       serie.printf("\rLum: %f \r\n", LUM.lux());
       serie.printf("Temperature sol: %d \n\r",Temp_sol);
       serie.printf("Hum sol: %f \n\r",Humidite.read()*100);
       printf("------------------------------------------------------------\n\r");
      
       //SENDING VALUES USING SIGFOX
       sigfox.printf("AT$SS=%02x %02x%02x %02x %02x \r\n", Temp_sol, Temp_air, Lum, Hum_sol,Hum_air);
      
       //OLED : PRINT VALUES ON THE SCREEN
       ecran.set_font(bold_font, 8);
       ecran.printf("Valeurs");
       ecran.printf("\r\n");
       ecran.update();
       ecran.set_font(standard_font, 6);
       ecran.printf("Temp air = %d",Temp_air );
       ecran.printf("\r\n");
       ecran.printf("Hum air = %d", Tem_Hum_A.getHumidity()/10);
       ecran.printf("\r\n");
       ecran.printf("Lum = %f", LUM.lux());
       ecran.printf("\r\n");
       ecran.printf("Temp sol = %d",Temp_sol );
       ecran.printf("\r\n");
       ecran.printf("Hum sol = %f", Hum_sol);
       ecran.printf("\r\n");
       ecran.update();
       ecran.clear();
      
        
      
       wait(10);
    }
    return EXIT_SUCCESS;
}



收藏 1 评论1 发布时间:2019-4-1 17:09

举报

1个回答
Kevin201707 回答时间:2019-4-2 15:59:16
收藏

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版