Température de lecture via DHT11 avec Android Things

J'utilise le capteur Raspberry pi3 et DHT11 pour le projet de surveillance de la température. J'ai suivi les positions des broches

VCC à pin no: 2 Ground to pin no: 6 Sortie sur GPIO: BCM22 ie pin no 15

  • AppCompat 23.2 utilise VectorDrawableCompat avec RemoteViews (AppWidget) sur API <21
  • Android: Supprimez les fichiers associés de l'application du stockage externe lors de la Désinstallation?
  • AlertDialog Android avec fond transparent
  • Copier le fichier dans le dossier des ressources
  • La granularité de la gestion de la mémoire Android - Activité ou processus?
  • La minuterie Android démarre tard lorsque l'écran du téléphone est bloqué
  • Code que j'ai utilisé:

    public class WeatherStationActivity extends Activity { private Handler mHandler = new Handler(); private TextView mTxtStatus; private PeripheralManagerService service = new PeripheralManagerService(); private Gpio tempGpio; private int i = 0; int[] dht11_dat = {0, 0, 0, 0, 0}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("Weather station", "Started Weather Station"); setContentView(R.layout.activity_main); mTxtStatus = (TextView) findViewById(R.id.txtStatus); try { tempGpio = service.openGpio("BCM22"); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { if (i == 10) { handler.removeCallbacks(this); } else { getTemp(); handler.postDelayed(this, 5000); } i++; } }, 5000); } catch (Exception e) { e.printStackTrace(); } } private void getTemp() { boolean laststate = false; try { laststate = tempGpio.getValue(); } catch (IOException e) { e.printStackTrace(); } int j = 0; final int MAXTIMINGS = 85; dht11_dat[0] = dht11_dat[1] = dht11_dat[2] = dht11_dat[3] = dht11_dat[4] = 0; try { tempGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW); // tempGpio.setActiveType(Gpio.ACTIVE_LOW); tempGpio.setValue(false); // Thread.sleep(18); TimeUnit.MILLISECONDS.sleep(18); // tempGpio.setActiveType(Gpio.ACTIVE_HIGH); // tempGpio.setActiveType(Gpio.ACTIVE_HIGH); tempGpio.setValue(true); TimeUnit.MICROSECONDS.sleep(40); tempGpio.setDirection(Gpio.DIRECTION_IN); /* tempGpio.setActiveType(Gpio.ACTIVE_HIGH); tempGpio.setValue(true);*/ // tempGpio.setValue(true); StringBuilder value = new StringBuilder(); for (int i = 0; i < MAXTIMINGS; i++) { int counter = 0; while (tempGpio.getValue() == laststate) { counter++; TimeUnit.MICROSECONDS.sleep(1); if (counter == 255) { break; } } laststate = tempGpio.getValue(); mTxtStatus.append("\nLast State of Sensor " + laststate); if (counter == 255) { break; } //* ignore first 3 transitions *//* if ((i >= 4) && (i % 2 == 0)) { //* shove each bit into the storage bytes *//* dht11_dat[j / 8] <<= 1; if (counter > 16) { dht11_dat[j / 8] |= 1; } j++; } } // check we read 40 bits (8bit x 5 ) + verify checksum in the last // byte if ((j >= 40) && checkParity()) { value.append(dht11_dat[2]).append(".").append(dht11_dat[3]); Log.i("Logger", "temperature value readed: " + value.toString()); mTxtStatus.append("\nTemp " + value.toString()); } else { mTxtStatus.append("\nNothing is working "); Log.i("Logger", "Nothing is working "); } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } } private boolean checkParity() { return dht11_dat[4] == (dht11_dat[0] + dht11_dat[1] + dht11_dat[2] + dht11_dat[3] & 0xFF); } } 

    Le code ci-dessus me donne "Rien ne fonctionne" comme sortie.

    Une suggestion où je me trompe peut-être?

  • Le périphérique LG G3 n'est pas reconnu par Eclipse sous Windows
  • Gallery ImageAdapter convertView est toujours nul
  • Autorité du fournisseur de duplicata Android
  • Vue non attachée au gestionnaire de fenêtres, dialogue rejeté
  • Les matchs à bas prix disparaissent après le chargement pour la première fois
  • Android: Retourner au fragment précédent sur la touche arrière
  • One Solution collect form web for “Température de lecture via DHT11 avec Android Things”

    Vous ne pouvez pas lire les données de DHT11 à l' aide de Raspberry Pi 3 avec Android Things car la durée des impulsions de réponse DHT11 est de 26-28 us à 70 us, mais la fréquence maximale de RP3 avec AT GPIO est d'environ 3kHz, ce qui signifie environ 300 pouces de durée d'impulsion . Jetez un oeil aux réponses à cette question.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.