About sensors and GPIO
-
Hello.
I want to connect the sensors DHT22 and DS18B20 and the capacitive soil moisture sensor to Core 2 for operation.
Below is the sketch. However, when I wrote the sketch with the pin stuck, fatal error occurred.And after that, I couldn't write.Core 2 has been lucky enough to come back, but it's scary.Therefore, I would like to know the GPIO that should point to the sensor. Please let me know.
Thank you.//#include <M5Stack.h> #include <M5Core2.h> #include "DHT.h" //#define DHTPIN 13 // Basic.DHT22. #define DHTPIN 27 // Core2.DHT22 .19.27 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); #include <OneWire.h> //DS18B20 #include <DallasTemperature.h> //DS18B20 //#define ONE_WIRE_BUS 0 // Basic.DS18B20. #define ONE_WIRE_BUS 26 // Core2.DS18B20.25.26.27 OneWire oneWire(ONE_WIRE_BUS); // OneWire DallasTemperature sensors(&oneWire);// Dallas Temperature sensor #define PinSoilMoist 35 //CapSoilMoistSensor const int dry = 3700; const int wet = 1400; int inttemp , inthumid ; int intsoilmoist , soilval , intsoiltemp; float temperature, humidity, soilMoist, soilTemp; void getData() { delay(2000); dht.begin(); float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); if (isnan(temperature) || isnan(humidity) ) { Serial.println(F("Failed to read from DHT sensor!")); return; } inttemp = int ( temperature ); inthumid = int ( humidity ); Serial.print( inttemp ); Serial.println(" *C, "); Serial.print( inthumid ); Serial.println(" RH% "); soilMoist = analogRead(PinSoilMoist); soilval = map(soilMoist, dry, wet, 0, 100); if(soilval >= 99) { intsoilmoist = 99; } else if(soilval <=20) { intsoilmoist = 20; } else if(soilval >21 && intsoilmoist < 99) { intsoilmoist = soilval ; } // Serial.print( soilMoist ); Serial.println(" Pin "); Serial.print( intsoilmoist ); Serial.println(" soil% "); delay(250); sensors.requestTemperatures(); float soilTemp = sensors.getTempCByIndex(0); intsoiltemp = int ( soilTemp ); Serial.print( intsoiltemp ); Serial.println(" soil*C, "); } void sendSigfox() { String msg = String (inttemp, HEX) + String (inthumid, HEX) + String (intsoilmoist, HEX) + String (intsoiltemp, HEX); Serial2.println("AT$SF=" + msg); Serial.println("AT$SF=" + msg); } void setup() { M5.begin(true, false, true); // M5.Speaker.write(0); // M5.Axp.SetSpkEnable(0); // Serial2.begin(9600, SERIAL_8N1, 16, 17); Serial2.begin(9600, SERIAL_8N1, 13, 14); // Serial.begin(9600); } void loop() { getData(); sendSigfox(); // M5.Power.deepSleep(SLEEP_SEC(60*15)); M5.Axp.DeepSleep(SLEEP_SEC(60*0.5)); } -
@takero hello, is the DHT, DS18B20 and soil moisture sensor are M5 products? have you tried to use UIFlow for this or you'd prefer Arduino instead?
-
@zontex Thank you.
DHT, DS18B20 and Soil Moisture Sensor are not M5 products. Use Arduino.
Thank you.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login