GPS-модуль не работает с датчиком

Я подключаю свой Датчик температуры влажности почвы SHT10 с GSM-модулем SIM900A и GPS GY-GPS6MV2. По отдельности все компоненты работают правильно и дают правильные значения. Но когда я подключаю все три компонента к Arduino, кажется, что работает только датчик температуры, а GPS не дает никаких значений. Даже если я подключу только SHT10 и GPS с Arduino Uno (без GSM), только SHT10 дает значения, а GPS-нет.

Мой код:

#include <AltSoftSerial.h>
#include <TinyGPS++.h>
#include <SHT1x.h>

AltSoftSerial gpsSerial (11,12);

TinyGPSPlus gps;

#define dataPin 6
#define clockPin 7
SHT1x sht1x(dataPin, clockPin);
float TEMP, HUMID;

void setup()           
{
Serial.begin(9600);
gpsSerial.begin(9600); 
}

void loop()            
{
TEMP = sht1x.readTemperatureC();
HUMID = sht1x.readHumidity();
Serial.println(TEMP);
Serial.println(HUMID);
gps_value();            
}

void gps_value()        
{
while(gpsSerial.available())   
{
gps.encode(gpsSerial.read());  
}

if(gps.location.isUpdated())   
{
Serial.println("Latitude: ");
Serial.println(gps.location.lat());
Serial.println("Longitude: ");
Serial.println(gps.location.lng());
Serial.println("Altitude Feet: ");
Serial.println(gps.altitude.feet());
Serial.println("Horizontal Dilution of Precision: ");  //lower the better
Serial.println(gps.hdop.value());
Serial.println("");             
}
}

Что здесь происходит ?

Спецификация SHT10

SHT10

, 👍1

Обсуждение

Вы пытались подключить модули GSM и GPS без подключения датчика температуры?, @Macit

@Majid_L Да, я это сделал. И это работает., @knowledgeispower

Вы должны использовать общую схему датчика температуры и источник питания, который вы используете. Судя по информации, которую вы предоставили до сих пор, я думаю, что это проблема, связанная с оборудованием, а не с программным обеспечением. Это может быть из-за перегрузки источника питания или, возможно, arduino сбрасывается., @Macit

@Majid_L Я подключаю Arduino к самому компьютеру., @knowledgeispower


2 ответа


0

Вы могли бы использовать SoftwareSerial вместо AltSoftSerial.Поскольку вы используете AltSoftSerial, пожалуйста, просмотрите его файл библиотеки, чтобы проверить, как вам нужно с ним работать. Для последовательного программного обеспечения вам необходимо использовать предопределенные контакты Rx , Tx Arduino,а не определять какие-либо другие контакты для Rx, Tx для подключения их к Rx Tx датчика температуры. Для GPS попробуйте определить любые 2 вывода Arduino как Rx Tx, чтобы вы могли подключить их к Rx Tx GPS.Надеюсь, это вам поможет.

,

**НИКОГДА** не используйте последовательную библиотеку программного обеспечения на выводах HardwareSerial (вывод RX 0 и вывод TX 1). И "Программное обеспечение" - худшая альтернатива. См. этот ответ для получения дополнительной информации., @slash-dev


1

Как уже упоминалось, это, по-видимому, текущая связанная с этим проблема. Вы подключаете свой Arduino через Usb. Сами датчики работают нормально. Тем не менее, подключение всех из них, похоже, потребляет слишком много тока, поэтому они не будут работать должным образом. (Смотрите этот пост для получения дополнительной информации о текущих.

,