» Elektronik » Arduino »Client für openweathermap.org basierend auf Wemos d1 mini

Client für openweathermap.org basierend auf Wemos d1 mini


Die Idee stammt aus dem Projekt. ESP8266 Wetteranzeige.

Ich beschloss, mich daran zu erinnern.
Folgende Aufgaben wurden gestellt:
  1. Aktualisieren Sie den nutzungsbezogenen Code neue Version Bibliotheken ArduinoJson.h.
  2. Schreiben Sie den Code mit der Funktion millis () anstelle der Funktion delay () neu. Es ist klar, dass es mit der Verzögerung zum Einstellen einer Pause zwischen dem Ändern von Informationen auf dem Display unmöglich ist, Tastensteuerungen zu implementieren.
  3. Machen Sie Skizzen über Wifi herunterladen;
  4. Entfliehen Sie dem sperrigen Wemos D1 R2 auf dem Wemos D1 mini.
  5. Nach Möglichkeit Anzeige russifizieren;
  6. Verwenden Sie ein fertiges Gehäuse mit Knopflöchern für Geräte, die auf LCD1602 basieren.
  7. Verwenden Sie Standard-6x6-Tasten, die an das Steckbrett gelötet sind. Fügen Sie Steuerungsschaltflächen für die Hintergrundbeleuchtung, eine Karusselltaste zum Ändern der angezeigten Daten und eine Schaltfläche zum Erzwingen von Datenaktualisierungen vom Server hinzu.


Folgende Komponenten wurden verwendet:
  1. Das Gehäuse besteht aus ABS-Kunststoff mit einem Satz Abdeckungen für die Tasten.
  2. Nylonstreben 6 + 5 mm männlich M3 schwarz, 4 Stk;
  3. M3 Nylonmuttern schwarz, 4 Stück;
  4. Nylonpfosten 6 + 5 mm männlich M2 weiß, 3 Stück;
  5. Nylonständer 6 mm mutterweiß, 1 Stck;
  6. Nylonständer 8 mm mutterweiß, 1 Stk.;
  7. Nylongestelle 10mm mutterweiß, 2 Stk;
  8. LCD 1602 (I2C), gelb;
  9. Wemos d1 mini;
  10. Wemos d1 DC-Power Shield;
  11. Brett Steckbrett 3x7;
  12. Knöpfe 6x6, Höhe 7 mm, 3 Stück;
  13. Dupont Drähte 10cm Mutter-Mutter, 4 Stück;
  14. 24 AWG Drähte schwarz und rot;
  15. Silikondrähte 20 AWG blau und weiß;
  16. Widerstände 5 kOhm - 2 Stk., 10 kOhm - 1 Stk. (Die zur Hand kamen);
  17. Netzteil 9V 1A;
  18. Zweikomponenten-Epoxidklebstoff.


Der verwendete Fall hat mehrere Vorteile. Erstens passt neben dem Display auch die Standard-3x7-Standard-Entkopplungsplatte mit beidseitig installierten Komponenten perfekt in die Höhe. Zweitens hat es an zwei Enden rechteckige Öffnungen zum Kühlen. Es stellte sich heraus, dass die Jumper zwischen diesen Löchern durch Minifeilen 3 und 4 mm perfekt geschnitten sind. Wenn Sie ein paar Jumper schneiden und ein kleines rechteckiges Loch in das Gehäuse schneiden, passt der DC-005-Stromanschluss perfekt in das Loch mit der komplexen Geometrie. Auch die Rückseite dieses Gehäuses hat ein großes quadratisches Loch, in das anscheinend Batterien eingelegt werden sollten.Dadurch ist es bequem, etwas im Inneren anzuschließen, ohne das Gehäuse zu zerlegen. Anschließend kann es einfach mit Glas oder Kunststoff verschlossen werden.

Fortschritt aufbauen:
Zunächst wurde ein Prototyp auf einem Steckbrett hergestellt.

Dann wird der Fall mit einer Datei abgeschlossen.

Danach werden die Hauptkomponenten verlötet und die Montage durchgeführt. Die Beine wurden speziell gebogen, damit die abnehmbaren Gelenke in die Höhe passen. Ein paar Nylongestelle mussten abgelegt werden, damit sich alle Knöpfe auf gleicher Höhe befanden.




Infolgedessen ist die Vorderseite der Platine mit Knöpfen, Widerständen und Drähten wie folgt:

Infolgedessen sehen die Innenseiten des Geräts folgendermaßen aus:

Im zusammengebauten Zustand sieht das Gerät folgendermaßen aus:





Schwierigkeiten überwinden:
  1. Lange Zeit konnte ich nicht verstehen, warum die Tasten nicht funktionierten, obwohl das Multimeter beim Drücken der Tasten deutlich 0 und beim Drücken von 4,6 - 5,0 V (abhängig von der Stromversorgung) deutlich zeigte. Es stellte sich heraus, dass bei Wemos / Lolin-Geräten GPIO-Nummern in der Skizze als PIN-Nummern angegeben werden müssen. Zum Beispiel ist D5 GPIO14. Das ist also der 14. Pin.
    const int buttonPin = 14;

  2. Um das Wetter zu zeigen, ist die Bedingung notwendig:
    currentMillis - previousMillis == weatherTime

    Strenge Korrespondenz, weil sie einmal gemacht werden muss.
    Um eine Anfrage an den Server zu stellen, ist die Bedingung erforderlich:
    currentMillis - previousMillis> = getDataTime

    Lose Konformität, da sie ausgeführt wird, bis das Flag "Daten empfangen" gesetzt ist.
    Tatsächlich ist dies nicht offensichtlich, und um dies zu verstehen, hat es ziemlich lange gedauert.
  3. Ich musste mich auch mit der Antwort des Servers quälen:
    String weather = root ["Wetter"] [0] ["Haupt"];
    String description = root ["Wetter"] [0] ["Beschreibung"];

    Zero war völlig offensichtlich. Es stellt sich heraus, dass es in Moskau zwei Wetterstationen gibt, von denen die zweite nicht immer funktioniert (um Daten von ihr zu erhalten, müssen Sie [1] angeben, wenn sie aktiv sind).

Das Repository mit Code und Bibliotheken befindet sich hier.
5.5
8.5
10

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
7 Kommentare
ino53Es ist überraschend, dass wir uns in Abwesenheit getroffen haben und einen Artikel gelesen haben, der sich nicht mit Verstärkern und BP befasst. Obwohl nicht überraschend. Und ungefähr ein Jahr habe ich lange geraten. Ich bin 67, aber das ist nicht der Punkt.
Danke, ich werde etwas Gutes wissen.
Leute, mein Spitzname sind die Initialen und das Geburtsjahr 1953. Ich habe 42 Jahre technische Erfahrung in meiner Arbeitsprotokoll, ich weiß nichts über Amateur - Papa (nicht Lukaschenko, wir haben keine Roma), sagte, dass ich vor dem Reden angefangen habe, den Lötkolben zu greifen. Ich habe nichts Geschriebenes verstanden, aber das ist ein Schritt weiter, gut gemacht.
Der Autor
Ich mache das Im Gegenzug http: //Arduino.esp8266.com / stabile / package_esp8266com_index.json unterstützt diese Boards.
Und Sie können mit einem programmieren Arduino IDE?
Der Autor
Nun, ich habe vor einem Jahr persönlich zwei Wemos D1 R2 v2.1.0-Boards bestellt (sie funktionieren mit dem cp210x-Treiber). Und zwei Wemos d1 mini vor einem halben Jahr. Einer der D1 R2 wurde mit einem abgefallenen Widerstand von einem 12-Volt-Versorgungskreis geliefert. Nun, ich schaute auf die Schaltung, fand einen Widerstand, gelötet, es funktionierte. Ansonsten habe ich noch keine Probleme bemerkt. In Bezug auf die Popularität ist es ungefähr wie bei NodeMCU, es ist seltsam, dass sie nichts gehört haben.
Ich habe in Ihrem Artikel von Wemos erfahren, der Preis und die Funktionen sind attraktiv, aber was ist mit der Haltbarkeit?

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...