Inhaltsverzeichnis:

ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC - Gunook
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC - Gunook

Video: ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC - Gunook

Video: ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC - Gunook
Video: ESP32 FFT Vibration measurement and display via GY-521 2024, November
Anonim
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATENLOGGER MIT GPS_EXT RAM_EXT_RTC

Für diejenigen von euch da draußen, die mit dem Wemos 32 LOLIN Board spielen, dachte ich, ich würde anfangen, einige meiner bisherigen Ergebnisse zu dokumentieren.

Das aktuelle Projekt besteht darin, eine Schnittstelle zu einem ADXL345-Beschleunigungsmesser herzustellen, und wie das Foto oben zeigt, habe ich es erfolgreich mit dem Lolin verbunden und den ADXL als Stoßsensor konfiguriert.

Die Register auf dem ADXL wurden als angehängtes PDF eingerichtet und der Interrupt, den ich im Code konfiguriert habe, um den Code auf der seriellen Schnittstelle auszuspucken, sobald ein Schock erkannt wird.

Ich habe auch das Inaktivitätsregister als Interrupt eingerichtet und nachdem ich überprüft habe, welcher Interrupt ausgelöst wurde, spucke ich die gleichen Daten aus.

Ich verwende den I2c-Port auf dem LOLIN und Sie werden sehen, dass ich eine Routine habe, um die Register auf dem ADXL auszuspucken, damit ich die Konfiguration beim Debuggen überprüfen kann. Diese Funktion läuft in einer Timer-Funktion, die die Ticker-Bibliothek verwendet. Dies ist eine nützliche Funktion zum Einrichten des Debuggens und Überprüfens der Register, falls Sie etwas hineinschreiben, was auf mysteriöse Weise dazu führt, dass die Daten seltsame Dinge tun.

Ich habe die Komplementdaten der 2 im LOLIN normalisiert und so formatiert, dass sie in Excel importiert werden können.

Schauen Sie sich das angehängte PDF mit einigen Daten an, die ich importiert und in Excel grafisch dargestellt habe, die einige Taps auf dem ADXL zeigen, die durch einen Interrupt im Triggerregister im FIFO-Modus ausgelöst werden.

Der FIFO-Modus ist eine nützliche Funktion, die das Mikro nicht bindet und 32 Samples auf einem Trigger speichert. Schauen Sie sich noch einmal meine Datendumps an und Sie können sehen, wo wir bei Ground Zero beginnen und das letzte Sample bei 9,8 ms oder ungefähr liegt. Die X-Linie im Diagramm zeigt das Timing in Mikrosekunden, das von links nach rechts ansteigt.

ANMERKUNG ICH HABE DAS LETZTE GRAPH SEIT GEÄNDERT, UM DIE ZEITLINIE VON MINUS 9800 Mikrosekunden ZU ZEIGEN. Der erste Pop von FIFO ist die frühesten Daten, der Rest ist älter. Die Ansicht sollte von rechts nach links sein.

Beachten Sie die drei Drähte zur ADXL-Platine. SDA/SCL und das INT von INT 1. Auch hier macht es Sinn, wenn Sie sich die Registereinstellungen ansehen und das Datenblatt kreuzen.

Die Datenabtastung ist bei 3200 Abtastungen vollständig geneigt, was 3125 us-Sekunden zwischen den Abtastungen und einer Vorerfassung von 4 Abtastungen ergibt. Sehen Sie sich die PDF-Datei der Daten des Geräts in Excel und jedes der Diagramme an, die ich gezeichnet habe, und zeigen Sie, wie ich das Erfassungsfenster verschiebe.

Ich werde etwas Code der Konfiguration und Interrupts einfügen, wenn jemand interessiert ist.

Für I2C verwende ich die Wire Library und habe einige Funktionen dazu geschrieben.

Beachten Sie den kleinen Daten-Sniffer, den ich an SDA/SDL angeschlossen habe und mit Sigrok kann ich den I2C-Bus in Echtzeit entschlüsseln.

Der nächste Schritt besteht darin, auf SAN-Festplatte zu speichern, obwohl ich bereits bewiesen habe, dass es funktioniert. Sobald dies erledigt ist, werde ich eine Schnittstelle zum WLAN herstellen und auf eine Website hochladen.

Ich werde dies ergänzen, wenn das Projekt erweitert wird.

FUSSNOTE:

Für die Aufmerksamen da draußen werden Sie eine große Delle in der Dose bemerken, die den ESP-Chip schützt, und einen Jumper auf der Platine. Dies lag an dem ansässigen Cocker Spaniel, der die Post inspiziert und beschlossen hat, das Brett zu kauen, bevor er mir Zugang dazu gab. Ich denke, sie ist ein Nicht-Espressif-Fan!.

Für Fragen stehe ich natürlich wie immer gerne zur Verfügung, also bitte fragen.

Schritt 1: SIGROK UND PULSEVIEW

SIGROK UND PULSEVIEW
SIGROK UND PULSEVIEW
SIGROK UND PULSEVIEW
SIGROK UND PULSEVIEW

Nur eine kurze Erwähnung von pulseview und sigok.

Dies ist kostenlose Software aus dem Netz und die kleine Schnittstellenplatine mit 8 Logikeingängen ist billig von ebay et al. Sie werden ein paar Bilder bemerken, die ich aus dem Bus geholt habe, während ADXL lief, und es ist wieder so nützlich zum Debuggen wie es hat einen eingebauten Decoder für I2C.

Ein Oszilloskop ist großartig, um Signalpegel zu überprüfen, aber die manuelle Dekodierung von I2c ist bestenfalls ermüdend, obwohl ich zuvor eine Schleife eingerichtet und von Hand debuggt habe. Sie müssen ein Verständnis für Bit-Banging auf Port-Ebene haben, was ich bei vielen Bildprojekten getan habe, aber es ist zeitaufwändig und fehleranfällig … besonders nachts!

Danke an die Jungs, die diese App geschrieben haben. Es ist ein Gott, der für Projekte in i2c schickt, Beachten Sie die D4-Leitung, die die Interrupt-Leitung vom ADXL überwacht.

Schritt 2: Hinzufügen zum Stoßsensor

Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor
Hinzufügen zum Stoßsensor

Ok, hier habe ich dem Stoßsensor einige Peripheriegeräte hinzugefügt, um das Konzept zu beweisen.

Entschuldigen Sie das Rattennest für jetzt, sobald es funktioniert, werde ich die Platine entwerfen, die alle Komponenten verbindet und alles in eine hübsche Box stecken. Alle angeschlossenen Elemente außer der SD-Karte funktionieren auf i2c, das sich am Spi-Bus befindet.

Es muss noch das GPS-Modul angeschlossen werden, das WIP ist, aber ich hoffe, bis Ende dieser Woche eine Lösung zu haben.

Das aktuelle Projekt besteht also aus:

ESP32 LOLIN-Board mit Wireless.

PCF-Echtzeituhr. Verfolgt das aktuelle Datum und die aktuelle Uhrzeit. Ich habe grob auf eine alte Projektplatine gelötet, die ich zuvor geätzt habe.

Externer Blitz. Enthält unter anderem Setup-Daten für den Beschleunigungsmesser. Kapazität 132k und kann einige Webdaten darauf ablegen, um Menüs usw. zu erleichtern

SPI SD-Karte zum Speichern von Dateibeschleunigungsmesserdaten und -protokollen. 8 GB, kann aber erweitert werden.

OLED-Display zur Anzeige von Menüs und einigen anderen Dingen.

Hier ist, was es [endlich] tun wird

Überwachen Sie Erschütterungen und Aktivitäten, die den Hintergrund überschreiten.

Registrieren Sie die Schocks auf der SD-Karte mit Uhrzeit und Datum von der Borduhr.

Den Standort vom GPS auf die SD-Karte stempeln, falls verfügbar

Verwenden Sie einen Zugangspunkt, um die Daten auf einen Webserver hochzuladen, um die Daten zu analysieren … dies kann ein Mobiltelefon sein.

|Das Scannen nach Access Points ist eine Fähigkeit des LOLIN32, ebenso wie das Hosten eines Webservers für Befehle und das anschließende Verbinden als Client mit dem Cloud-Webserver. Sie können immer nur die SD-Karte ausstecken und hochladen!

Es gibt noch viel zu tun, aber es geht weiter.

Schritt 3: ADXL-ADRESSIERUNG

ADXL-ADRESSIERUNG
ADXL-ADRESSIERUNG

Hier ist eine lustige Sache. Ich habe den ADXL 345-Chip als kleines Board gekauft, weil er billiger war, als einen Chip alleine zu beschaffen ….. wie funktioniert das? Wie auch immer, danach machte ich mich daran, es an den i2c-Bus anzuschließen und stellte fest, dass ich einen Konflikt mit dem Eeprom hatte, dessen Adressen effektiv bei 0x53 beginnen, was einem Schreiben bei A6 und einem Lesen bei A7 entspricht.

Wenn Sie also den Bumf lesen, stellt sich heraus, dass Sie ihn auf 1D erzwingen können, wenn Sie die SDO / ALT-ADRESSE HOCH nehmen

Es stellt sich heraus, dass mein kleines Board an Pin 12 des ADXL fest verdrahtet ist, obwohl der SDO-Pin so aussieht, als könnte man ihn hoch ziehen. Versuchen Sie dies nicht zu Hause ohne eine strombegrenzte Stromversorgung. Zum Glück hatte ich das dazu, das Multimeter herauszunehmen und den Pin auf Masse zu überprüfen. Das funktioniert und bringt Sie aus dem Prom-Clash. Zum Glück haben sie den Kurzschluss nicht unter dem Chip gemacht, sonst wäre ich gesnookert worden und hätte den Chip vom Board entfernen müssen. Das EEprom, das ich hatte, ist wie folgt angeordnet zwei Seiten von 64k als Adresse 0x52 und 53. Sobald ich dies getan habe, war mein Problem gelöst.

Wenn man die Webseite noch einmal liest, sagt es, dass es auf 0x53 eingestellt ist, aber es steht im Kleingedruckten, also pass auf!

Schritt 4: Schematische PCB-Drucke

Hier ist ein kurzer Überblick über die Schaltung und die Komponenten. Dies ist sehr viel mein Design und immer noch WIP [Work In Progress] Der Schaltplan wurde entworfen und dann in das Artwork für die Gleise übersetzt. Ich habe überprüft, ob alle Komponenten wie erwartet funktionieren mein Rattennest nähert sich und baut jetzt auf ein Brett, das in eine kleine Kiste passt[Detail folgt]

Bezug nehmend auf Shocker.pdf.

Das Board besteht aus 8 Hauptkomponenten

  1. SD-KARTENSPEICHER
  2. ADXL-BESCHLEUNIGUNGSMETER
  3. OLED-ANZEIGE
  4. 3,3 V REG
  5. GPS1-MODUL
  6. EEPROM
  7. TIMER RTC
  8. ESP32 LOLIN CHIP MIT HF-DRAHTLOSER SCHNITTSTELLE

Alles hängt vom Beschleunigungsmesser ab.

Der ADXL ist so eingerichtet, dass er den Prozessor auf INT1 unterbricht, der an Pin 14 des Prozessors geleitet wird. Der Code im Mikro ist so eingerichtet, dass er diesen Interrupt abfängt und ein Flag setzt, auf das in der Hauptroutine reagiert wird. Ich füge den Code hinzu die spätere Registrierung der Interrupt-Routine und der Callback-Funktion skizzieren.

Der ADXL unterstützt Interrupts bei verschiedenen Zuständen wie einem Schock oder Inaktivität und einigen anderen. Sie können diejenigen ausblenden, die Ihre Fantasie anregen, je nachdem, was Sie zu tun versuchen. Der ADXL wird im FIFO-Modus betrieben und speichert 32 Samples um das Schockereignis als XYZ zu erfassen [96 Werte]

Das Display ADXL RTC und EEPROM werden alle von I2C angesteuert. Die SD-KARTE wird an den SPI I/O und das GPS-Modul an die mit X12 X11 gekennzeichneten seriellen Ports des LOLIN angeschlossen.

Die Sequenz ist wie folgt: Greifen Sie ständig die 232-Daten vom GPS-Gerät und filtern Sie. Während Sie eine gültige GPS-Zeit haben, aktualisieren Sie die RTC in festgelegten Intervallen. Bei Unterbrechung speichern Sie Variablen auf der SD-Karte, wie z Rohformat 2 Komplement und Nicht 2 Komplement. Alle Daten sind durch Kommas getrennt.

Sie werden auch bemerken, dass es einen Reset-Pin gibt, der mit Pin 13 verbunden ist. Dieser Pin startet den eingebauten Webserver, der es Ihnen ermöglicht, sich mit dem Konfigurator zu verbinden, um einen Zugangspunkt einzurichten, der im EEPROM gespeichert ist. Beim Neustart verbindet sich der Prozessor mit dem Zugangspunkt und greift auf das Internet zu, um Dateien von der SD-Karte hochzuladen. Wenn keine Daten und kein Verbindungspunkt vorhanden sind, führt das Gerät einfach seinen Datenprotokollierungsprozess auf der SD-Karte durch, die Sie mit abfragen können das Programm [ShockerView.exe][WIP]Auf dem Server werden die Daten in einer SQL-Datenbank gespeichert und angezeigt[WIP]

Die PCB Prints sind für Oben und Unten angebracht.

Schritt 5: Prototyp zum Ätzen von Kunstwerken

Prototyp der Kunstwerk-Radierung
Prototyp der Kunstwerk-Radierung
Prototyp der Kunstwerk-Radierung
Prototyp der Kunstwerk-Radierung
Prototyp der Kunstwerk-Radierung
Prototyp der Kunstwerk-Radierung

So produziere ich meine Prototypenplatinen

Drucken Sie das Kunstwerk auf etwas schweres Pauspapier. Ich benutze 63 GSM von Schmieden, billig und fröhlich. Der Drucker ist hier der Schlüssel. Sie wollen so undurchsichtig wie möglich und so sauber wie möglich. Mein Laserdrucker läuft jetzt, aber er kann bis zu 10 Tausend gedruckt werden. Sie können Spezialpapier kaufen, aber hey, das ist zu gut für Leute wie mich. Jedenfalls verfeinere ich ständig meine Designs, so dass es für mich zu teuer wäre. Wenn Sie ein geeignetes Board benötigen, bitten Sie die Experten, dies zu tun.

Normalerweise prototypiere ich meine Boards in Abschnitten und produziere dann ein Finale mit Gerbers für eine Internetfirma. Der Prototyp sortiert all diese Fehler und Auslassungen aus, bevor er echtes Geld ausgibt.

Nachdem Sie die Bilder auf zwei separate A4-Blätter gedruckt haben, schneiden Sie sie so, dass sie beide übereinander liegen und sie in Position kleben. Lassen Sie genügend Platz für Ihre doppelseitige Platine, um sich zwischen den Schichten zu quetschen, und stellen Sie sicher, dass die bedruckte Seite an der Leiterplatte anliegt. Machen Sie ein paar Schlitze, damit Sie die Platinen einschieben und vorübergehend mit Klebeband kleben können. Wenn Sie vorsichtig sind, können Sie das Klebeband überlappen, damit Sie es entfernen können, ohne das Tracing-Bild zu zerstören.

Legen Sie das Brett mit einer Seite nach unten in Ihre UV-Box. NB Ich habe meine mit vier neuen 13-W-UV-Lampen und einigen alten Betriebsgeräten hergestellt und eine Box mit einer klaren Glasscheibe hergestellt. Der Abstand war experimentell. Der Deckel lässt sich nach unten klappen und drückt den Schaum auf die Rückseite der Platte, wodurch die Maske gegen das Glas gedrückt wird. Wenn Sie dies nicht tun, unterschneidet das Licht den Ätzresist. Schalten Sie die Platine ein und belichten Sie sie 1 Minute 40 Sekunden pro Seite. Verwenden Sie Ihre Uhr. Eigentlich muss ich das mit einem Timer modifizieren…oh kein anderes Projekt…vielleicht werde ich einen kaufen…du weißt, dass du es nicht wirst!Die Boards, die ich von Mega Electronics kaufe, sind die billigen Prototypenboards mit Ätzresist. Der Ätzresist ist manchmal etwas fleckig, aber ich habe einige Boards, die ich seit vier Jahren habe und sie produzieren immer noch gute Boards für das Prototyping!

Seien Sie vorsichtig, wenn Sie das Brett umdrehen, lassen Sie es nicht verrutschen oder Sie haben etwas Müll.

Bereiten Sie nun Ihren Entwickler vor. Ich verwende 2 Kapseln bei 18:1, also zwei Kapseln Entwickler und 36 Kapseln reines, unverfälschtes Leitungswasser. Entwickler kommt in einer Flasche oder in Pulverform und eine Flasche hält normalerweise ungefähr 6 Jahre!! Mischen Sie es in einem Eisbehälter und TRAGEN SIE HANDSCHUHE. Stecken Sie nicht Ihre Finger hinein, da das Fett es angreift. Im Winter kann die Temperatur ein Problem sein. Halten Sie das Wasser bei ungefähr 20 Grad, es ist nicht kritisch, aber wenn es kalt ist, können die Ergebnisse unvorhersehbar sein. Ich habe dies im Januar in meiner Garage mit einem Wasserkocher getan, damit Sie dies kompensieren können.

Bewegen Sie den Behälter vorsichtig von einer Seite zur anderen, sobald Sie Ihre Platine hineingelegt haben. Wenn Sie es richtig gemacht haben, sehen Sie, wie ein magentafarbener Strom von Ätzresist vom Kupfer entfernt wird und ein schönes glänzendes Kupfer zwischen den Spuren enthüllt. Drehen Sie es mit Ihren Handschuhen um, um die andere Seite zu überprüfen. Dieser Vorgang dauert normalerweise etwa eine Minute. Nehmen Sie das Board also nach Abschluss heraus und spülen Sie es gründlich in warmem Wasser ab. Wenn es langweilig ist, besteht die Möglichkeit, dass es fehlgeschlagen ist.

Ich hatte das ein paar Mal, aber normalerweise, weil ich keine Handschuhe getragen habe oder die Temperatur zu niedrig war oder ich die Belichtungszeit aufgrund von Ablenkung vermasselt habe … warum tun sie das mitten in etwas Kritischem ….

Zeig mir deine Radierungen

Okay, jetzt haben Sie ein Brett mit schönen grünen Spuren, die durch Ätzresist geschützt sind, und müssen jetzt das Eisenchlorid herstellen. Jetzt verwende ich denselben Eisbehälter, um Abfall zu minimieren und die Notizen auf der Packung zu vermischen. Ich kaufe das Eisenchlorid in Päckchen mit Kugeln, die Sie abwiegen und in einer Lösung auflösen. Machen Sie genug, um den Eisbecher zu etwa 1/3 zu füllen. Wenn Sie gerade genug für den Job auffüllen, können Sie ihn in einen Plastikbehälter gießen und er hält sich lange.

SIE MÜSSEN HANDSCHUHE TRAGEN … nicht wegen Fett usw., sondern weil Ihre Hände vierzehn Tage lang leuchtend orange sein werden, wenn Sie dies nicht tun. Ich habe dies einmal vor einem wichtigen Treffen in London gemacht und es sah aus, als wäre ich Tango gewesen. Aber seien Sie sich bewusst, dass dieses Zeug in Bezug auf alles Kupfer eklig ist … und alles wirklich. Tragen Sie alte Klamotten, denn wenn es darauf kommt, sind sie weggeworfen. Es heftet sich an Edelstahlspülen und verfärbt im Allgemeinen alles. Tun Sie dies draußen oder in einem Nebengebäude, abseits von allem. Gießen Sie die Reste nicht in die Kanalisation, es ist großartig, um Bakterien abzutöten, was die Wasserbehörde nicht in ihren Klärgruben fördern möchte. Für einige Behörden ist dies auch illegal, also tun Sie es nicht.

Wenn Sie Ihr Board zum ersten Mal in die Lösung tauchen, wird es eine schöne rotbronzefarbene Farbe annehmen, da das Kupfer angegriffen wird. Wenn dies nicht der Fall ist, haben Sie möglicherweise immer noch eine Schicht Ätzresist, die die Wirkung des Ätzmittels verhindert, oder Ihre Lösung ist falsch. Wenn das der Fall ist, dann zurück zum Reißbrett, fürchte ich, aber es ist unwahrscheinlich, dass Ihr Ätzmittel falsch ist, wenn Sie den Zerstörungen gefolgt sind.

Wie auch immer, wenn alles in Ordnung ist, haben Sie einige perfekte Spuren, die durch Ätzresist geschützt sind.

Normalerweise würde der Profi zu diesem Zeitpunkt einen Satz Masken verwenden, um die Löcher und Pads zu entwickeln und das Durchkontaktierungskupfer herzustellen sowie einen Siebdruck zum Aufmalen von Komponentennummern usw. zu verwenden. Leider habe ich nicht die Zeit oder Lust, meine Durchkontaktierungen herzustellen Verwenden von Kupferdraht von Schicht zu Schicht … offensichtlich ist Multi-Layer bei dieser Methode ein Nein. Wenn ich in der Stimmung bin, füge ich der Druckschicht mühsam Komponentennummern hinzu, damit Sie auch die Komponentennummern ätzen. Dies kann bei der Montage etwas Zeit sparen, hängt aber davon ab, wie ausgelastet das Board ist.

Ich belichte die Spuren jetzt für weitere 2 Minuten pro Seite und tauche den Entwickler ein, um den gesamten Ätzresist zu entfernen.

Ich bohre jetzt die Vias und alle Durchgangslöcher und verzinnen alle Spuren und überprüfe die Kontinuität mit einem Multimeter. Dieses Teil ist ein Ballschmerz und Sie würden normalerweise nicht für ein professionell produziertes Board mit echten Vias tun, aber es lohnt sich, das Via-Draht zu vermeiden nur eine Seite gelötet werden…ist so oft passiert!

Schritt 6: Zusammenbau der Platine

Zusammenbau des Vorstandes
Zusammenbau des Vorstandes
Zusammenbau des Vorstandes
Zusammenbau des Vorstandes
Zusammenbau des Vorstandes
Zusammenbau des Vorstandes

OK, jetzt habe ich ein Board bereit und ich habe alle Vias und Durchgangslöcher gebohrt.

Fädeln Sie alle Vias mit Draht ein und löten Sie beide Seiten. Ich mag es, alle Gleise zum Schutz zu verzinnen, muss es nicht tun, aber stoppt die Kupferoxidation.

Ich habe die SD-Karte angebracht, die oberflächenmontiert ist, und zwei Lande hinzugefügt, um eine Lötstelle darauf zu erhalten, und sie hat ein paar Stifte an der Unterseite, um sie zu verankern.

Als nächstes wurde das ADXL EEPROM usw. hinzugefügt.

Stromtechnisch ist der Plan, die 5V vom USB oder externen Bat zu nehmen und durch das 3,3V-Regler auf der Platine zu speisen. Ich habe ein kleines Register, das ich von Ebay gekauft habe, das als Modul zusammengebaut und mit 800 mA bewertet ist … als USB bieten kann. Ich habe noch keine Leistungsmessungen durchgeführt, da die Software möglicherweise optimiert wurde ….. könnte den INACTIVITY-Interrupt von ADXL verwenden, um damit umzugehen. [WIP]

…müssen Bilder im Laufe des Baufortschritts hinzugefügt werden.

Schritt 7: CODIERUNG

OK, ich werde nicht das ganze Arduino-Setup durchgehen, da jemand anders anderswo einen viel besseren Job gemacht hat.

Ich werde nur die relevanten Bits heraussuchen, die in einem eigenen Projekt verwendet werden können.

Dies ist noch in Arbeit, soweit das Hochladen auf die Website in Betracht gezogen wird, aber lassen Sie uns einen Teil des Codes durchgehen.

Die Idee ist, dass die normale Funktionalität in den Geräten besteht, die aus GPS /Display / SD-Karte / Echtzeituhr /ext_flashmemory und Beschleunigungsmesser bestehen.

Danach treten wir in eine Schleife ein und warten ab, ob die Unterbrechungstaste sw gedrückt wird. Wenn dies der Fall ist, springen Sie zum Konfigurator-Menü, um das WLAN-Netzwerk so zu konfigurieren, dass es sich automatisch bei einem Gerät anmeldet, das als Eingang für den Webseiten-Konfigurator angegeben wurde. Zuerst werden alle Geräte nach einer SSD gescannt und dann können Sie eine auswählen und diese im Flash speichern mit einem Flag, um anzuzeigen, dass beim nächsten Booten die Einstellungen aus dem Flash geladen werden. Sie können dies jederzeit überschreiben, indem Sie die IP-Adresse eingeben und /killbill eingeben, um eine Bereinigung des Flash- und Ladestandard zu initiieren.

Hier ist die im Code definierte Interrupt-Funktion für den Adxl-Beschleunigungsmesser und der Sprung zum Konfigurator auf zwei separaten Pins. Wir verwenden den ADXL-Interrupt, um bei einem SHOCK-Ereignis zu unterbrechen. Für beide Interrupts setzen wir ein Flag, das in der Hauptschleife zurückgesetzt wird. so sieht es aus:

schau dir den angehängten Code an

Schritt 8: SDA-SCL-Pins finden

Verwenden Sie diesen Code:

Serial.println (SDA);

Serial.println (SCL);

druckt die aktuell im ESP konfigurierten Pins für SDL und SCL

Es gibt eine Datei, die zum Zuordnen von Pins zu Funktionen wie seriellen Ports im ESP32 verwendet wird

Empfohlen: