this post was submitted on 25 Jul 2025
32 points (100.0% liked)

Meshtastic

1029 readers
11 users here now

A community to discuss Meshtastic (https://meshtastic.org/docs/introduction)

founded 2 years ago
MODERATORS
 

Hey all,

I have a heltec v3 and a raspberry pi and im looking to see how i can use my rpi to interface with the heltec device via bluetooth. Anyone have experience doing this? Id like to potentially have a web gui but also interested in using the python package to send messages based on some events ill be creating.

you are viewing a single comment's thread
view the rest of the comments
[–] Picasso@sh.itjust.works 3 points 1 week ago (7 children)

The Heltec V3 device itself can connect to wifi? I must have been living under a rock. Can you point me to where I can do this?

[–] Sal@mander.xyz 4 points 1 week ago* (last edited 1 week ago) (5 children)

I don't have the Heltec V3, but the model I was able to find online does support WiFi.

You need to connect to it using some other device. It can be with Bluetooth using an app, or via USB using a web client. Once you are connected to it, you can go to Radio Configuration and add the WiFi info in the Network settings.

Then, you need to figure out what its IP is. There are a few different ways to do it. Usually I log into my router and check the IP of the latest device to log into the WiFi.

You can then go to that IP via your browser, and you will see this:

You can then connect to it and interact with the device over the browser.

To interact with it using the python library, you set the device's IP as the NODE's interface. Here is an example of a very simple script that will connect to the node via its IP and cause it to automatically respond with 'Pong' to any message that it receives that contain 'Ping'.

import meshtastic
import meshtastic.tcp_interface
from pubsub import pub
import time

# Your Meshtastic node's IP
MESHTASTIC_NODE_IP = "192.168.8.149"

def onReceive(packet, interface):
    if 'decoded' in packet and 'payload' in packet['decoded']:
        try:
            message = packet['decoded']['payload'].decode('utf-8')
            sender = packet['from']
            if "Ping" in message:
                interface.sendText("Pong", destinationId=sender)
        except Exception as e:
            pass

interface = meshtastic.tcp_interface.TCPInterface(hostname=MESHTASTIC_NODE_IP)
pub.subscribe(onReceive, "meshtastic.receive")

while True:
    time.sleep(5)  # Keep the script running

[–] ryanpdg1@lemmy.ca 2 points 1 week ago (3 children)

Hijacking a bit... I'm on the hunt for a meshtastic device with Ethernet instead of WiFi. Having a hard time finding specifics about what options there are.

You seem like a person in the know. Any suggestions?

[–] Sal@mander.xyz 1 points 1 week ago

I have edited my original comment with important corrections. Commenting again so that you don't miss them.

load more comments (2 replies)
load more comments (3 replies)
load more comments (4 replies)