<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Projects — ELECROW - FORUM</title>
        <link>https://forum.elecrow.com/index.php?p=/</link>
        <pubDate>Tue, 21 Apr 2026 21:07:06 +0000</pubDate>
        <language>en</language>
            <description>Projects — ELECROW - FORUM</description>
    <atom:link href="https://forum.elecrow.com/index.php?p=/discussions/tagged/Projects/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>How to Use Pico to Make Electronic hourglass --- RaspberryPiPico Kit</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/309/how-to-use-pico-to-make-electronic-hourglass-raspberrypipico-kit</link>
        <pubDate>Thu, 01 Sep 2022 02:42:28 +0000</pubDate>
        <category>Projects</category>
        <dc:creator>Elecrow</dc:creator>
        <guid isPermaLink="false">309@/index.php?p=/discussions</guid>
        <description><![CDATA[<h2><span style="color: blue;">Project Introduction:</span></h2>
Turn the encoder to set the time, and it will be displayed on the TM1637 4-Bits digital tube in real time. Press the button and the electronic hourglass starts working.
<img src="https://forum.elecrow.com/uploads/editor/jq/5d7723was788.png" alt="" />

<h2><span style="color: blue;">Material preparation: </span></h2>
Raspberry Pi Pico*1, USB Cable*1, Breadboard*1, Encoder*1, TM1637 4-Bits Digital Tube*1, Dupont line

<h2><span style="color: blue;">Circuit connection:</span></h2>
<img src="https://forum.elecrow.com/uploads/editor/gw/zz1u69adshdv.png" alt="" />
<img src="https://forum.elecrow.com/uploads/editor/tz/m5rnzbm3zkj8.png" alt="" />

<h2><span style="color: blue;">Library file installation:</span></h2>
Upload the "tm1637.py" library file to the Raspberry Pi Pico. 
<b>Step1:</b> Download tm1637.zip, unzip the file and copy tm1637.py to library folder.
<b>Step2:</b> Connect the Pico to Thonny with a USB cable;
<b>Step3:</b> Find the "tm1637.py" library in the file window;
<b>Step4:</b> Right-click and select "Upload to / " to start uploading the library file;
<b>Step5:</b> "tm1637.py" appears at bottom left, indicating that the upload is successful, and you can start running the program.

<h2><span style="color: blue;">Program analysis: Electronic Hourglass</span></h2>
<code>
from machine import Pin
from time import sleep
import tm1637

tm = tm1637.TM1637(clk=Pin(4), dio=Pin(5))
RoA_Pin = 0               # CLK
RoB_Pin = 1               # DT
Btn_Pin = 2                # SW

globalCounter = 0          # counter value
flag = 0                   # Whether the rotation flag occurs
Last_RoB_Status = 0       # DT state
Current_RoB_Status = 0    # CLK state

def setup():
    global clk_RoA
    global dt_RoB
    global sw_BtN
    
    clk_RoA =  Pin(RoA_Pin,Pin.IN)           
    dt_RoB = Pin(RoB_Pin,Pin.IN)              
    sw_BtN = Pin(Btn_Pin,Pin.IN, Pin.PULL_UP) 
    # Initialize the interrupt function, when the SW pin is 0, the interrupt is enabled
    sw_BtN.irq(trigger=Pin.IRQ_FALLING,handler=btnISR)

# Rotation code direction bit judgment function
def rotaryDeal():
    global flag                   
    global Last_RoB_Status
    global Current_RoB_Status
    global globalCounter         

    Last_RoB_Status = dt_RoB.value()   
    # Judging the level change of the CLK pin to distinguish the direction
    while(not clk_RoA.value()):       
        Current_RoB_Status = dt_RoB.value() 
        flag = 1                    # Rotation mark occurs
    if flag == 1:                     # The flag bit is 1 and a rotation has occurred
        flag = 0                     # Reset flag bit
        if (Last_RoB_Status == 0) and (Current_RoB_Status == 1):
            globalCounter = globalCounter + 1    # counterclockwise, positive
        if (Last_RoB_Status == 1) and (Current_RoB_Status == 0):
            globalCounter = globalCounter - 1     # Clockwise, negative

# Interrupt function, when the SW pin is 0, the interrupt is enabled
def btnISR(chn):
    global globalCounter
    globalCounter = 0 
    print ('globalCounter = %d' %globalCounter)
    while True:
    # Define a counter that changes every 1 second
        tm.number(globalCounter)
        globalCounter = globalCounter - 1
        sleep(1)
        if globalCounter == 0:
            break

def loop():
    global globalCounter  
    tmp = 0   
    while True:
        rotaryDeal()      
        if etmp != globalCounter:
            print ('globalCounter = %d' % globalCounter)
            tmp = globalCounter    
            tm.number(globalCounter)
            
if __name__ == '__main__':    
    setup() 
    loop()  </code>
<h2><span style="color: blue;">Click link below to watch video:</span></h2>
<span style="color: blue;"><a rel="nofollow" href="https://www.youtube.com/watch?v=Sl1dVGrHXFg">https://www.youtube.com/watch?v=Sl1dVGrHXFg</a></span>]]>
        </description>
    </item>
    <item>
        <title>RC050S Fan Connector</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/962/rc050s-fan-connector</link>
        <pubDate>Wed, 27 Nov 2024 13:50:04 +0000</pubDate>
        <category>Elecrow HMI Display</category>
        <dc:creator>Hyperion0</dc:creator>
        <guid isPermaLink="false">962@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>I need to replace the fan for my RC050S, but I can't find any information about what the fan size is or anything.<br />
Strictly speaking the fan still works, if I can get the correct size jumper for the board, but again I can't find any information on the fan or what size jumper I would need to reconnect it.<br />
Does anyone have any info or details?</p>
]]>
        </description>
    </item>
    <item>
        <title>Changing Language for Python and Scratch Lessons on CrowPi2</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/873/changing-language-for-python-and-scratch-lessons-on-crowpi2</link>
        <pubDate>Mon, 30 Sep 2024 11:44:57 +0000</pubDate>
        <category>Raspberry Pi &amp; CrowPi</category>
        <dc:creator>BlankiWRLD</dc:creator>
        <guid isPermaLink="false">873@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hi everyone,</p>

<p>I was wondering if there’s an option to change the language for the Python and Scratch lessons on CrowPi2. Is there a specific location where I can modify the files myself to add or translate lessons into a different language? Any guidance or tips would be greatly appreciated!</p>

<p>Thanks in advance for your help!</p>
]]>
        </description>
    </item>
    <item>
        <title>No response from AT commands on Leonardo GPRS GSM IOT Board-V1.2</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/770/no-response-from-at-commands-on-leonardo-gprs-gsm-iot-board-v1-2</link>
        <pubDate>Wed, 19 Jun 2024 10:38:22 +0000</pubDate>
        <category>Arduino &amp; Crowduino</category>
        <dc:creator>Conan</dc:creator>
        <guid isPermaLink="false">770@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello everyone! I have a problem: every AT command I execute does not give me any response. Maybe I should update firmware? If yes, how I can update that? (I have found no information on official site of Elecrow)</p>

<p>code:<br />
`#define DEBUG 1</p>

<h1>define CHECK Serial.println("✓");</h1>

<p>void setup()<br />
{<br />
  //GSM.begin(9600);<br />
  Serial.begin(11520);<br />
  Serial1.begin(11520);<br />
  while(!Serial);<br />
  Serial.println(" -- Program start -- ");<br />
  Serial.println("Serial initialization... ✓");<br />
  Serial.print("Serial1 initialization... ");<br />
  while(!Serial1.availableForWrite());<br />
  CHECK<br />
  Serial.println("AT commands initialization... ");<br />
  sendData("AT",2000);<br />
  delay(3000);<br />
  Serial.println("HTTP initialization... ");<br />
  sendData("AT+HTTPINIT",2000);<br />
  Serial.println("HTTP parameters setting... ");<br />
  sendData("AT+HTTPPARA=\"CID\", 1",2000);<br />
  sendData("AT+HTTPPARA=\"URL\", \"<a href="http://www.iforce2d.net/test.php/\" rel="nofollow">http://www.iforce2d.net/test.php/\</a>"",2000);<br />
  sendData("AT+HTTPPARA?",2000);</p>

<p>Serial.println(" -- Get start -- ");<br />
  sendData("AT+HTTPACTION=0",2000);<br />
  sendData("AT+HTTPACTION=0",2000);<br />
  sendData("AT+HTTPACTION=0",2000);<br />
}</p>

<p>void loop() {</p>

<p>}</p>

<p>void sendData(String command, const int timeout)  //Send command function<br />
{<br />
    String response = "";<br />
    Serial1.println(command); <br />
    long int time = millis();<br />
    while( (time+timeout) &gt; millis()){<br />
      while(Serial1.available()){<br />
        response += (char)Serial1.read(); <br />
      }<br />
    }<br />
    if(DEBUG){<br />
      Serial.println();<br />
      Serial.print(response);<br />
      CHECK<br />
      Serial.println();<br />
    }<br />
}`</p>

<p>Result:<br />
<a href="https://drive.google.com/file/d/11NSHc2rh2g88NbX3J7AfxqycwbjimwdP/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/11NSHc2rh2g88NbX3J7AfxqycwbjimwdP/view?usp=sharing</a></p>
]]>
        </description>
    </item>
    <item>
        <title>I2C port on 7&quot; hmi elecrow esp32 display</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/713/i2c-port-on-7-hmi-elecrow-esp32-display</link>
        <pubDate>Tue, 23 Apr 2024 12:49:46 +0000</pubDate>
        <category>Elecrow HMI Display</category>
        <dc:creator>the_forgeron</dc:creator>
        <guid isPermaLink="false">713@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>so this is the reference of the product:<br />
7"hmi elecrow display: <a href="https://wiki.elecrow.com/index.php?title=Wizee-ESP32_7.0%27%27_Intelligent_Touch_Screen_Wi-Fi%26BLE_800*480_HMI_Display" rel="nofollow">https://wiki.elecrow.com/index.php?title=Wizee-ESP32_7.0&#39;&#39;_Intelligent_Touch_Screen_Wi-Fi&amp;BLE_800*480_HMI_Display</a><br />
datasheet: <a href="https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf" rel="nofollow">https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf</a><br />
chip of the model: ESP32-S3-WROOM-1-N4R2<br />
picture of the screen: <a href="https://drive.google.com/file/d/1eXFTtBIQK_FXhMClNBrtX-EPmpdgcZ1q/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/1eXFTtBIQK_FXhMClNBrtX-EPmpdgcZ1q/view?usp=sharing</a><br />
so i just realise that there are no I2C port on this model, i want to use the hmi to connect mpu6050 (accelerometer)  and show vibration curv.<br />
how do i manage to connect my I2C divices?.  what is the i2c pin on this model?<br />
is there another way to connect the sensors??<br />
 im ok with doing modification the display, i dont want to buy a new one. <br />
thanks for future answer!</p>
]]>
        </description>
    </item>
    <item>
        <title>Project reading the input of vibration sensor</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/693/project-reading-the-input-of-vibration-sensor</link>
        <pubDate>Fri, 08 Mar 2024 13:56:36 +0000</pubDate>
        <category>Elecrow HMI Display</category>
        <dc:creator>the_forgeron</dc:creator>
        <guid isPermaLink="false">693@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>so guys my projeect is to read a data from a mpu6050 vibration sensore. and i dont know where to start. i plan to use a 7 inch hmi esp32 screen as a screen, where the signal is shown.<br />
i did a little introduction to squarreline software but i dontt know how to put it all tohgether. <br />
i wqnt to have a chart on the screen that show the vibration in a sinusoidal form.<br />
thank you very much</p>
]]>
        </description>
    </item>
    <item>
        <title>Minecraft Course Selections Blank</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/399/minecraft-course-selections-blank</link>
        <pubDate>Fri, 17 Feb 2023 05:40:07 +0000</pubDate>
        <category>Raspberry Pi &amp; CrowPi</category>
        <dc:creator>jaedon</dc:creator>
        <guid isPermaLink="false">399@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>When I (or my daughter) click on any one of the 16 minecraft course selections, that section of the window in the interface goes blank white/beige.  It is as if part of the window isn&#39;t opening properly. The border is still green and the back and exit buttons still operate.  There&#39;s just no instruction. What is the source of the error? Any help is greatly appreciated. </p><p>Thank you, Jaedon</p>]]>
        </description>
    </item>
    <item>
        <title>Arduino Automatic Smart Plant Watering Kit 2.1 - Pump throttling</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/400/arduino-automatic-smart-plant-watering-kit-2-1-pump-throttling</link>
        <pubDate>Mon, 20 Feb 2023 01:02:04 +0000</pubDate>
        <category>Arduino &amp; Crowduino</category>
        <dc:creator>Plantinator</dc:creator>
        <guid isPermaLink="false">400@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Hello,</p><p>A few weeks ago I bought this kit to water my plants when I&#39;m not home for long periods. Today I primed the system and I noticed that the pump&#39;s flow is rather strong for my needs. In particular, I have two small pots (without holes on the bottom, unfortunately) and if any of these were to be watered alone (as I expect to be the majority of the cases), the flow would overshoot the pot rather easily.</p><p>Is there any way to limit the pump&#39;s flow? From the code, the pump is activated from a digital port as a simple on/off; maybe I could change that to analog and find a cutoff value to activate the pump at lower speed? I also considered choking the necessary outputs, but I am afraid this would damage the pump on the long run, despite being a rather sloppy solution.</p><p>Thanks for the support!</p>]]>
        </description>
    </item>
    <item>
        <title>Wizee HMI Display Resources</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/357/wizee-hmi-display-resources</link>
        <pubDate>Tue, 22 Nov 2022 10:12:49 +0000</pubDate>
        <category>Elecrow HMI Display</category>
        <dc:creator>Elecrow</dc:creator>
        <guid isPermaLink="false">357@/index.php?p=/discussions</guid>
        <description><![CDATA[<ul>
<li> Project demo
</li><li> Instruction Set
</li></ul>
]]>
        </description>
    </item>
    <item>
        <title>How to DIY Fingerprint Lock Box</title>
        <link>https://forum.elecrow.com/index.php?p=/discussion/311/how-to-diy-fingerprint-lock-box</link>
        <pubDate>Fri, 02 Sep 2022 09:16:33 +0000</pubDate>
        <category>Projects</category>
        <dc:creator>Eleanor</dc:creator>
        <guid isPermaLink="false">311@/index.php?p=/discussions</guid>
        <description><![CDATA[<h2><span style="color: blue;">Project Introduction:</span></h2>
After inputting the fingerprint lock off signal, the steering gear rotates 90 °, and the rocker arm intersects with the U-shaped plastic, so that the box cannot be opened. After pressing the fingerprint scanner again, the steering gear rotates 90 ° in the opposite direction, and the rocker arm is parallel with the U-shaped plastic, so that the box can be opened.

<img src="https://forum.elecrow.com/uploads/editor/xl/ldzsk5xasvz2.png" alt="" />
<img src="https://forum.elecrow.com/uploads/editor/66/1s9bzxf9u7ra.png" alt="" />


<h2><span style="color: blue;">Material preparation: </span></h2>
Fingerprint scanner*1
Servo*1
Crowduino*1(or Arduino)*1
Base shield for Crowduino*1
U-shaped plastic*1
Box*1
Cables


<h2><span style="color: blue;">Circuit connection:</span></h2>
<img src="https://forum.elecrow.com/uploads/editor/wd/lxi39hbvzszj.png" alt="" />

Pinmap of fingerprint scanner:
<img src="https://forum.elecrow.com/uploads/editor/aj/nqwi6xbnbfjt.png" alt="" />

<h2><span style="color: blue;">Operation steps: </span></h2>           
Step1. Paste the steering gear in the box, mark the appropriate position of the U-shaped material, and then stick the U-shaped plastic on the box cover.   
<img src="https://forum.elecrow.com/uploads/editor/gj/o0n4dnnmugas.png" alt="" />
    
Step2. Mark the location of crowduino, cut out the hole of USB interface, and then stick crowduino in the box. 
<img src="https://forum.elecrow.com/uploads/editor/21/tkb4merjkuv2.png" alt="" />
           
Step3. Paste the square fingerprint scanner and cut the box cover. 
<img src="https://forum.elecrow.com/uploads/editor/t0/dqe5zfy6yugn.png" alt="" />
           
Step4. Connect the cables according to the wiring table.   
<img src="https://forum.elecrow.com/uploads/editor/hq/7rhv3aq563g2.png" alt="" />

         
Step5. Connect Crowduino and the computer with USB cable, upload the program to Crowduino, and enroll the fingerprint  
<img src="https://forum.elecrow.com/uploads/editor/0q/qfm74f7khgji.png" alt="" />
          
Step6. Start using!
]]>
        </description>
    </item>
   </channel>
</rss>
