제조공정
MQTT, NodeMCU, DHT22, RaspberryPi 및 IoT MQTT 패널을 사용하여 온도와 습도를 모니터링합니다.
그림>IoT MQTT 패널 앱에서 온도와 습도를 측정하고 모니터링하는 DHT-22 센서가 있는 여러 NodeMCU의 브로커로 Raspberry Pi 3 B+를 사용합니다. NodeMCU와 Raspberry의 알고리즘을 확장 가능하게 만들었습니다. 게시 및 구독 주제를 변경하고 IoT MQTT 패널 앱에 추가하면 언제든지 모든 데이터를 사용할 수 있습니다.
라즈베리, 파이썬 및 MQTT에 대한 지식이 없기 때문에 인터넷에서 많은 정보를 검색했습니다. 그래서 저는 제가 배운 모든 것을 요약하고 해당 웹사이트에 공을 들였습니다.
인터넷 연결이 끊어지면 센서가 브로커에 계속 데이터를 보냅니다. 데이터를 저장할 수 있다는 의미!!! (물론 약간의 프로그래밍이 필요합니다)
업데이트가 있으면 팔로우하세요. 곧 모든 실행의 비디오를 게시할 것입니다! 🙂
네트워크의 모습:
그림>먼저 Arduino IDE와 Raspberry Pi 3B+에 모든 라이브러리가 설치되어 있는지 확인해야 합니다.
Arduino IDE에 라이브러리를 설치합니다.
<울>Python IDE에 라이브러리를 설치합니다.
<울>NodeMCU와 Raspberry에 각각 코드를 업로드합니다.
Arduino IDE에 설치하기 위해 앞에서 언급한 라이브러리입니다.
#include // Esp8266/NodeMCU 라이브러리#include // MQTT 라이브러리#include "DHT.h" // DHT 센서 코드>
전체 코드에서 사용하도록 선언된 변수:
const char* mqtt_server ="브로커_IP_주소"; // MQTT 서버 IP 주소
mqtt_server :Raspberry pi에서 IP 주소를 얻으려면 터미널 화면을 열고 다음을 입력하십시오.
[이메일 보호]:~ $ ifconfigwlan0:flags=4163 mtu 1500 inet 192.168.1.200 넷마스크 255.255.2915.25 브로드캐스트 851 코드>
이 예에서 IP 주소는 192.168.1.200
입니다.const char* clientID ="room1"; // 클라이언트 ID는 NodeMCU 장치를 식별합니다.
클라이언트 ID :사용 중인 NodeMCU를 식별하기 위한 이름 또는 번호입니다. 이 경우 room1에 위치합니다. 그래서 이름이 room1입니다.
const char* topicT ="/실1/온도"; // 주제 temperatureconst char* topicH ="/room1/humidity"; // 주제 습도
주제T :온도를 공개할 주제입니다. 이 예에서 room1 온도에 대한 주제는 "/room1/temperature"가 됩니다.
주제H :습도를 공개할 주제입니다. 이 예에서 room1 습도에 대한 주제는 "/room1/humidity"가 됩니다.
const char* willTopic ="/room1/status"; // 토픽 Statusconst char* willMessage ="0"; // 0 - 연결 해제됨
willTopic :유언장 발표 주제. 이것은 NodeMCU가 연결/켜져 있는지 확인하는 데 사용됩니다. 연결이 끊어지면 willMessage가 게시됩니다. willTopic. 이 경우 "/room1/status"
윌메시지 :willTopic에 게시될 메시지 NodeMCU가 연결 해제/꺼진 경우.
int willQoS =0; 부울 willRetain =true;
willQoS :서비스 품질을 설정하기 위해 사용합니다. 이 경우 0.
유지할 것입니다 :연결이 끊긴 경우에 메시지를 유지하기 위해 사용합니다. 참으로 설정합니다.
int 카운터 =0; // MQTT에 다시 연결하는 데 사용됩니다. serverconst char* swversion ="1.0"; // 소프트웨어 버전
카운터 :재접속 루틴에 사용되는 카운터입니다.
swversion :내 소프트웨어 버전을 제어하는 데 사용됩니다.
WiFiClient wifiClient;PubSubClient 클라이언트(mqtt_server, 1883, wifiClient); // 1883은 브로커의 리스너 포트입니다.
와이파이 클라이언트 :client.connect()에 정의된 대로 지정된 인터넷 IP 주소 및 포트에 연결할 수 있는 클라이언트를 생성합니다.
클라이언트() :클라이언트는 모든 WiFi 클라이언트 기반 호출의 기본 클래스입니다. 직접 호출되지 않고 의존하는 함수를 사용할 때마다 호출됩니다.
<코드>DHT dhtA(2, DHT22); // dhtA라는 DHT 인스턴스, NodeMCU D4의 핀 및 센서 유형
DHT :dhtA라는 인스턴스를 생성하고 센서 DHT-22의 NodeMCU V3(D4) 핀 2를 할당합니다. 아래 회로도에 따라. 다른 핀을 사용하려면 값을 올바른 핀으로 변경하십시오. 사용된 핀을 변경하기 전에 아래 핀 배치를 확인하여 올바른 핀을 할당하십시오.
<울>DHT-11을 사용하는 경우:
<울>참고: 나와 같은 라이브러리를 사용하는 경우. 다른 라이브러리를 사용하는 경우 라이브러리 설명서를 확인하여 사용된 핀 및 센서를 선언하는 방법을 확인하세요.
무효 설정() :여기서 초기화를 합니다.
무효 setup() {Serial.begin(9600); // 디버그 목적은 DHT 및 MQTT Broker와의 연결이 작동하는지 확인합니다.Serial.print(swversion);// 디버그. 소프트웨어 버전dhtA.begin(); // DHT-22 시작
MQTT 브로커에 연결 중입니다.
지연(2000); // MQTT 브로커와의 첫 번째 연결을 허용하기 위한 지연
지연(2000) :첫 번째 연결이 실패하면 시간을 늘립니다. 이 경우 2000은 NodeMCU가 브로커에 연결할 수 있도록 합니다.
if (client.connect(clientID,"","", willTopic, willQoS, willRetain, willMessage, true)) { // MQTT 브로커 연결
client.connect() :아래에서 설명합니다. 출처:https://pubsubclient.knolleary.net/api.html#connect5
__________________________________________________________________________
부울 연결(clientID, 사용자 이름, 비밀번호, willTopic, willQoS, willRetain, willMessage, cleanSession)
Will 메시지, 사용자 이름, 암호 및 clean-session 플래그가 지정된 클라이언트를 연결합니다.
참고 :cleanSession
false
로 설정됨 /<코드>0 클라이언트는 하지 않습니다. qos 1 게시에 실패했습니다. 이 플래그는 브로커에서 구독을 유지하는 데만 사용됩니다.
매개변수
<울>반품
<울>출처:NodeMCU와 Raspberry Pi 3 B+ 간의 MQTT 통신
제조공정
오늘 우리는 NC와 CNC 기계의 차이점에 대해 논의 할 것입니다. NC는 수치 제어를 나타내고 CNC는 컴퓨터 수치 제어를 나타냅니다. 둘 다 정확한 치수의 금속을 가공하는 데 사용되는 자동 기계입니다. 이 두 기계는 정의된 코드 언어로 기계에 명령을 내리고 기계를 기계어로 컴파일 및 변환하고 사전 정의 작업을 수행하는 공급 메커니즘에서 작동합니다. 오늘 우리는 이 두 기계에 대해 배우고 이 기사의 뒷부분에서 구별할 것입니다. 이제 토론을 시작하겠습니다. 숫자 제어(NC) 기계: 수치 제어(NC)는 공작 기계에 수치 코드를
Capstan 및 터렛 선반은 반자동 선반입니다. 반자동은 기계가공이 자동으로 수행되지만 작업/피삭재 변경 및 도구 설정과 같은 일부 다른 기능은 수동으로 수행됨을 의미합니다. 이들은 엔진의 수정된 버전입니다. 터렛/캡스턴 선반의 구성은 엔진선반과 유사하나 여러 공구가 장착되는 심압대 대신 육각형의 인덱싱 가능한 터렛이 축방향으로 움직일 수 있다는 점 .선삭, 보링, 나사 절삭, 드릴링 및 페이싱과 같은 여러 작업을 수행할 수 있는 도구입니다.이 도구를 사용하면 도구와 공작물을 변경하지 않고 단일 공작물에 다양한 유형의 작업을 쉽게