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

MKR1000 to ThingSpeak.com

구성품 및 소모품

DHT11 온도 및 습도 센서(4핀)
× 1
Arduino MKR1000
× 1

이 프로젝트 정보

저는 DHT11에서 가져온 환경 센서 데이터를 ThingSpeak 웹사이트에 무선으로 업로드하고 그래프로 표시하도록 ESP8266 12-E용 코드를 이미 개발했습니다. 새로운 Arduino MKR1000에서 작동하도록 약간만 변경하면 되었습니다.

1단계.

DHT 데이터 라인 출력을 MKR1000 Pin1(보드 뒷면에 1로 표시됨)에 연결합니다.

2단계. WiFi101 라이브러리 및 DHT 라이브러리 다운로드:

https://github.com/arduino-libraries/WiFi101

https://learn.adafruit.com/dht

3단계.

Arduino IDE에서 보드 관리자로 이동

도구-->보드-->보드 관리자

Arduino SAMD 보드 검색(32비트 ARM Cortex M0+)

버전 1.6.3 다운로드(MKR100 보드가 설치되지 않아 1.6.4에 문제가 있음)

4단계.

무료 ThingSpeak.com 계정을 만들고 필드에 Graph(습도 및 온도) 레이블을 지정하고 ThingSpeak "쓰기" API 키를 WiFi SSID 및 WiFI 비밀번호와 함께 제공된 스케치에 붙여넣습니다.

5단계.

적절한 COM 포트를 선택하여 MKR1000을 찾고 코드를 컴파일하고 실행하십시오.

직렬 창에서 ThingSpeak로 업데이트가 전송되는 것을 볼 수 있습니다.

즐거운 시간 보내세요!

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

코드

<울>
  • MKR1000-DHT-ThingSpeak Wireless 클라우드 기반 환경 센서 그래프
  • MKR1000 - DHT - ThingSpeak Wireless 클라우드 기반 환경 센서 그래프Arduino
    AdaFruit, WiFi101 WebClient 및 ThingSpeak Arduino 템플릿의 스케치 조합.
    /*이 스케치는 ADAFruits DHT 스케치, WiFi101 Webclient 및 ThingSpeakModified by Stephen Borsay의 MKR1000용 arduino 예제입니다. 자유롭게 사용하세요. */ #include  //실드 칩을 사용하지 않기 때문에 필요하지 않습니다.#include #include "DHT.h#define DHTPIN 1 // 핀이 무엇인지 연결된 핀 1은 끝에서 5번째 핀입니다.// 사용 중인 DHT 센서 유형에 상관없이 주석 처리를 제거합니다!#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT21 // DHT 21//#define DHTTYPE DHT22 // DHT 22DHT dht (DHTPIN,DHTTYPE);문자열 apiKey ="YourApiKeyHere"; // ThingSpeakchar의 API ssid[] ="YourSSIDHERE"; // 네트워크 SSID(이름)char pass[] ="YourPasswordHere"; //네트워크 비밀번호int keyIndex =0; // 네트워크 키 인덱스 번호(WEP에만 필요)//#define WEBSITE "api.thingspeak.com"int status =WL_IDLE_STATUS;// DNS를 사용하지 않으려는 경우(스케치 크기 줄이기)// server://IPAddress server(74,125,232,128)의 이름 대신 숫자 IP를 사용하십시오. // Google의 숫자 IP(DNS 없음)char server[] ="api.thingspeak.com"; // Google의 이름 주소(DNS 사용)// 이더넷 클라이언트 라이브러리를 초기화합니다// 서버의 IP 주소와 포트로// 연결하려는 서버의 포트(HTTP의 경우 포트 80이 기본값임):WiFiClient 클라이언트, 무효 설정 () { //시리얼을 초기화하고 포트가 열리기를 기다립니다:Serial.begin(9600); 동안 (! 직렬) {; // 직렬 포트가 연결될 때까지 기다립니다. 기본 USB 포트에만 필요 } // 쉴드가 있는지 확인:if (WiFi.status() ==WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // 계속하지 않음:while(true); } // Wifi 네트워크 연결 시도:while (status !=WL_CONNECTED) { Serial.print("Attempting to connect to SSID:"); Serial.println(ssid); //WPA/WPA2 네트워크에 연결합니다. open/WEP 네트워크를 사용하는 경우 이 줄을 변경합니다. status =WiFi.begin(ssid, pass); // 연결을 위해 10초 대기:delay(10000); } Serial.println("와이파이에 연결되었습니다"); printWifiStatus(); }void loop() { // 측정 사이에 몇 초를 기다립니다. 지연(2000); // float 사용을 선호하지만 패키지 크기 또는 float 변환이 작동하지 않습니다. // 향후 string fuction 또는 float 변환 기능으로 수정됩니다. int h =dht.readHumidity(); // 온도를 섭씨로 읽습니다(기본값) int t =dht.readTemperature(); // 온도를 화씨로 읽습니다(isFahrenheit =true) int f =dht.readTemperature(true); // 읽기가 실패했는지 확인하고 일찍 종료합니다(다시 시도하기 위해). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("DHT 센서에서 읽지 못했습니다!"); 반품; } // 화씨로 열 지수를 계산합니다(기본값) int hif =dht.computeHeatIndex(f, h); // 섭씨로 열 지수 계산(isFahreheit =false) int hic =dht.computeHeatIndex(t, h, false); Serial.print("습도:"); Serial.print(h); Serial.print(" %\t"); Serial.print("온도:"); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("열지수:"); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F\n"); Serial.println("\n서버 연결 시작 중..."); // 연결되면 직렬을 통해 다시 보고합니다. if (client.connect(server, 80)) { Serial.println("connected to server"); client.print(F("포스트")); client.print("/update?key=apiKey&field1=" + (문자열) h + "&field2=" +(문자열) t + "&field3=" +(문자열) f + "&field4=" +(문자열) hic + " &field5=" +(문자열) hif ); String tsData ="field1=" // ThingSpeak에 줄 길이 필요 + (String) h + "&field2=" +(String) t + "&field3=" +(String) f + "&field4=" +(String) hic + "&field5=" +(문자열) hif; client.print("POST /HTTP/1.1 업데이트\n"); client.print("호스트:api.thingspeak.com\n"); client.print("연결:닫기\n"); client.print("X-THINGSPEAKAPIKEY:" + apiKey + "\n"); client.print("콘텐츠 유형:application/x-www-form-urlencoded\n"); client.print("내용 길이:"); client.print(tsData.length()); // ts에 데이터 문자열 길이를 보냅니다. client.print("\n\n"); client.print(tsData); client.stop(); 지연(1000); } }void printWifiStatus() { // 연결된 네트워크의 SSID를 인쇄합니다. Serial.print("SSID:"); Serial.println(WiFi.SSID()); // WiFi 실드의 IP 주소를 인쇄합니다. IPAddress ip =WiFi.localIP(); Serial.print("IP 주소:"); 직렬.println(ip); // 수신된 신호 강도를 출력합니다. long rssi =WiFi.RSSI(); Serial.print("신호 강도(RSSI):"); Serial.print(rssi); Serial.println("dBm");}
    GitHub의 코드
    MKR1000https://github.com/sborsay/Arduino_Wireless/blob/master/MRK100_DHt_TS
    용 GitHub의 동일한 코드

    회로도

    DHT 데이터 라인을 MKR100 핀 1에 연결합니다(5번째 핀 위로).
    5v 및 접지를 MKR1000에서 제공하는 DHT 센서에 연결합니다.

    제조공정

    1. Manhattan Skyline:NXP i.MX 8MM이 탑재된 소형 ARM COM
    2. Kontron:새로운 임베디드 컴퓨팅 표준 COM HPC
    3. Raspberry Pi용 DHT Tiny Breakout
    4. ThingSpeak 온도 모니터(Raspberry Pi 포함)
    5. Raspberry Pi, DHT11 센서 및 Thingspeak로 최초의 IOT를 구축하십시오.
    6. Mkr1000 핀아웃:IoT 프로젝트에 선호되는 선택
    7. Parts.Cat.Com의 이점 및 등록 방법
    8. Shop.Cat.Com 가이드
    9. My.Cat.com 시작하기
    10. ASTM A551 클래스 DHT 열처리