亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

基于物联网的智能路灯系统

组件和用品

Arduino UNO Wifi Rev.2
× 1
LED(通用)
× 1
LDR,1 Mohm
× 1
Digilent IR 接近传感器
× 1
乐鑫 ESP8266 ESP-12E
× 1
电阻 1k ohm
× 1

必要的工具和机器

面包板,170 针

应用和在线服务

Arduino IDE
ThingSpeak API

关于这个项目

问题定义

正如前面所说,在许多城市中都看到路灯是一个城市的巨额开支之一。花费的成本是巨大的,所有的钠蒸气灯都消耗更多的功率。花在路灯上的费用可用于国家的其他发展。目前使用手动系统,其中灯将被打开/关闭,即灯将在晚上打开并在晚上关闭早上。因此,在开/关之间存在大量能量浪费。这是转向自动系统的主要原因之一,因为电力浪费更少,从而节省了大量金钱开支。除此之外,现有系统的其他缺点描述如下。

现有系统的缺点

  • 手动关闭/打开路灯
  • 更多的能源消耗
  • 费用高
  • 更多的人力

现在转向使用光传感器自动化的建议系统,不仅可以节省能源和确保安全,我们还可以看到以下更多优势。

拟议系统的优点

  • 路灯自动切换
  • 降低维护成本
  • 减少二氧化碳排放
  • 减少光污染
  • 无线通讯
  • 节能
  • 减少人力

A.LDR 输入

光敏电阻 (LDR) 也称为 光敏电阻 是一种电阻系数是电磁辐射的函数的设备。因此,它们是类似于人眼的光敏设备。它们也被称为光电导体、导电电池或简称为光电管。它们由具有高电阻的半导体材料组成。 LDR 根据光导原理工作。光导率是一种光学现象,当光被材料实际吸收时,材料的电导率会降低。然而,当光线照射到 LDR 时,它的电阻下降,电流流入第一个晶体管的基极,然后流入第二个晶体管。可以调高或调低预设电阻来增加或减少电阻,这样可以使电路更灵敏或更灵敏。 LDR 向 Arduino 发送响应。

B.IR 传感器

红外传感器是一种电子仪器,用于通过发射和/或检测红外辐射来感知周围环境的某些特征。它还能够测量物体的热量并检测运动。人眼看不到红外线。在电磁光谱中,红外辐射是波长比可见光波长长但比微波短的区域。红外区域的范围大约为 0.75 至 1000 微米。 IR(红外线)传感器检测红外线。红外光转化为电流,并由电压或电流检测器检测。 IR Sensorsends response to arduino.

C. LED

发光二极管 (LED) 是一种结型二极管,在激活时会发光。当我们在其引线上施加电压时,电子能够与 LED 内的空穴复合,以光子的形式释放能量,从而发出光。因此,它是一种双引线半导体光源。

发光二极管代表我们的照明系统,它发出的光量与环境中的光量直接相关,即当外界光线小于 LED 发出的光强度时,反之亦然。

D. ESP8266

ESP8266 是乐鑫开发的支持 Wi-Fi 的片上系统 (SoC) 模块。主要用于IoT(物联网)嵌入式应用的开发。

ESP8266 具有以下功能

  • 2.4 GHz Wi-Fi (802.11 b/g/n,支持 WPA/WPA2)
  • 通用输入/输出(16 个 GPIO)
  • 集成电路间 (I²C) 串行通信协议
  • 模数转换(10 位 ADC)
  • 串行外设接口 (SPI) 串行通信协议
  • I²S(IC 间声音)与 DMA(直接内存访问)接口(与 GPIO 共享引脚)
  • UART(在专用引脚上,加上可以在 GPIO2 上启用仅传输的 UART)
  • 脉宽调制 (PWM)

它采用基于 Tensilica Xtensa L106 的 32 位 RISC CPU,运行频率为 80 MHz(或超频至 160 MHz)。它具有 64 KB 引导 ROM、64 KB 指令 RAM 和 96 KB 数据 RAM。可以通过SPI访问外部闪存。

ESP8266 模块是低成本的独立无线收发器,可用于端点物联网开发。

与 ESP8266 模块通信,微控制器需要使用一组 AT 命令。微控制器使用指定波特率的UART与ESP8266-01模块通信。

有许多第三方制造商基于该芯片生产不同的模块。因此,该模块具有不同的引脚可用性选项,例如:

  • ESP-01 带有 8 个引脚(2 个 GPIO 引脚)——PCB 走线天线。 (如上图所示)
  • ESP-02 带有 8 个引脚(3 个 GPIO 引脚)——U-FL 天线连接器。
  • ESP-03 带有 14 个引脚,(7 个 GPIO 引脚)– 陶瓷天线。
  • ESP-04 带有 14 个引脚,(7 个 GPIO 引脚)——没有蚂蚁。

例如,下图显示了 ESP-01 模块引脚。

ESP8266-01 模块管脚说明

3V3 :- 3.3 V 电源引脚。

:- 接地引脚。

RST :- 低电平有效复位引脚。

中文 :- 高电平有效使能引脚。

发送 :- UART的串行发送引脚。

接收 :- UART的串行接收引脚。

代码

  • 物联网智能灯
  • 代码第 2 部分
物联网智能灯Arduino
int smooth;int LDR;int threshold =40;//太阳的强度int亮度 =0;int ledState =0;int sensor1 =11;int sensor2 =8;int sensor3 =9;int led1=5;int led =6;int led2=2;int carPresent =0;int carPresent1 =0;float beta =0.65;void setup() { // 把你的设置代码放在这里,运行一次:Serial.begin(115200); pinMode(传感器1,输入); pinMode(传感器2,输入); pinMode(sensor3, INPUT); pinMode(led,输出); pinMode(led1,输出); pinMode(led2,OUTPUT);}void loop() { smooth =smooth - (beta * (smooth - analogRead(A0)));延迟(1); LDR =round(((float)smooth / 1023) * 100);如果(LDR <=40)亮度=0; else { 亮度 =地图(LDR, 40, 100, 0, 255); } checkSensors();如果(carPresent ==1){ ledState =1;数字写入(led,高);数字写入(led1,高);模拟写入(LED,亮度);模拟写入(led1,亮度); } else if (carPresent ==0) { ledState =0;数字写入(led,高); //digitalWrite(led1,HIGH);模拟写入(led,ledState); //analogWrite(led1,ledState);如果(carPresent1 ==1){ ledState =1; if(ledState ==1) {analogWrite(led1,brightness);模拟写入(led2,亮度); } } else if (carPresent1 ==0) { ledState =0;数字写入(led1,高);数字写入(led2,高);模拟写入(led1,ledState);模拟写入(led2,ledState); } } String data =(String)ledState+","+(String)brightness+";";Serial.print(data); // Serial.print(digitalRead(sensor1));// Serial.print("\t");// Serial.print(digitalRead(sensor2));// Serial.print("\t");// Serial.print(ledState);// Serial.print("\t");// Serial.println(brightness);delay(100);}void checkSensors(){ if (digitalRead(sensor1) ==0)/ /汽车在第一个传感器中捕获 { if (digitalRead(sensor2) ==1)//汽车仍然没有到达第二个传感器 carPresent =1; } else if (digitalRead(sensor2) ==0)//汽车到达第二个传感器{ //在第一辆车后面没有检测到汽车 if (digitalRead(sensor1) ==1) { car​​Present =0; carPresent1 =1; } else if (digitalRead(sensor1) ==0 ) {analogWrite(led,brightness);模拟写入(led1,亮度);模拟写入(led2,亮度);数字写入(led,高);数字写入(led1,高);数字写入(led2,高); } } else if(digitalRead(sensor3) ==0)//汽车到达第三个传感器{ //在第一辆车后面没有检测到汽车 if (digitalRead(sensor2) ==1) { car​​Present =0; carPresent1 =0; } else if (digitalRead(sensor2) ==0) { car​​Present =0; carPresent1 =1; } } }
代码第 2 部分Arduino
#include // 网络信息const char* ssid ="ardent";const char* password ="12345678";String ledState ="";String Brightness ="";char thingSpeakAddress[] ="api .thingspeak.com";String writeAPIKey ="NUEBLW9OA58DLL4N"; // 请务必将其更改为您的频道 Write API keyWiFiClient client;void setup(){ Serial.begin(115200); // 您可能需要根据您的硬件调整速度。 connectWifi();}void loop(){ filterData(); HTTPPost();延迟(15000); // 如果您移除睡眠,请确保添加更多延迟,以免过于频繁地向 ThingSpeak 发帖。}int connectWifi(){ WiFi.begin( ssid , password ); while (WiFi.status() !=WL_CONNECTED) { //Serial.println("连接到WiFi");延迟(2500); } //Serial.println("已连接"); // 通知串行监视器}void HTTPPost() { // 此函数构建用于发布到 ThingSpeak 的数据字符串,并为 wifi 客户端与 ThingSpeak 通信提供正确的格式。 // 它将发布“numFields”个数据条目,并从传递给它的 fieldData 参数中获取数据。 // 请务必将 numFields 增加到您需要的字段数,并在您的频道视图中激活这些字段。 if (client.connect( thingSpeakAddress , 80 )) { // 构建 Posting 数据字符串。如果您有多个字段,请确保字符串不超过 1440 个字符。 String PostData ="api_key=" + writeAPIKey; PostData +="&field1=" + ledState; PostData +="&field2=" + 亮度; // 通过 HTTP POST 数据 client.println( "POST /update HTTP/1.1" ); client.println("主机:api.thingspeak.com"); client.println("连接:关闭"); client.println("内容类型:应用程序/x-www-form-urlencoded"); client.println("内容长度:" + String( PostData.length() ) );客户端打印(); client.println( PostData );客户端停止(); }}void filterData() { if (Serial.available()) { String buffer ="";缓冲区 =Serial.readStringUntil(';'); int i1 =buffer.indexOf(','); ledState =缓冲区[0]; buffer.remove(0, i1 + 1);亮度 =缓冲区; }}

示意图


制造工艺

  1. 智能交通灯
  2. 多温度传感器
  3. MotionSense
  4. 3D 打印机消防安全
  5. 家庭植物浇水系统
  6. Arduino 排斥电磁悬浮
  7. 遥控夹爪机器人
  8. 微控制器实验室
  9. 视觉持久性 (POV) 地球仪
  10. 简单智能的空气净化器系统
  11. 使用智能手机控制您的灯光系统
  12. CoroFence - 热探测器🖖