Hallo zusammen,
da Heltec vor kurzem die Software für den ESP32 mit LoRa geändert hat möchte ich heute kurz die aktuelle Installationsmethode zeigen.
Früher war es erforderlich den Heltec ESP-Fork über Git zu laden, installieren, updaten und anschließend zu verwalten, für Linux-Benutzer selbstverständlich und für Windows-Einsteiger eine Hürde.
Durch die neue Installation über den Boardverwalter ist das komfortabler geworden, ebenso wurden alle Funktionen (LoRa-OLED) in einer Library zusammengefasst.
Wir starten mit dem eintragen der URL für den Boardverwalter, dazu müssen die Voreinstellungen in der Arduino-IDE geöffnet werden, dazu über Datei-> Voreinstellungen geöffnet werden:
https://docs.heltec.cn/download/package_heltec_esp32_index.json
Update: https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/3.0.0/package_heltec_esp32_index.json
^^ Eintragen und mit OK bestätigen. Im Anschluss Boardverwalter öffnen und in der Suchleiste Heltec eingeben:
Und die gewünschte Version auswählen und installieren. Jetzt noch die dazugehörige Library nachladen um die Oled und LoRa Funktionen des Boards nutzen zu können. Hierzu wie gewohnt über Sketch -> Bibliothek einbinden -> Bibliotheken verwalten... den Bibliotheksverwalter öffnen und die Library aus dem Screenshot in der gewünschten Version installieren:
Nach dem obligatorischen Neustart der IDE wählen wir das richtige Heltec Board:
Unter Datei -> Beispiele -> Beispiele aus eigenen Bibliotheken ->Heltec ESP32 Dev finden wir die vorkonfigurierten Beispiele für Oled und Lora, sowie einen "Factory Test"
Der Sketch Factory_Test läuft ohne konfigurieren zu müssen problemlos durch und zeigt zuerst die Verfügbaren Netzte und verschickt im Anschluss LoRa-Pakete:
Viel Spaß mit den Heltec-Boards und bis zum nächsten Beitrag :)
6 comments
Christian
Achtung: Erneut neue Board URL: https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/3.0.0/package_heltec_esp32_index.json
Bernhard
ACHTUNG: NEUE “Boardverwalter-URL”:
https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.7/package_heltec_esp32_index.json
For installation, see:
https://heltecdocs.readthedocs.io/en/dev_kits/esp32_arduino/quick_start.html#via-arduino-board-manager
Stefan Link
Neuer Link zum ESP32 Lora von Heltec:
https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.7/package_heltec_esp32_index.json
Akkuanschluss ist bei der V3 Version unten vorhanden, bei mir war auch ein Kabel dabei.
Den BME280 schließe ich auch an. Bin gespannt wie alles läuft. Alternativ habe ich auch noch einen MKR1310 den ich über TTS an Thinkspeak auf mein Handy bringe.
Ulrich Engel
Hallo,
ich möchte durch kleine Projekte LoRa für mich erschließen und nutzen.
Als erstes Projekt würde ich gerne Daten eines BMP280 vom Sender zum Receiver übertragen und auf dem Handy anzeigen. Dazu habe ich ein Tutorial gefunden.#
Nun meine Frage:
Kann ich den Sender ESP32LoRa auch mit einem Akku stromsparend betreiben? Wie kann ich den Akku anschließen? Ich habe keinen Vin-Pin gefunden. Ich würde gerne mittels sleep mode die Laufzeit des ESP auf 3-4 Tage bringen. Ist das realistisch? (Der Akku: 7,4 V 1500mAh. Messinterval: alle 30 Sek. Daten lesen)
Vielen Dank für die Antwort. Bin schon sehr gespannt.
John Trommelen
Der URL hat sich geändert, dieser muss sein:
https://resource.heltec.cn/download/package_heltec_esp32_index.json
Arne Dien
Hallo,
ich habe gerade versucht mit dem Boardverwalter die Heltec Librarys zu installieren bekomme jedoch einige Fehlermeldungen:
Fehler beim Herunterladen von https://docs.heltec.cn/download/package_heltec_esp32_index.json
Exception in thread “AWT-EventQueue-0” java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at cc.arduino.contributions.packages.ui.ContributionIndexTableModel.updateIndexFilter(ContributionIndexTableModel.java:54)
at cc.arduino.contributions.ui.InstallerJDialog.updateIndexFilter(InstallerJDialog.java:293)
at cc.arduino.contributions.ui.InstallerJDialog$1.onFilter(InstallerJDialog.java:133)
at cc.arduino.contributions.ui.FilterJTextField.applyFilter(FilterJTextField.java:110)
at cc.arduino.contributions.ui.FilterJTextField.lambda$new$0(FilterJTextField.java:53)
at javax.swing.Timer.fireActionPerformed(Timer.java:313)
at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1671)
at java.awt.Component.setVisible(Component.java:1623)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at processing.app.Base.openBoardsManager(Base.java:1414)
at processing.app.Base$10.actionPerformed(Base.java:1441)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Hat heltec da etwas geändert?
LG
Arne Dien