산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

IoT 기반 스마트 가로등 시스템

구성품 및 소모품

Arduino UNO Wifi Rev.2
× 1
LED(일반)
× 1
LDR, 1Mohm
× 1
Digilent IR 근접 센서
× 1
Espressif ESP8266 ESP-12E
× 1
저항 1k 옴
× 1

필요한 도구 및 기계

브레드보드, 170핀

앱 및 온라인 서비스

Arduino IDE
ThingSpeak API

이 프로젝트 정보

문제 정의

앞서 말했듯이 가로등은 도시의 막대한 비용 중 하나라는 사실을 많은 도시에서 볼 수 있습니다. 모든 나트륨 증기 램프가 더 많은 전력을 소비한다는 점에서 비용이 많이 듭니다. 가로등에 지출된 비용은 국가의 다른 발전을 위해 사용될 수 있습니다. 현재는 조명을 켜고 끄는 수동 시스템이 사용됩니다. 즉, 저녁에 조명이 켜지고 밤에 꺼집니다. 아침. 따라서 ON/OFF 사이에 많은 에너지 낭비가 있습니다. 이는 전력 낭비가 적어 금전적 비용을 많이 절약할 수 있어 자동 시스템으로 전환하는 주요 원인 중 하나입니다. 이 외에도 기존 시스템의 다른 단점을 설명하면 다음과 같습니다.

기존 시스템의 단점

<울>
  • 가로등 수동 끄기/켜기
  • 더 많은 에너지 소비
  • 높은 비용
  • 인력 증가
  • 이제 에너지 절약 및 안전 보장뿐만 아니라 광 센서를 사용하여 자동화된 제안 시스템으로 이동하여 다음과 같은 몇 가지 추가 이점도 볼 수 있습니다.

    제안된 시스템의 장점

    <울>
  • 가로등 자동 전환
  • 유지보수 비용 절감
  • CO₂ 배출량 감소
  • 빛 공해 감소
  • 무선 통신
  • 에너지 절약
  • 인력 감소
  • A.LDR 입력

    포토레지스터라고도 하는 LDR(광 종속 저항기) 저항률이 전자기 복사의 함수인 장치입니다. 따라서 사람의 눈과 유사한 감광 장치입니다. 광전도체, 전도성 셀 또는 단순히 광전지라고도 합니다. 그들은 저항이 높은 반도체 재료로 구성되어 있습니다. LDR은 광전도성의 원리에 따라 작동합니다. 광전도도는 빛이 물질에 실제로 흡수될 때 물질의 전도도가 감소하는 광학적 현상입니다. 그러나 빛이 LDR에 비치면 저항이 떨어지고 전류가 첫 번째 트랜지스터의 베이스로 흐른 다음 두 번째 트랜지스터로 흐릅니다. 사전 설정 저항은 저항을 높이거나 낮추기 위해 올리거나 내릴 수 있습니다. 이러한 방식으로 회로를 더 민감하게 만들 수 있습니다. LDR은 Arduino에 응답을 보냅니다.

    B.IR 센서

    적외선 센서는 적외선을 방출 및/또는 감지하여 주변 환경의 특정 특성을 감지하는 데 사용되는 전자 기기입니다. 또한 물체의 열을 측정하고 움직임을 감지할 수 있습니다. 적외선은 사람의 눈에는 보이지 않습니다. 전자기 스펙트럼에서 적외선은 가시광선 파장보다 파장이 길고 마이크로파보다 짧은 영역입니다. 적외선 영역은 대략 0.75~1000μm로 구분됩니다. IR(적외선) 센서는 적외선을 감지합니다. IR 빛은 전류로 변환되고 이것은 전압 또는 전류 감지기에 의해 감지됩니다. IR 센서는 arduino에 응답을 보냅니다.

    C. LED

    발광 다이오드(LED)는 접합 다이오드로 활성화되면 빛을 방출합니다. 리드에 전압을 가하면 전자가 LED 내의 구멍과 재결합하여 빛을 제공하는 광자의 형태로 에너지를 방출할 수 있습니다. 따라서 2리드 반도체 광원입니다.

    발광 다이오드는 우리의 조명 시스템을 나타내며, 발광 다이오드가 방출하는 빛의 양은 외부 빛이 LEDS에서 제공하는 빛보다 적을 때 최대 강도이고 그 반대인 환경의 빛의 양과 직접 관련이 있습니다.

    D. ESP8266

    ESP8266은 Espressif 시스템에서 개발한 Wi-Fi 지원 SoC(System on Chip) 모듈입니다. IoT(사물인터넷) 임베디드 애플리케이션 개발에 주로 사용됩니다.

    ESP8266은 다음과 같은 기능을 제공합니다.

    <울>
  • 2.4GHz Wi-Fi(802.11 b/g/n, WPA/WPA2 지원)
  • 범용 입력/출력(16 GPIO)
  • 통합 회로(I²C) 직렬 통신 프로토콜
  • 아날로그-디지털 변환(10비트 ADC)
  • 직렬 주변기기 인터페이스(SPI) 직렬 통신 프로토콜
  • DMA(직접 메모리 액세스)와 I²S(IC 간 사운드) 인터페이스(GPIO와 핀 공유)
  • UART(전용 핀 및 GPIO2에서 전송 전용 UART 활성화 가능)
  • 펄스 폭 변조(PWM)
  • 80MHz(또는 160MHz로 오버클럭됨)에서 실행되는 Tensilica Xtensa L106을 기반으로 하는 32비트 RISC CPU를 사용합니다. 64KB 부팅 ROM, 64KB 명령 RAM 및 96KB 데이터 RAM이 있습니다. SPI를 통해 외부 플래시 메모리에 액세스할 수 있습니다.

    ESP8266 모듈은 forend-point IoT 개발에 사용할 수 있는 저렴한 독립형 무선 송수신기입니다.

    ESP8266 모듈과 통신하려면 마이크로컨트롤러가 일련의 AT명령을 사용해야 합니다. 마이크로 컨트롤러는 전송 속도가 지정된 UART를 사용하여 ESP8266-01 모듈과 통신합니다.

    이 칩을 기반으로 다른 모듈을 생산하는 많은 타사 제조업체가 있습니다. 따라서 모듈은 다음과 같은 다양한 핀 가용성 옵션과 함께 제공됩니다.

    <울>
  • ESP-01은 8핀(GPIO 핀 2개) – PCB 트레이스 안테나와 함께 제공됩니다. (위 그림 참조)
  • ESP-02는 8핀(GPIO 핀 3개) – U-FL 안테나 커넥터와 함께 제공됩니다.
  • ESP-03은 14핀(GPIO 핀 7개) - 세라믹 안테나와 함께 제공됩니다.
  • ESP-04는 14핀(GPIO 핀 7개)과 함께 제공됩니다. – 개미 없음
  • 예를 들어, 아래 그림은 ESP-01 모듈 핀을 보여줍니다.

    ESP8266-01 모듈 핀 설명

    3V3 :- 3.3V 전원 핀.

    GND :- 접지 핀.

    RST :- 액티브 로우 리셋 핀.

    KO :- 액티브 하이 인에이블 핀.

    TX :- UART의 시리얼 전송 핀.

    수신 :- UART의 시리얼 수신 핀.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • IOT 스마트 조명
  • 코드 파트 2
  • IOT 스마트 조명Arduino
    int Smooth;int LDR;int 임계값 =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); 핀모드(센서1, 입력); 핀모드(센서2, 입력); 핀모드(센서3, 입력); 핀모드(LED, 출력); 핀모드(LED1, 출력); pinMode(led2,OUTPUT);}void 루프() { Smooth =Smooth - (베타 * (부드러운 - analogRead(A0))); 지연(1); LDR =라운드(((float)smooth / 1023) * 100); (LDR <=40) 밝기 =0이면; else { 밝기 =맵(LDR, 40, 100, 0, 255); } 체크센서(); if (carPresent ==1) { ledState =1; 디지털 쓰기(LED, 높음); 디지털 쓰기(led1, HIGH); analogWrite(LED, 밝기); analogWrite(led1, 밝기); } else if (carPresent ==0) { ledState =0; 디지털 쓰기(LED, 높음); //digitalWrite(led1,HIGH); analogWrite(led,ledState); //analogWrite(led1,ledState); if(carPresent1 ==1) { ledState =1; if(ledState ==1) { analogWrite(led1, 밝기); analogWrite(led2, 밝기); } } else if (carPresent1 ==0) { ledState =0; 디지털 쓰기(led1, HIGH); 디지털 쓰기(led2, HIGH); analogWrite(led1,ledState); analogWrite(led2,ledState); } } 문자열 데이터 =(문자열)ledState+","+(문자열) 밝기+";";Serial.print(데이터); // 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) { carPresent =0; carPresent1 =1; } else if (digitalRead(sensor1) ==0 ) { analogWrite(led,brightness); analogWrite(led1, 밝기); analogWrite(led2, 밝기); 디지털 쓰기(LED, 높음); 디지털 쓰기(led1, HIGH); 디지털 쓰기(led2, HIGH); } } else if(digitalRead(sensor3) ==0)//자동차가 세 번째 센서에 도달했습니다. { //첫 번째 자동차 뒤에 자동차가 감지되지 않았습니다. if (digitalRead(sensor2) ==1) { carPresent =0; carPresent1 =0; } else if (digitalRead(sensor2) ==0 ) { carPresent =0; carPresent1 =1; } } }
    코드 파트 2Arduino
    #include // 네트워크 정보 const char* ssid ="ardent";const char* 암호 ="12345678";String ledState ="";문자열 밝기 ="";char thingSpeakAddress[] ="api .thingspeak.com";문자열 writeAPIKey ="NUEBLW9OA58DLL4N"; // 이것을 채널로 변경해야 합니다. Write API keyWiFiClient client;void setup(){ Serial.begin( 115200 ); // 하드웨어에 따라 속도를 조정해야 할 수도 있습니다. connectWifi();} 무효 루프(){ filterData(); HTTP포스트( ); 지연( 15000 ); // 절전 모드를 제거하는 경우 ThingSpeak에 너무 자주 게시하지 않도록 지연 시간을 더 추가해야 합니다.}int connectWifi(){ WiFi.begin( ssid , password ); while (WiFi.status() !=WL_CONNECTED) { //Serial.println( "WiFi에 연결 중" ); 지연(2500); } //Serial.println( "연결됨" ); // Inform the serial monitor}void HTTPPost() { // 이 함수는 ThingSpeak에 게시하기 위한 데이터 문자열을 빌드하고 Wi-Fi 클라이언트가 ThingSpeak와 통신할 수 있는 올바른 형식을 제공합니다. // "numFields" 값의 데이터 항목을 게시하고 전달된 fieldData 매개변수에서 데이터를 가져옵니다. // numFields를 필요한 필드 수로 늘리고 채널 보기에서 필드를 활성화해야 합니다. if (client.connect( thingSpeakAddress , 80 )) { // Posting 데이터 문자열을 빌드합니다. 여러 필드가 있는 경우 문자열이 1440자를 초과하지 않는지 확인하십시오. 문자열 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() ) ); 클라이언트.println(); client.println( PostData ); client.stop(); }} 무효 filterData() { if (Serial.available()) { 문자열 버퍼 =""; 버퍼 =Serial.readStringUntil(';'); 정수 i1 =buffer.indexOf(','); ledState =버퍼[0]; 버퍼.제거(0, i1 + 1); 밝기 =버퍼; }}

    회로도


    제조공정

    1. 스마트 신호등
    2. 다중 온도 센서
    3. 모션센스
    4. 3D 프린터 화재 안전
    5. 가정용 식물 관수 시스템
    6. Arduino 반발 전자기 부상
    7. 원격 제어 그리퍼 봇
    8. 마이크로컨트롤러 연구실
    9. 시력 지속성(POV) 글로브
    10. CoroFence - 열 감지기🖖